49540


centos7 apache2.4とphp7.2の組み合わせでwebサーバを立ち上げています。

apache 2.4.6  
php 7.2.7  
上記の組み合わせで、apacheを起動直後に、topコマンドでhttpdのプロセスを見た時に、いきなりhttpdの1プロセスが  
250MB  
くらい食っています。

[code]

     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
    
[/code]

ちょっと大きすぎる気がするのですが、原因というか、この辺りをチェックすべしというのがあればアドバイスいただけないでしょうか？

以前、apache2.2系＋php5.6系を使っていた時は、最初は  
50MBくらいだったと思うのです。

この値がphpが利用していくうちに、コードによってはプロセスが再利用されているうちはメモリが増えていくのは仕方ないと思っているのですが、  
上記250MBは、apacheを起動直後の値なのです。  
※preforkで5つ立ち上げているのですが、その５つともまず250MBスタートという感じなのです。

/etc/httpd/conf.modules.d  
の中で、apache2.2系の時にロードしていなかった、davなどの今のところ必要のないモジュールはロードしないようにもしています。

この情報だけでは足りないかもしれませんが、なにかヒントでもいただければ助かります。

* * *

■追記

一つずつモジュールをロードしないようにしてチェックしていきましたが、数百KB程度変化する程度で、大きく変わるものはみつけられませんでした。  
で、httpd.confを初期状態に戻してみると、使用メモリが激減したので、自分で手を加えた部分を少しずつ精査していったところ、VirtualHostの設定の有無で、使用メモリが変わってくることがわかりました。  
以下の例のような、SNIの記述を加えると、約1.5MBほど増大します。

[code]

    <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>
    
[/code]

10個あると15MB。100個あると150MBほど、デフォルトのhttpdプロセスのメモリ使用量に加算されるような形です。  
SSL証明書を指定しないvirtualhost設定の場合は、ここまでメモリを消費しません。  
これは、こういうものなのでしょうか？  
それとも、私の書き方や証明書がおかしいのでしょうか？


CC BY-SA 4.0
2018-10-21T00:41:48.667
49490
2018-10-24T04:55:55.390
2018-10-24T04:55:55.390
3060
14738
question
php centos apache
apache2.4+php7.2でのhttpdプロセスのメモリ使用量について


CentOS7で、Apache2.4.6 + PHP7.2(`libphp7.so`モジュール)だけで動作させてみましたが、  
ここまでは行きませんでした。(1/5程度)

ロードしているモジュールでメモリ使用しているように見受けますので、モジュールのロードしないように  
設定を変更しながら、使用しているモジュールを特定する方法をとるのが確実と思います。


CC BY-SA 4.0
2018-10-22T14:45:09.430
49540
2018-10-22T14:45:09.430
20098
49490
answer