Hai Adachinです。

会社でテックブログをやっているのですが、
急に重くなり、全くアクセスができない状態になってるので、
あだちんちょっとサーバ見てくれないですか!?
となったので、中身見てみました。

そもそもwordpressってバージョン上がるとなんかしらアクシデントがあるので運営がめんどくさいところ。
もちろんこのAdachin-serverブログもそうなので、そろそろghostに移行しようか迷い中。。。
環境はCentOS6.7 + wordpress nginx + php-fpmです。


■ボトルネックを探す

h01

php-fpmの待ちプロセスがぱない。。。何個あるのよってかんじ。(画像は例です)

・アクセスログの確認

こいつはやべえ・・・


■ボトルネック = php-fpm、アタック

きっとphp-fpmのチューニングがうまくいってない模様!!!
なのでログとconfファイル確認しましょう。

[訳]poolしてるコネクションを使い切ってるぜ。pm系の値増やしてくれ。頼んだぜ。

どうやらnginxとphp-fpmはDBの接続をpoolしてアクセスがあると空きができるまで待たせられるみたい。

後はアタックきてたので、/etc/hosts.denyで拒否してやった。
(nginx.confでもdenyでもおk)


■子プロセス数の変更(例)

デフォルトのままだったので変更しました。

staticの場合だと固定値でメモリを保有するので処理速度は上がりますが、
スペックがよければ問題ありません。
今回は4コアでメモリ4GBなので、
他の処理にもメモリを割り当ててくれるdynamicでもいいですが、確保できるstaticにしましょう。

・作成される子プロセスの最大数(max cliant的な)

・起動時に作成される子プロセス数。

・アイドル状態のサーバプロセス数の最小値。

・アイドル状態のサーバプロセス数の最大値。(pm.start_servers + pm.min_spare_servers)

・各子プロセスが再起動するまでに実行するリクエスト数。 (メモリリーク対策)

・phpのメモリ利用制限

・タイムアウトの設定

ちなみに子プロセスもっと下げてもいいんだろうけど下げたらタイムアウトになった・・・

・nginxのチューニング

とりあえずmac値上げる。


■再起動


■まとめ

とりあえずこれでCPU負荷、メモリ消費、ロアベが抑えられサイトもアクセスできるようになった。
あんまりチューニングしすぎると今度は502吐き出すので、
適宜変更して運営していきましょー(・∀・)

参考:http://blog.offline-net.com/2015/05/09/centos-65-nginx-php-fp%EF%BD%8D-memory-tunables/

The following two tabs change content below.
あだちん

あだちん

1989年生まれ。 Infra engineer/Site Reliability Engineering/In Shibuya 2013年新卒に自宅サーバを構築し、この技術ブログを立ち上げたが、 2017年に電源が壊れConoHaにリプレイスした。 好きな構成管理ツールはansible,Terraform。 仮想化ならdocker。Python初心者。 HIPHOPが好きすぎてTrack Makerでもある。

コメントを残す