私は、ps を使用して各 apache2 プロセスで使用される平均メモリを取得する方法を知っています。 観察したところ、約 18 MB であることがわかりました (ただし、過去 2 日間で平均 18 MB から 25 MB に急上昇したようです)。
私たちのサーバーは、いくつかのデータを受け入れてそれを MySQL データベースに保存する API を提供しています。API は PHP で書かれています。メモリ使用量を把握するために PHP mem_get_usage 関数と mem_get_peak_usage 関数を使用しましたが、18 MB にはほど遠い値でした (ほとんどの場合、1 MB 未満と表示されます)。
Apache プロセスごとにこの膨大なメモリが何によって消費されているのかわかりません。合計 RAM が制限されているため、これがボトルネックとなり、この消費量により maxrequestworkers を制限せざるを得なくなり、トラフィックが多いときにクライアントへのサービス提供に遅延が生じます。
ps からの典型的な出力:
www-data 30024 0.0 0.3 494384 26124 ? S 04:27 0:03 /usr/sbin/apache2 -k start
www-data 30077 0.0 0.3 494368 26136 ? S 04:28 0:04 /usr/sbin/apache2 -k start
www-data 30078 0.4 0.3 494360 25960 ? S 04:28 0:21 /usr/sbin/apache2 -k start
www-data 30080 0.1 0.3 494376 26140 ? S 04:28 0:05 /usr/sbin/apache2 -k start
www-data 30115 0.2 0.3 494448 26180 ? S 04:28 0:11 /usr/sbin/apache2 -k start
www-data 30124 0.1 0.3 494376 26212 ? S 04:28 0:07 /usr/sbin/apache2 -k start
www-data 30132 0.0 0.3 494376 26108 ? S 04:28 0:03 /usr/sbin/apache2 -k start
www-data 30135 0.0 0.3 494376 26164 ? S 04:28 0:04 /usr/sbin/apache2 -k start
www-data 30219 0.0 0.3 494352 26108 ? S 04:29 0:03 /usr/sbin/apache2 -k start
apache2 プロセスごとのメモリ使用量を監視する方法と、それを削減/最適化する方法について何か提案はありますか?