APC を無効にするか削除する

APC を無効にするか削除する

PHP APC キャッシュ システムに非常に不満があり、サーバーからそれを完全に削除/無効にしたいと考えていました。Debian Squeeze にインストールされた Nginx で PHP を使用していますが、それを実行する方法はありますか?

答え1

APCを削除する代わりに、大規模パフォーマンスが低下し、事実上自ら足を撃つことになります。

これを試してください: /etc/php5/conf.d/apc.ini で:

extension=apc.so
apc.shm_size=128M
apc.shm_segments=1
apc.max_file_size=5M
apc.num_files_hint=10000
apc.slam_defense = 0
apc.write_lock=1

apc.shm_size十分な空き RAM がある場合は、128 より大きい値、たとえば 512 に 増やすことができます。

私はこれを私が運営するサーバーで実行しましたが、プールにメモリを割り当てることができませんエラー。

答え2

/opt/php5/etc/conf.d/apc.ini内のすべての行を削除するか、 を付けてコメント化します;。その後、Web サーバーを再起動することを忘れないでください。

また、'/etc//php5/apache2/php.ini' で 'extension=apc.so' がコメントアウトされているかどうかを確認してください。

ソースがまだ残っている場合は、後で実行してみることができますmake uninstall。makefile にこのターゲットが含まれているかどうかはわかりません。

答え3

Squeeze が提供するもの以外に何かをインストールしていない場合は、単純なものでapt-get remove php-apc十分です。

答え4

解決策は、APC に割り当てられるメモリを増やすことです。

TTL を 0 にすると、メモリが不足すると APC はすべてのキャッシュをフラッシュします。エラーは表示されなくなりますが、APC の効率は大幅に低下します。リスクもトラブルもなく、「仕事をしたくない」という決断です。APC はそのような使い方を意図したものではありません。最もアクセスされるページが期限切れにならないように、TTL を十分に高く設定する必要があります。最善の方法は、APC がキャッシュをフラッシュする必要がないように十分なメモリを割り当てることです。

ttl がどのように使用されるかを理解するには、マニュアルを読んでください。http://www.php.net/manual/en/apc.configuration.php#ini.apc.ttl

apc.shm_size を増やすことで、割り当てられるメモリを増やすことができます。

APC が共有セグメント メモリを使用するようにコンパイルされている場合は、オペレーティング システムによって制限されます。各セグメントのシステム制限を確認するには、次のコマンドを入力します。

sysctl -a | grep -E "shmall|shmmax"

より多くのメモリを割り当てるには、apc.shm_segments パラメータを使用してセグメントの数を増やす必要があります。

APC が mmap メモリを使用している場合、制限はありません。メモリの量は、引き続き同じオプション apc.shm_size によって定義されます。

サーバーに十分なメモリがない場合は、フィルター オプションを使用して、アクセス頻度の低い PHP ファイルがキャッシュされないようにします。

ただし、TTL を 0 にしないでください。

apc.php を使用して設定を確認してください。実際に割り当てられているものとその使用方法がわかります。グラフは数時間後も安定している必要があります。更新のたびにグラフが完全に変化している場合は、設定が間違っていることを意味します (APC がすべてをフラッシュしています)。APC が実際に使用する量の 20% をセキュリティ マージンとして割り当て、定期的に確認してください。

デフォルトで 32MB しか許可しないというのは、途方もなく低いです。PHP は、サーバーが 64MB で、ほとんどのスクリプトが 1 ページにつき 1 つの PHP ファイルを使用していたときに設計されました。今日では、Magento などのソリューションは 10k 以上のファイル (APC で約 60MB) を必要とします。ほとんどの PHP ファイルが常にキャッシュされるように、十分なメモリを許可する必要があります。無駄ではありません。対応する生の PHP をファイル キャッシュに格納するよりも、オペコードを RAM に格納する方が効率的です。今日では、24GB のメモリを備えた専用サーバーを 150 ドル程度で見つけることができます。そのため、APC に数 GB を割り当てることをためらわないでください。私は 24GB のうち 2GB を、5 つの Magento ストアと約 40 の WordPress ウェブサイトをホストするサーバーに配置しました。APC は 1.2GB を使用します。Magento のインストールに 64MB、いくつかのプラグインを含む WordPress に 20MB を数えます。

関連情報