apache2.4+php7.2でのhttpdプロセスのメモリ使用量について
centos7 apache2.4とphp7.2の組み合わせでwebサーバを立ち上げています。
apache 2.4.6
php 7.2.7
上記の組み合わせで、apacheを起動直後に、topコマンドでhttpdのプロセスを見た時に、いきなりhttpdの1プロセスが
250MB
くらい食っています。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
XXXXX apache 20 0 799.7m 250.2m 1.8m S 0.0 12.5 0:00.00 httpd
ちょっと大きすぎる気がするのですが、原因というか、この辺りをチェックすべしというのがあればアドバイスいただけないでしょうか?
以前、apache2.2系+php5.6系を使っていた時は、最初は
50MBくらいだったと思うのです。
この値がphpが利用していくうちに、コードによってはプロセスが再利用されているうちはメモリが増えていくのは仕方ないと思っているのですが、
上記250MBは、apacheを起動直後の値なのです。
※preforkで5つ立ち上げているのですが、その5つともまず250MBスタートという感じなのです。
/etc/httpd/conf.modules.d
の中で、apache2.2系の時にロードしていなかった、davなどの今のところ必要のないモジュールはロードしないようにもしています。
この情報だけでは足りないかもしれませんが、なにかヒントでもいただければ助かります。
■追記
一つずつモジュールをロードしないようにしてチェックしていきましたが、数百KB程度変化する程度で、大きく変わるものはみつけられませんでした。
で、httpd.confを初期状態に戻してみると、使用メモリが激減したので、自分で手を加えた部分を少しずつ精査していったところ、VirtualHostの設定の有無で、使用メモリが変わってくることがわかりました。
以下の例のような、SNIの記述を加えると、約1.5MBほど増大します。
<VirtualHost *:443>
ServerName 0001.XXXXXX.jp
DocumentRoot /var/www/html/0001/
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA:!3DES:!RC4:!DH
SSLCertificateFile /XXXX.crt
SSLCertificateKeyFile /XXXX.key
SSLCACertificateFile /XXXXinter.crt
</VirtualHost>
10個あると15MB。100個あると150MBほど、デフォルトのhttpdプロセスのメモリ使用量に加算されるような形です。
SSL証明書を指定しないvirtualhost設定の場合は、ここまでメモリを消費しません。
これは、こういうものなのでしょうか?
それとも、私の書き方や証明書がおかしいのでしょうか?