ブログ - (1号機) Apacheの定期再起動はパフォーマンス改善に効果がある
(1号機) Apacheの定期再起動はパフォーマンス改善に効果がある
- ブロガー :
- ujpblog 2023/11/18 9:28
某サーバのuptimeを確認.
以前542日と言うのがあったけど,それを更新していた模様.
665日前と言うと,2022年1月22日か.体温計を買ったりしていたようで,どうして再起動したのかは覚えてないなぁ...
ふと気づいたのだけど.
先週,ログ出力タイミングを変更するために,Apache httpdを再起動(apachectrl stop;apachectrl start)したんだけど,そうするとCPU timeが減りました.

そして,もっと長い目で見ると長期間動作したまま運用していると,httpdのCPUタイムがどんどん増えていることが確認できました.

これは興味深い.
ちなみに,Apache 1.3脳なのでMPMはpreforkで設定してあります.
MPMの詳細はこれ.
つまり5000リクエスト処理したらプロセスが死滅するようにしているので,メモリリークとかがあってもサーバOSダウンにならないよう制御しているのですが,親プロセスか何かが長期間運用しているとゴミ?が溜まって動作が重くなって非効率化し,CPUタイムをたくさん消費する状態になっていると言うことのよう.
それを解消するには,OSの再起動までいかなくても,Apache httpdを再起動で効果が出る模様.
実際,その某サーバのWebページにアクセスすると,レスポンスがとても速い.やっぱり定期再起動を入れておくのが良いのかな.
そして今回は,DirectoryServiceの再起動を兼ねてOS再起動を実施したのでまた色々とリセットされたのだけど,Apache httpdだけ定期再起動にしてみよう.
juno:$ uptime🆑
2:59 up 665 days, 9:28, 2 users, load averages: 0.18 0.30 0.31
juno:$
665日前と言うと,2022年1月22日か.体温計を買ったりしていたようで,どうして再起動したのかは覚えてないなぁ...
ふと気づいたのだけど.
先週,ログ出力タイミングを変更するために,Apache httpdを再起動(apachectrl stop;apachectrl start)したんだけど,そうするとCPU timeが減りました.

そして,もっと長い目で見ると長期間動作したまま運用していると,httpdのCPUタイムがどんどん増えていることが確認できました.

これは興味深い.
ちなみに,Apache 1.3脳なのでMPMはpreforkで設定してあります.
juno$ /opt/local/apache2/bin/apachectl -V|grep MPM🆑
Server MPM: Prefork
-D APACHE_MPM_DIR="server/mpm/prefork"
juno$
juno$ cat /opt/local/apache2/conf/extra/httpd-mpm.conf🆑
# worker MPM
<IfModule mpm_worker_module>
StartServers 2
MaxClients 200
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 5000
</IfModule>
それを解消するには,OSの再起動までいかなくても,Apache httpdを再起動で効果が出る模様.
実際,その某サーバのWebページにアクセスすると,レスポンスがとても速い.やっぱり定期再起動を入れておくのが良いのかな.
そして今回は,DirectoryServiceの再起動を兼ねてOS再起動を実施したのでまた色々とリセットされたのだけど,Apache httpdだけ定期再起動にしてみよう.