0

Vista 64 ビット マシンで Apache モジュールとして Apache/2.2.15 (VC9) および PHP/5.3.2 (VC9 スレッド セーフ) を実行しています。すべて正常に動作しています。

私がベンチマークしているプロジェクト (apache の ab ユーティリティを使用) は、基本的に、db 接続を含まない標準の Zend Framework プロジェクトです。平均 (中央値) の apache 応答は約0.15 秒です。

標準設定で APC (3.1.4-dev VC9 スレッド セーフ) をインストールした後、要求応答時間が突然1.3 秒 (!)に上昇しました。スクリプト: 十分な shm メモリ、キャッシュがいっぱいでない、断片化 0%)。

唯一の違いは、統計検索を無効にすることでした (apc.stat = 0)。その後、応答は0.09 秒に低下し、apc がない場合よりも最終的に改善されました。IIRC、stat ルックアップがいくらかのオーバーヘッドを作成することは予想され、明らかですが、apc 拡張機能をまったく使用せずに実行する場合と比較して、はるかにパフォーマンスが高くなるのではないでしょうか?

別の言い方をすれば、なぜ apc.stat がこれほど多くのオーバーヘッドを生み出しているのでしょうか?

4

3 に答える 3

1

統計チェックがファイル キャッシュをバイパスしているように聞こえますが、Microsoft NT でもファイル キャッシュの一貫性を保証できると思います。

(FWIW:apcでの私の経験は、Linuxで大きな改善をもたらしたということでした)

別のファイルシステムを試すことをお勧めしますが、NT では選択肢があまりありません。

結果に自信がある場合 (テストの合間にリブートしたか、Apache を再起動しただけですか?)、http://bugs.php.net/にバグを投稿してください(明らかに関連するものはまだないようです) 。

C.

編集

.. ふと思いついたのですが、テストの実行中にシステム メモリに何が起きているのでしょうか? ab のインスタンスですべての物理メモリを使い果たした場合、ファイル キャッシュはありません。

于 2010-05-27T12:25:48.813 に答える
1

更新: 主要な速度低下はウイルス対策ソフトウェアが原因であることがわかりました...なぜそうなるのかはわかりませんが (apc のみの理由)、もう問題ではありません (注: これは開発マシンです)。

apc (apc.stat = 1) を使用して実行すると、応答時間は約0.13 秒になり、apc を使用しない場合 ( 0.15 秒)よりも少し良くなります。思ったより全然良くないですが、とりあえず置いておきます。

答えてくれてありがとうsymcbean。

于 2010-05-28T13:38:21.737 に答える
0

ウイルス対策はばかげています。APC が実行されて出力が生成されるたびに、新しいアプリケーションが存在し、それを再スキャンしようとしていると考えます。キャッシュ "apc.cache_by_default=Off" を無効にすると改善が見られるはずですが、AV によるコンパイル済みファイルのスキャンを単に無効にする方がよいでしょう。

于 2010-05-28T13:52:06.277 に答える