現在さくらVPSのプランでメモリ2GBのプランを利用しています。
サーバー設定などはヘルプや他のサイトを参考にし、特に問題なく半年ほど利用をしてきました。
しかし最近になってサイトが表示されなくなったり、異様に重たくなる現象が発生してしまい、頭を抱えています…。
アクセス数は月間1万PVほどで然程重たくはないはずなのですが…。
WebminのプロセスでメモリーのFreeが200MBほどしかないのですがやはりメモリ不足が問題なのでしょうか?
またサイズ300MBほどのhttpdプロセスが多数あるのですがこれは問題ないのでしょうか?
ど初心者で的はずれな質問でしたら申し訳ございませんm(_ _;)m
アドバイス頂けると嬉しいです。
■追記(1/4 20:30)
お二方からの大変詳しいアドバイスありがとう御座います(>_<;)
画像をコメント欄に掲載できなかったためこちらに追記を致します。
数値は下記のような状況です。
MySQL version 5.1.73
Apache バージョン 2.2.15
を利用しています。
1年ほど運用を運用をして参りましたが年越しをしてから途端に重たくなり始めてしまい、現在お二方から頂いた参考サイトを見ながら設定を見なおしています。
ここで上位プランに引き上げることが一番てっとり早いのかも知れませんが、アドバイス頂いた通り次回同様の問題が発生したときにまた対応ができなくなるため、今回しっかり原因を突き止めたいと思います。
どんなアドバイスでも結構ですので確認してみると良い場所など他にあれば何卒ご教授のほどお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
異様に重たくなる現象が出た際、
メモリ不足でスラッシングが発生している可能性はありそうですね。
httpdのサイズと数も気になりますが、
mysqldが1.6Gと、物理メモリの8割なのも気になります。
とは言え、実際に何が原因で現象が発生しているかは、
現象発生時の情報がないと分かりません。
異様に重たくなるなどの現象が出た際、CPU、ネットワークトラフィック、
ディスクI/Oの状況は分かりますか?
さくらvpsにはコントロールパネルが有るようなので、
その情報で良いので提示できますか?
メモリの使用量もあると良いのですが、
最低限、コントロールパネルの情報は必要と思います。
それから、現象発生時に/var/log/messagesやhttpd、mysqldのログなどに、
何かエラーログは出ていませんか?
(2016/1/4 14:42追記)
大雑把に、接続毎に使用するメモリと、接続数によらず使用するメモリがあるので、
- 入口で接続数を制限する
- 接続毎のメモリ量を制限する
- 接続数によらないメモリの量を制限する
ことが必要と思います。
接続数×接続毎のメモリ量+接続数によらないメモリの量
が総メモリ量の八割程度に収まるようにしておくのが良いかと思います。
1.は、p-chanさんの回答にある、Apacheの多重度の制限で実現すれば良いと思います。
MaxClients、KeepAlive、MaxRequestsPerChildの設定が重要と思います。
2.と3.については、ApacheとMySQLで分けて書きます。
Apache
2.については、制限するというより、まずはどのくらい使用しているか見た方が良いと思います。
1プロセスでは300MB程度のようなので、これをいくつの接続で使用したかを設定値を見て
判断することになると思います。
接続数はpreforkなら1ですし、workerならThreadsPerChildに設定した値と思います。
3.については、おそらくApacheで接続数によらずに使用するメモリは少ないので、
考慮に入れなくて良いと思います。
MySQL
2.3.についてのMySQLの設定では、このページやこのページにもある、以下のパラメータの設定を見直すことになると思います。
- リクエスト毎のメモリ
sort_buffer_size join_buffer_size read_buffer_size read_rnd_buffer_size net_buffer_length
- リクエスト数によらないメモリ
key_buffer_size query_cache_size innodb_buffer_pool_size innodb_log_buffer_size innodb_additional_mem_pool_size
設定値が、サーバにMySQLしかない場合に合わせてあり、
Apacheが使う分のメモリが計算に入っていない可能性があるのではと思っています。
設定値を見ていないので、ただの憶測ですが。
投稿2016/01/03 14:56
編集2016/01/04 05:49総合スコア1546
0
OSの種類やApacheのバージョンも分からないので、具体的なコメントがしにくいですが…
もしLinux系のOSを使用しているならば、メモリーの空き領域を積極的にIOバッファとして利用するので、空き領域が少ないこと自体は問題ありません。
しかし、異様に重たくなる現象が発生しているのであれば、メモリー不足によるスワップが発生しているのかもしれません。
それで、まずはコンソールから下記コマンドを実行してみて、メモリースワップが発生していないかを確認して見ると良いです。
Bash
1vmstat 1 | awk '{print strftime("%Y-%m-%d %T ") $0; system("");}'
ボトルネックの特定はとても奥深い問題で一筋縄では行きませんが、下記ページはとても参考になると思いますので、ご参考までにリンクを貼り付けて置きます。
さて、アクセス数がそれ程多くなく、一方、Apacheのプロセス数が多い事がメモリー容量の不足につながっているのであれば、多重度を制限することで状況が改善するかもしれません。
まずは、現在の設定がどうなっているかを確認し、以下のページを参考に多重度を少し落としてみてはいかがでしょうか?
以上、いくらかでもご参考になれば幸いです。
投稿2016/01/03 14:12
総合スコア5936
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/04 00:48
2016/01/04 04:35
0
自己解決
お二方にとても参考になるアドバイスを頂くことができ大変感謝しています。
アドバイス頂いたサイトをもとに設定を行い、現在サーバーが安定した状態になりました。
(一時的な安定でないことを願うばかりです…)
行った施策:
$ vi /etc/php.ini
修正前
memory_limit = 128M を 64MBに変更
Timeout 30
KeepAlive On
KeepAliveTimeout 3
現在この2つの設定を上記の数値にしたところ、安定しています。
グラフのズームしたデータをアップロードしようと思ったのですが、さくらコントロールパネルではこの縮尺しかないようで、拡大・縮小できませんでした…。
しばらくこの状態で様子をみてみます。
もしまた同様のトラブルが発生した場合、質問をさせていただくかもしれませんがその際はまたアドバイス頂けると嬉しいです。
投稿2016/01/05 11:54
総合スコア29
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/16 13:28
2016/01/16 14:12
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/04 00:53
2016/01/04 05:40
2016/01/04 12:06