WordPressがとても重く、解決策を模索中

WordPressがとても重く、解決策を模索中

1週間ほど前、wordpressが非常に重くなり、まともに閲覧できないことに気付いてどうしたものかと考えています。

その時の原因は、サーバーで動いている関係無いサービスが暴走していてCPUをかなり食っているのが原因だったのですが、そのサービスを再起動した後も、なんとなく以前より重い気がして困っています。

WordPressの動作環境

このサーバーは、去年の11月に設定して立ち上げたのですが、その時に、今までにも使った事のあるApacheを選択せずに、なんだかApacheよりもナウいらしいnginxというものを見よう見まねで構築してみました。
もう、設定ファイルの書き方からApacheとは違って四苦八苦したのですが、また困る必要が出てきました。

とりあえずわかったこと

とりあえず、簡単にgoogleで検索してみてphp-fpmの設定ファイルの以下の値をちゃんと設定する必要が有るようです

  • pm.max_children
  • pm.start_servers
  • pm.min_spare_servers
  • pm.max_requests

調べていると、この値はそれぞれ以下の意味を持つみたい。

pm.max_children

同時に処理される子プロセス数の上限

pm.start_servers

起動時に生成される子プロセスの数

pm.min_spare_servers

待ち状態の子プロセスの最小数
最低でも、この数の待ち状態の子プロセスを確保するってことなのかな?

pm.max_spare_servers

待ち状態のプロセスの最大数

pm.max_requests

子プロセスが再起動するまでのリクエスト数。
子プロセスがこの値のリクエストを処理をした後に再起動するってこと?

pm

なお、これらの値は、pm.max_childrenを除いて、pmがdynamicの場合のみ有効であるって設定ファイルから読んだ。
ちなみに、staticってのがpmに設定されていると、子プロセスがpm.max_childrenの数だけ、常に生成されていて、dynamicの場合は、上記の設定によって動的に管理されるらしい。

とりあえずやったこと

これらの設定値を当てずっぽうながらも設定したら、いくらかマシになった気がする。
ただ、まだサクサクにはほど遠いけど……

そもそもネットワークが遅いのか、ミドルの処理が遅いのか、それともただWordpressが重いだけなのか。
根本原因がわかっていないので、これからも様子見しながら設定を変更していく必要がありそう。

今回、CPUが張り付くなんて事象もあったので、何かしらサーバーの状態を監視する仕組みも考える必要も有るのかな。

なんか、良い方法があったら誰かすごい人教えて欲しいです……