さくらのVPSでPHPを動かしてみた。
評判のさくらのVPSを契約してみた。性能は良さそうなんだけど、メモリが少ないので使い道が難しいね。月980円の契約だとメモリは512MBしかない。いまどき512MBだと辛いよね。いろいろメモリをケチるような設定が必要だと思う。とりあえずOSはCentOSの32bit版を使用するようにしてみました。一応64bit版と比べてみて、速度的に遅くならないことを確認して(使用用途によって違う可能性も、でも全体的に32bit版の方が速い気もする、これはVPSでメモリが少ないからかも)自分の用途では32bit版があっていると思ったからです。■セットアップめも作業用ユーザの登録、wheelを有効にhosts.allowの設定, hosts.denyにALL:ALLを追加sshd_configの設定(Port変更、RootLoginをnoに)iptablesの設定あとsysctl.confとlimits.confの設定・EPELからインストールrpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpmyum install memcached nginx sysstat bzip2-devel zlib-devel・remiからインストールrpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpmyum install --enablerepo=remi php php-mbstring php-mcrypt php-mhash php-pecl-mongo php-pecl-memcachedphp.iniとmbstring.iniの設定■httpd.confの基本設定KeepAlive OffStartServers 4MinSpareServers 2MaxSpareServers 4ServerLimit 4MaxClients 4MaxRequestsPerChild 40000○abでベンチマークab -c 4 -n 2000 http://127.0.0.1/test.php750.22 [#/sec]980円のVPSでは非常に大きな値です。CPUが2つしかないのに、同じホスト上でabを動かしたので、その分CPUを余分に使っていることを考えると、もう少し出るかも?Xeon E3 1230(4コア HTあり)と比べると桁が違いますが、まぁ2コアならこんなものでしょう。ちなみに、メモリが少ないサーバでPHPを動かす時はスワップしないように注意しましょう。スワップすると非常に大きなペナルティになりますからね。httpd.confのデフォルト設定だと、PHPを使うとメモリがすぐ足りなくなりますからね。まずMaxClientsの設定変更が必要です。目安はCPUコア数*2倍程度かな。アプリによって違うけど、メモリを沢山使うアプリを動かす場合はもっと減らす必要があるでしょう。nginxも入れてあるのは、静的ファイルはnginxにまかせて、PHPのみApacheで受けるような仕組みにする予定だからです。FastCGIにする手もあるが、設定が面倒だし、ApacheもMaxClientsをちゃんと設定してあればFastCGIにするメリットもないですからね。