EC2 t2.micro上のWPが良く落ちる場合の設定【mysqlは弄るな!】

本ブログはAWSのEC2 t2.microインスタンスにて公開しています。

 

そのうえで、wordpressを使用して編集、公開をしていますが、最近Webサーバが落ちることが頻発しました。

 

原因

 

原因は簡単です。

 

設定の不備とスペック不足です、

t2.microインスタンスはcpu1コア, RAM1GBとスペック的にはあまり余裕のあるものではありませんが、これまで特に設定変更をせずにデフォルト設定で運用してきました。

 

これにいろいろなWPプラグインを導入したり、画像などの増加、アクセスの増加が重なり、今回ついに限界に達したといった形です。

 

対策

Mysqlの設定

Mysqlの接続上限数はデフォルトでは100ですが、これを10に変更しました。

設定方法は以下です。

/var/my.cofを以下の通り編集

[mysqld]

max_connections = 10

初期のmy.cofでは設定の記載がないため追記します。

これによって、1GB中900MBほど常時使用されていたメモリが300MBほど解放されました。

 

【以下2019年3月25日加筆】

mysqlの接続制限をかけることで1週間ほどして異常が頻発しました。

 

症状としてはApacheプロセスの異常起動とサイトアクセスへの著しい遅延です。

 

これによりすぐにメモリリークが発生してhttpdが落ちる状態となりました。

 

Mysqlへの制限はかけない方が良く、メインはApacheの設定で行うのが最適です。

 

httpd.confの設定

 

一応httpd.conf側でも無駄にメモリを食わないように制限をかけるように設定を記載しました。

 

<IfModule prefork.c>

StartServers       8

MinSpareServers    5

MaxSpareServers    10

ServerLimit      13

MaxClients       13

MaxRequestsPerChild  4000

</IfModule>

 

httpd.confに上記の設定に修正(<IfModule prefork.c>以下の記述があれば修正)or追記

 

 

ただしこれはpreforkでプロセス制御をかけている場合に有効です。

$ apachectl -V

 

を実行して

Server MPMがpreforkになっている場合に有効です。

 

このうち、MaxSpareServersが起動できる待ち受けプロセス数、MaxClientsが起動可能なプロセス上限になります。

 

この設定では一時的な大量のアクセスはさばけなくなりますが、安定性は向上します。

 

MaxClientsとServerLimitは同値で、サーバスペックにあわせて算出します。

 

T2.microでWordPressのみを公開しているWebサーバであればこのくらいが安定範囲かとあたりを付けて設定。

 

この状態で

$ps aux

を実行してApatcheプロセス数が設定どおりになっているか確認。

 

あわせて、

$free

で使用中メモリ量を確認しつつチューニングしました。

 

これにて落ちなくなったので様子を見ています。

 

アクセス数が多くなった場合はこの設定では厳しくなるかもしれないため、状況に合わせて設定の調整を検討します。

 

SWAP領域の作成

 

メモリ使用量が一時的に増加した時に対応するべくSWAP領域の作成を行いました。

 

これによって、すぐにhttpdとmysqldがkillされるのを防ぎます。

 

$ dd if=/dev/zero of=/swapfile bs=1M count=1024

1GBの空ファイルを作成

$ chmod 600 /swapfile

パーミッション設定

$ mkswap /swapfile

初期化

$ swapon /swapfile

マウント

 

上記コマンドにて1Gのスワップ領域の作成と割り当てが完了します。

 

SWAPがうまいことあたっているか、メモリの使用状況はどうかを確認するため、適用後はfreeコマンドを定期的にたたいて確認しました。

 

下記はSWAPを作成しただけのときのfreeコマンドの結果です。

 

この例(SWAP設定直後)ではusedが930MBもありすでにメモリがもうカツカツでした。

 

$ free

total       used       free     shared    buffers     cached

Mem:       1017296     930024      87272         24       3116      37152

-/+ buffers/cache:     889756     127540

Swap:      1048572      0     1048572

 

まとめ

 

EC2のt2.microインスタンスを使用している場合、思いのほかメモリリークによる不具合が発生しました。

 

それに対する一番の対策はhttpdを設定してそもそもメモリリークを起こすほどのプロセス起動を抑制することにたどり着きました。

 

これにより、現状では1日200PV程度のブログ運営はさばけています。

 

どこまでこれで行けるのかは、今後のPV数増加と合わせて変化を観察していく過程でわかると思います。

人気記事
  1. インドホシガメの飼育ノウハウ まとめ
    インドホシガメの飼育ノウハウ まとめ
  2. 注意点を網羅!失敗しない具体的なリクガメ飼育方法まとめ【ヘルマンリクガメ、ロシアリクガメ、ギリシャリクガメ】
    注意点を網羅!失敗しない具体的なリクガメ飼育方法まとめ【ヘルマンリクガメ、ロシアリクガメ、ギリシャリクガメ】
  3. なつくカメとなれるカメ 亀の魅力まとめ
    なつくカメとなれるカメ 亀の魅力まとめ
  4. インドホシガメ ワシントン条約 付議書1 昇格提案について思うこと
    インドホシガメ ワシントン条約 付議書1 昇格提案について思うこと
  5. 飼育経験から考えるリクガメに適正な飼育ケージ
    飼育経験から考えるリクガメに適正な飼育ケージ
  6. ヘルマンリクガメ飼育の基礎となる現地環境と日本の比較
    ヘルマンリクガメ飼育の基礎となる現地環境と日本の比較
  7. いろいろな模様の亜種がいるギリシャリクガメ分布地環境まとめ
    いろいろな模様の亜種がいるギリシャリクガメ分布地環境まとめ
  8. リクガメ飼育のお財布事情【医療費も!】
    リクガメ飼育のお財布事情【医療費も!】
  9. インドホシガメの医学 -鼻水-
    インドホシガメの医学 -鼻水-
  10. CITES登録に向けたインドホシガメ健康診断【リクガメの健康診断内容・費用】
    CITES登録に向けたインドホシガメ健康診断【リクガメの健康診断内容・費用】

kamesaki

インドホシガメ飼ってます🐢 カメラもやってます📷 プログラムやDIYとかいろいろやります 超趣味人な生活を楽しむ人生を目指して日々精進!

あわせて読みたい

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です