web-dev-qa-db-ja.com

これらのAPC設定をさらに最適化できますか?

APCをもう少し最適化したいのですが、どこで何かできるかわかりません。最初に、現在の構成で1週間実行した後のスクリーンショットを示します。 APC Dashboard

私は今、私が確信していない次の点を持っています:

  1. キャッシュがユーザーキャッシュとしても使用されているため、断片化が発生していることが正しくわかりますか?
  2. 合計192MBを割り当てたときに、断片化バーに5.8MBしか表示されないのはなぜですか?
  3. これは、「メモリ使用量」の下の円が完全に閉じられていないというレンダリングの問題ですか?以下のMB値は合計されるためです。 (つまり、再起動後に円がきれいに見えるということは、キャッシュがますます断片化されると、このようになります。)
  4. ヒット率が本当に良いので、断片化が大きな問題かどうかはわかりません。私はまだそれを最適化できると思いますか?

私は主にそれらの質問に答えてもらうことに興味があります。そうして初めて、APCをよりよく理解し、自分で調整することができます。

詳細情報:このサーバーではDrupalで、Magentoが実行されています。Drupalはユーザーキャッシュとしても使用しています。

私にとっての問題は、どうすればそれを最適化できるかということです。もっとRAMを割り当てることができますが、これが本当に大いに役立つかどうかはわかりません。

更新:構成は次のとおりです。

; The size of each shared memory segment in MB.
apc.shm_size = 192M

; Prevent files larger than this value from getting cached. Defaults to 1M. 
apc.max_file_size = 2M

; The number of seconds a cache entry is allowed to idle in a slot in case
; this cache entry slot is needed by another entry.
apc.ttl = 3600

ご覧のとおり、現時点ではごくわずかです。

6

キャッシュがユーザーキャッシュとしても使用されているため、断片化が発生していることが正しくわかりますか?

いいえ、断片化はファイルのオペコードキャッシュサイズが変更されたときに発生する可能性があり、以前に占有していた「スライス」に収まりません-内部的には少し複雑ですが、それが要点です。

合計192MBを割り当てたときに、断片化バーに5.8MBしか表示されないのはなぜですか?

空きの利用可能なキャッシュスペースのうち、100%が断片化に関係しているため、100%を示しています(つまり、その「スライス」の参入障壁は断片化されたサイズ内に収まらなければなりません)。

これは、「メモリ使用量」の下の円が完全に閉じられていないというレンダリングの問題ですか?

はい、信用しないでください。 「スライス内に」出力された値が正しくない場合もあります。

ヒット率が本当に良いので、断片化が大きな問題かどうかはわかりません。私はまだそれを最適化できると思いますか?

絶対に!キャッシュを増やします。 100MBの割り当てがあり、10MBがキャッシュされていても、ヒット率は100%です。

セットアップを成功させるには、剪定がほとんどないはずです(別名:gcがほとんどないか、まったくない)-そして拡張のための肘の余地があるので、少し余分なスペースが必要です。 (5MB以上)断片化の影響により、キャッシュに入りたいものが「複雑」になるためです。

10%の空き容量、断片化されていないスペースを撮影し、監視を続けてサイズを大きくします。また、大量の新しいコードファイルをプッシュすると、キャッシュにも影響することも知っておいてください。

5
thinice

質問3について
サークルが完全に閉じられていない理由を正確に伝えることはできませんが、数日間の稼働時間と10%の断片化の後、私のセットアップでは同じように見えます。

2、
これはAPC統計ページの不具合だと思います。私の場合、「10.34%(89フラグメントの7.3Mバイトのうち771.7Kバイト)」と表示されます。ここで、7.3Mバイトは正確に空きメモリの量です。メモリ使用量の統計。
スクリーンショットを見ると、同じことをしているように見えます。
5.8の5.8が断片化され、5.8が解放されているため、断片化が何らかの理由で空きメモリで計算されているか、数値が間違っています。

比較のために私のスクリーンショットを参照してください:
APC Stats

1
Niko S P

「キャッシュフルカウント」カウンターを確認する必要があります。> 1は、APCのメモリが不足していることを示します。この場合、3日間で39回不足しているようです。

ユーザーキャッシュの使用は、phpファイルキャッシュの使用よりもこの断片化を引き起こしている可能性が高いようです。これは、多くの小さな異なるオブジェクトをキャッシュする傾向があり、それらの存在を参照するためだけにメモリを占有するためです。

私が最初にすることは、「キャッシュフルカウント」が発生しなくなるまで、割り当てられたAPCメモリを増やしようとすることです(安全に、2Goは解決策ではありません)。その後、ユーザーキャッシュにプッシュされるオブジェクトの数に集中します。
(サイズではなく)数を制限できれば素晴らしいのですが、memcacheなどのさまざまな可能性を検討して、そのユーザーキャッシュを保存し、APCをファイルキャッシュ専用にすることができます。

現在のAPC構成を投稿すると、TTLの値を確認できるため、非常に役立ちます。この場合も重要になる可能性があります。

0
Shadok