3

APC が大量のメモリを使用しています。私のサーバーでは、約 30 の Wordpress と 6 つの Magento Web サイトで、PHP ファイルのサイズを超える 1GB 以上を使用しています。

オペコードは PHP ファイルよりも小さいと思いました。ソースと比較してコンパイルされたJAVAです。

たとえば、Magento の index.php はディスク上で 2571B であり、APC では 16560B を使用します。

ユーザーキャッシュは使用しません。

何か案が ?

4

1 に答える 1

2

オペコードは、それが存在するパスによってすべてのphpファイルをキャッシュします。つまり、ワードプレスのPHPファイルごとに30倍、またはMagentoのPHPファイルごとに6倍になります。それはあなたが使用しているかもしれないPEARライブラリや他のものは言うまでもありません。

また、APCを許可するためのメモリの/etc/php.d/apc.iniまたはphp.iniファイルの設定は何ですか?

apc.shm_segments=1
apc.shm_size=256

セグメントにサイズを掛けると、APCと同じ大きさになります。実際に使用していなくても、すぐにこのメモリブロックを使用できます。実際の使用法を確認するには、apc.phpファイルを確認してください。

Wordpressの最近のWordpressのインストールを見ると、少なくとも8Mのphpファイルが表示されています。したがって、WordPressをフルインストールしてAPCを使用しているサイトが30ある場合、それだけで(プラグインなしで)オペコードキャッシュに大量のデータが含まれることになります。

一般に、オペコードはファイルサイズよりも小さくする必要がありますが、100%確実に知ることはできません。たとえば、[システムキャッシュ]タブでAPC.phpを確認すると、次のファイルがキャッシュされていることがわかります/usr/share/pear/Zend/View/Abstract.php。ディスク上では33kであることがわかっていますが、APCは20Kのメモリを使用していると報告しています。このファイルの2つのコピーが2つの場所(/usr/share/pear/Zend/View/Abstract.phpとなど/usr/share/pear/Zend2/View/Abstract.php)にあり、両方を異なるコードブロックで参照している場合、APCはそれぞれをキャッシュします-それらは異なるファイルであると見なします。

于 2012-08-28T16:35:56.447 に答える