Shm Space APCが正しく動作するために必要な最小量はどれくらいですか?私は現在、virtuozzoに基づくVPSでWordpressブログを実行していますが、カーネルのshmを32mbを超えるものに設定できません。APCに「通常の」メモリを使用するように指示する方法はありますか?共有する代わりに(私はたくさんのRAMを持っています...)
私の現在のapc.iniは次のように見えますが、apcは、30 MB(30.0 Mバイトの1セグメント(mmapメモリ、pthreadミューテックスロック))を使用していることを示しています。
extension = apc.so
apc.enabled = 1
apc.shm_segments = 15
apc.num_files_hint = 2700
apc.user_entries_hint = 2700
apc.ttl = 7200
apc.user_ttl = 3600
apc.gc_ttl = 600
apc.cache_by_default = 1
apc.max_file_size = 2M
apc.stat = 1
自分で解決策を見つけました:
デフォルトでは、apcは共有メモリにmmapを使用するようになりました。理論的には、mmapはカーネルによって最大shmサイズにバインドされるべきではありませんが、少なくともvirtuozzoのような共有サーバー環境ではバインドされているようです。また、mmapはapc.shm_segments
を無視します。これは、マスクなしでメモリにマップする複数の匿名ファイルを作成しないためです。したがって、apc.mmap_file_maskも設定しない限り、これは役に立たないようです。
別の方法は、--disable-apc-mmap
を使用してapcを再コンパイルし、代わりにIPC共有メモリを使用することです!
APCパッケージのapc.phpファイルを使用して、APCがメモリをどのように使用するかを確認します。 APCに20%の空きスペアメモリができるまで増やします。
単一のWordpress一部のプラグインでは、4,000万以上が必要になる場合があります。
要求できる共有メモリセグメントのサイズに制限がある場合があります。
ただし、構成で使用するAPC用にこのようなセグメントをいくつか追加できます。apc.shm_segments=2
http://php.net/manual/en/apc.configuration.php#ini.apc.shm-segments