インメモリコンピューティング

インメモリコンピューティング

httpdApache/2.2.29)メモリ使用量にはいくつかの問題があります。

時間の経過とともに、プロセスのメモリ使用量はhttpd最終的に100%に達するまで徐々に増加します。

最後の再起動はhttpd約24時間前でした。出力はfree -m次のとおりです

[ec2-user@www ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:          1655       1415        239          0        202        424
-/+ buffers/cache:        788        866
Swap:         1023          4       1019

確かに証明するために再起動して再httpd実行httpdしました。free -m

[ec2-user@www ~]$ sudo service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
[ec2-user@www ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:          1655        760        894          0        202        360
-/+ buffers/cache:        197       1457
Swap:         1023          4       1019

したがって、Apacheを再起動すると、使用可能なメモリが239 Mbから894 Mbに減少します。これは次のとおりです。大きい走る。

私は現在アクティブなApacheモジュール(多く)と無効化/削除されたモジュールmod_wsgimod_perlPHPベースのWebアプリケーション、特にMagentoを実行しているこのサーバーには必要ありません)のリストを見ました。

に基づいてhttps://servercheck.in/blog/3-small-tweaks-make-apache-fly、実行し、ps aux | grep 'httpd' | awk '{print $6/1024 " MB";}'次の出力を取得します。

[root@www ~]# ps aux | grep 'httpd' | awk '{print $6/1024 " MB";}' 15.1328 MB 118.09 MB 127.449 MB 129.059 MB 117.734 MB 113.824 MB 125.062 MB 123.922 MB 119.855 MB 108.066 MB 136.23 MB 114.031 MB 113.27 MB 110.695 MB 102.113 MB 113.234 MB 186.816 MB 118.602 MB 0.835938 MB

他の提案された診断ツールを実行すると、次の結果が返されMaxClientsます。ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'

[root@www ~]# ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
110.212 MB

サーバー(Amazon AWSm1.smallインスタンス)には1.7 GbRAMがあります。したがって:

設定を調整するための最良の方法httpd、またはこの問題の原因を正確に診断する方法に関する追加のガイドライン/アドバイスはありますか?

ベストアンサー1

この問題を「解決」するために私がしたことは次のとおりです。

  1. 設定MaxClients 7(基準(1740.8Mb Memory on server - 900Mb for MySQL + other stuff) / 111Mb average usage per httpd process = 7.5747747747747747747747747747748

だから:

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients         7
MaxRequestsPerChild  4000
</IfModule>
  1. 、、、、、、、、、、を除くすべてのApacheモジュールを無効にしますauthz_host_modulelog_config_moduleexpires_moduledeflate_modulesetenvif_modulemime_moduleautoindex_modulenegotiation_moduledir_modulealias_modulerewrite_modulephp5_module

  2. mod_sslクライアントは何も使用しないので、このパッケージを削除してくださいhttps://

この新しい設定がしばらく実行されたら、もう一度報告して問題が解決するかどうかを確認します。

以下はいくつかのインスピレーションを得たものです。http://www.activoinc.com/blog/2009/08/31/performance-optimized-httpd-conf-for-magento-ecommerce/そしてhttp://www.activoinc.com/downloads/httpd.conf-magento

おすすめ記事