t2.microインスタンスにて公開しています。そのうえで、wordpressを使用して編集、公開をしていますが、最近Webサーバが落ちることが頻発しました。RAM1GBとスペック的にはあまり余裕のあるものではありませんが、これまで特に設定変更をせずにデフォルト設定で運用してきました。これにいろいろなWPプラグインを導入したり、画像などの増加、アクセスの増加が重なり、今回ついに限界に達したといった形です。対策Mysqlの設定Mysqlの接続上限数はデフォルトでは100ですが、これを10に変更しました。10初期のmy.cofでは設定の記載がないため追記します。これによって、1GB中900MBほど常時使用されていたメモリが300MBほど解放されました。【以下2019年3月25日加筆】mysqlの接続制限をかけることで1週間ほどして異常が頻発しました。症状としてはApacheプロセスの異常起動とサイトアクセスへの著しい遅延です。これによりすぐにメモリリークが発生してhttpdが落ちる状態となりました。Mysqlへの制限はかけない方が良く、メインはApacheの設定で行うのが最適です。一応httpd.conf側でも無駄にメモリを食わないように制限をかけるように設定を記載しました。prefork.c>以下の記述があれば修正)or追記ただしこれはpreforkでプロセス制御をかけている場合に有効です。MPMがpreforkになっている場合に有効です。このうち、MaxSpareServersが起動できる待ち受けプロセス数、MaxClientsが起動可能なプロセス上限になります。この設定では一時的な大量のアクセスはさばけなくなりますが、安定性は向上します。MaxClientsとServerLimitは同値で、サーバスペックにあわせて算出します。T2.microでWordPressのみを公開しているWebサーバであればこのくらいが安定範囲かとあたりを付けて設定。auxを実行してApatcheプロセス数が設定どおりになっているか確認。あわせて、$freeで使用中メモリ量を確認しつつチューニングしました。これにて落ちなくなったので様子を見ています。アクセス数が多くなった場合はこの設定では厳しくなるかもしれないため、状況に合わせて設定の調整を検討します。SWAP領域の作成メモリ使用量が一時的に増加した時に対応するべくSWAP領域の作成を行いました。これによって、すぐにhttpdとmysqldがkillされるのを防ぎます。/swapfileマウント上記コマンドにて1Gのスワップ領域の作成と割り当てが完了します。SWAPがうまいことあたっているか、メモリの使用状況はどうかを確認するため、適用後はfreeコマンドを定期的にたたいて確認しました。下記はSWAPを作成しただけのときのfreeコマンドの結果です。この例(SWAP設定直後)ではusedが930MBもありすでにメモリがもうカツカツでした。1048572まとめEC2のt2.microインスタンスを使用している場合、思いのほかメモリリークによる不具合が発生しました。それに対する一番の対策はhttpdを設定してそもそもメモリリークを起こすほどのプロセス起動を抑制することにたどり着きました。これにより、現状では1日200PV程度のブログ運営はさばけています。どこまでこれで行けるのかは、今後のPV数増加と合わせて変化を観察していく過程でわかると思います。設定後2か月以上運用していますが、安定して動作しておりhttpd、mysqldが落ちることもなくなりました。コメントをキャンセルメールアドレスが公開されることはありません。WordPress.com.。