さくらのVPSでメモリを抑えたい時に効果的だったこと(CentOS編)
さくらのVPSでも最も安いプラン512MBのプランを使う場合、どうしてもLAMP(Linux,Apache,MySQL,PHP (or Perl ここでは、PHPです))を使っているとメモリがあっぷあっぷ(不足)してきます。
そんな時にやってみて効果的だったことをちょっとまとめてみました。
基本的にこのサイトの記事の中の抜粋(あるいはリンク)になります。
さくらインターネットのVPS ( さくらのVPS )を試してみたい方は、
さくらのVPS ページからどうぞ。
無料お試し期間は14日です。
※お試し期間中は、OP25B設定、データ転送帯域に制約がありますから注意してください。
さくらのVPSでメモリを抑えたい時にやってみることとその効果
基本的に、メモリを消費するのはスクリプトです。ここでは、PHPが一番メモリを消費します。
MySQL のプロセス数を制限する
効果:小
/etc/my.cnfの設定を変更します。
...
## 最大のセッション数を450に設定
max_connections=450
## スレッドキャッシュ数を450に設定
thread_cache=450
## テーブルキャッシュ数を450に設定
table_cache=450
## クエリーキャッシュサイズを64Mに設定
query_cache_size = 64M
...
|
この中の数値をできるだけ小さくします。
それなりに効果はあります。あまりに小さくしすぎるとウェブであれば、表示の遅延やアクセスエラーが発生します。
特にmax_connection , query_cache_size は、もろに影響をうけます。
関連記事
apache のプロセス数を制限する
効果:中
phpのモジュール版を利用している場合は、かなりの効果があります。
apache でメモリ消費が大きい場合は、ほとんどがPHPのメモリであることが多いです。
ただ、プロセスを少なくすれば、それだけアクセス数も制限されますので、折角の訪問者にエラー表示することもありえます。
十分注意が必要です。
関連記事
php をCGIで利用する
効果:大
phpのモジュール版を利用している場合と比較すると、apacheのプロセス管理と切り分けができるので、本当の意味でのメモリ管理がやりやすくなります。
phpのCGI版を利用する場合、phpのCGI版のプロセス管理をするサーバーをたてることになります。
そのプロセス管理で、メモリの制限やプロセスが扱うセッション数などを設定することで、かなりのメモリをコントロールできるようになります。
関連記事
apache からnginxへウェブサーバーを変更する
効果:小
実際にnginxへウェブサーバーを変更しただけでは、効果は少ないです。
切り替えて良い点は、おそらくは、アクセスが集中した時の処理でしょう。nginxは、かなりのアクセスをさばけますが、apacheは、すぐにあっぷあっぷして表示遅延が発生しCPUの負荷がぐっと上がってしまいます。
ただ、メモリという観点では、それほどの効果は期待できません。むしろnginxは、PHPのモジュール版がないので、上記のphp をCGIで利用するという面での効果は大となるでしょう。
また、高速化を図るという観点からは、リバースプロキシーおよびキャッシュを使える点から効果は大でしょう。
関連記事
今までさくらのVPSで試してきた結果からすると、使用メモリを抑えるには、結局は、PHPのメモリ管理に尽きる感じがします。
(これは、さくらのVPSに限った話でもありませんが・・・。)
上の結果からすれば、PHPのCGI版を利用して、プロセス管理をしっかりやれば、それなりにメモリ管理ができるようになります。
もちろん、ウェブサーバーのプロセス管理もMySQLのメモリ管理も、しっかりやりましょうね。
また、使用メモリを抑えれば、速度も抑えられてしまうことがありますから、設定には十分注意しましょう。
自分のサーバーにあった設定を心がけましょうね。
さくらインターネットのVPS ( さくらのVPS )を試してみたい方は、
http://vps.sakura.ad.jp/からどうぞ。
無料お試し期間は14日です。
※お試し期間中は、OP25B設定、データ転送帯域に制約がありますから注意してください。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
関連記事 :
2012年4月11日, 8:04 AM
[…] […]
2012年4月11日, 10:54 AM
[…] […]