17

ここに私のAPCの実行方法へのリンクがあります:[削除済み]

ご覧のとおり、すぐにいっぱいになり、キャッシュ フル カウントが 1000 を超えることがあります。

私のウェブサイトはワードプレスを使用しています。

新しい投稿を作成したり、投稿を編集したりするたびに、2 つのことが起こることに気付きました。

1) APC メモリの「USED」がリセットされる 2) フラグメントが大量に発生する

APC (512 mb) により多くのメモリを割り当てようとしましたが、時々クラッシュします。384 が最適なようです。また、apache を再起動し、すべての APC のフラグメントと使用済みメモリを 4 時間ごとにクリアする Cron ジョブもあります。繰り返しますが、APC が長時間実行されていると、Apache がクラッシュします。フラグメントの蓄積が原因だと思います。

apc.Filters を使用して、キャッシュすべきではないものを除外する必要がありますか?

私はこの種のもので本当に初心者なので、誰かが完全な指示で説明できるなら、どうもありがとう!!!

4

3 に答える 3

41

私は Linux システム管理者として働いており、wordpress サーバーは 5 つの異なる WordPress インストールを実行しています。1 つだけ実行している場合は、考慮すべき構成についてコメントします。

APC / PHP バージョン、3.1.9 / 5.3.7

これが私の完全なapc.confです。

apc.enabled=1
apc.shm_segments=1

; I would try 32M per WP install, go from there
apc.shm_size=128M

; Relative to approx cached PHP files,
apc.num_files_hint=512

; Relative to approx WP size W/ APC Object Cache Backend, 
apc.user_entries_hint=4096

apc.ttl=7200
apc.use_request_time=1
apc.user_ttl=7200
apc.gc_ttl=3600
apc.cache_by_default=1
apc.filters
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.file_update_protection=2
apc.enable_cli=0
apc.max_file_size=2M

;This should be used when you are finished with PHP file changes.
;As you must clear the APC cache to recompile already cached files.
;If you are still developing, set this to 1.
apc.stat=0

apc.stat_ctime=0
apc.canonicalize=1
apc.write_lock=1
apc.report_autofilter=0
apc.rfc1867=0
apc.rfc1867_prefix =upload_
apc.rfc1867_name=APC_UPLOAD_PROGRESS
apc.rfc1867_freq=0
apc.rfc1867_ttl=3600

;This MUST be 0, WP can have errors otherwise!
apc.include_once_override=0

apc.lazy_classes=0
apc.lazy_functions=0
apc.coredump_unmap=0
apc.file_md5=0
apc.preload_path

@Chris_O、あなたの構成はいくつかの点で最適ではありません。

1.apc.shm_segments=3

最新の Linux ディストリビューションを実行している場合、SHM は十分な大きさである必要があります。sysctl.conf エントリを設定する方法を検索するのが小さすぎる場合は、次のように確認できます。

#Check Max Segment size
cat /proc/sys/kernel/shmmax

特定の BSD、または他の Unix、またはあなたが制御していない管理対象ホストで実行している場合の例外。連続したセグメントを持たないことには欠点があります。その情報については、APC の詳細を参照してください。

2.apc.enable_cli=1

BAD BAD BAD、これはデバッグ専用です。php-cli を実行するたびに、APC キャッシュがクリアされます。

3.apc.max_file_size=10M

不必要でばかげている!それほど大きなファイルがある場合、その小さな 32M SHM の 1/3 を消費します。3 を指定しても、3 つの部分からなる 1 つの大きなセグメントのように振る舞うだけではありません。とにかく、WPには、そのサイズに近い単一のPHPファイルさえありません。

'apc.conf で人々の役に立てば幸いです。

于 2011-08-26T16:08:02.810 に答える
10

APC ttl は、フラグメントの構築を処理する必要があります。通常は 7200 に設定します。WordPress を使用して小さな VPS で実行しています。設定は次のとおりです。

apc.enabled=1
apc.shm_segments=3
apc.shm_size=32
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=2048
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1
apc.max_file_size=10M

また、WordPress のビルトイン オブジェクト キャッシュを使用することで、より多くのメリットが得られます。Mark Jaquith は、投稿を保存または編集する際の断片化の問題にも役立つ、非常に優れたドロップイン プラグインを作成しました。

于 2010-09-19T00:33:58.510 に答える
1

本番サーバーで apc.stat=0 を設定する必要があります。これにより、APC が実際に IO にアクセスしてファイルが変更されたかどうかを確認できなくなります。

最初にドキュメントを確認してください: http://php.net/manual/en/apc.configuration.php

于 2010-10-17T14:35:15.877 に答える