私はWordpressサイトをCentOS5.5でAPCとW3TCで実行しており、1日あたり約10000ページビューを取得しています(ajaxとWP-Adminを含む)。サーバーは低レベルのVPSであり、最大376MBのRAM。
最近、いくつかのサーバークラッシュが発生し始めましたが、これはAPCに起因するものです(しばらくの間無効にしたところ、クラッシュは停止しました)。
再インストールしてAPCグラフを見ると、PHP-FPMを起動してからわずか数秒で、多くの断片化が発生していることがわかります。場合によっては、100%の断片化が数分で発生する可能性があります。
現在のキャッシュサイズは40MBですが、サーバーのメモリ制限のため、少し増やすのをためらっています。
キャッシュにttlを2時間で設定しましたが、発生している断片化の量を考慮すると長すぎる可能性があります。ただし、設定が短すぎると、キャッシュの目的全体が無効になります。
また、userttlを0より上に設定すると、特定のrequire/include/require_once/include_once関数が呼び出されたときにエラーが大量に発生することにも気づきました。
どんな助けでも大歓迎です。
実行中のAPC3.0.6のようなものがW3Total Cacheのインストール手順で提案されている場合は、おそらくpotential cache slam avoided errors
ログがすぐにいっぱいになります。
APCをアンインストールし、バージョン3.1.7(3.1.9は現在安定しています)を使用して再構築します。これにより、キャッシュスラムのバグと その他の多数の問題 が修正されます。
また、最新のPHP 5.3.6を実行すると、より良い結果が得られます。すべてのバージョンでAPCとの対話が向上します(PHP 6がリリースされると完全に統合されます) 。
また、設定ファイルとapc.slam_defense設定を確認し、約30または40に上げます。
実際のパフォーマンスを向上させるには、apc.statを0に設定すると、ファイルの新しいバージョンをチェックするプロセスが削除されます。サイトに多くの変更を加えると、キャッシュの有効期限が切れるまで更新されません。 (私のユーザーはイライラするので、1に設定しておく必要があります)
apc.slam_defenseを75に設定すると、プロセスがキャッシュされていないファイルをキャッシュしない可能性が75%あることを意味します。したがって、設定が高いほど、キャッシュスラムに対する防御が強化されます。これを0に設定すると、この機能が無効になります。
W3 Total Cacheが使用するapc.user_ttlを低くすると、より動的なものになります。これは実際には変更しないWordPressコアファイルとテーマファイルになるため、apc.ttlを高く保ちます。
W3の設定オブジェクトとdbキャッシュをAPCにすると仮定します。サーバーのサイズに応じて、ページキャッシュをディスク拡張に設定します。また、W3で動的なもののttlを設定できることを忘れないでください。
これはかなり大きなWordPress 12G Ramを備えた専用サーバー上のマルチサイトを実行している私のものです。限られたメモリでもキャッシュサイズを増やすことを恐れないでください。必要に応じていつでも元に戻すことができます。私のものは512Mに設定されていますが、約120Mを超えることはありません。
; configuration for php apc module
extension = apc.so
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 512M
apc.optimization = 0
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.slam_defense = 1
apc.use_request_time = 1
apc.mmap_file_mask = /dev/zero
apc.file_update_protection = 2
apc.enable_cli = 0
apc.max_file_size = 2M
apc.stat = 1
apc.write_lock = 1
apc.report_autofilter = 0
apc.include_once_override = 0
apc.rfc1867 = 0
apc.rfc1867_prefix = "upload_"
apc.rfc1867_name = "APC_UPLOAD_PROGRESS"
apc.rfc1867_freq = 0
apc.localcache = 1
apc.localcache.size = 1350
apc.coredump_unmap = 0
apc.stat_ctime = 0
「キャッシュフルカウント」が高いですか?キャッシュされたアイテムがキャッシュから削除されるのを減らすために、php.iniのapc.shm_sizeのサイズを増やす必要があるようです。それでも、これが安定性の問題を引き起こしているのは残念です...