2016-07-06 10 views
0

lruskipsパラメータを実装するためのビジネスケースを作成しています。私は利益があることを知っています(そして、彼らはかなりの可能性があります)。私が知らないことは、メモリなどの面でのパフォーマンスのオーバーヘッドです。私は欠点として考慮する必要があります。結局、バランスの取れた視点が必要です! OpenEdge 10.2B08 ではなく、がLinuxでパッチされているさまざまな種類のWindowsのフレーバーです。Openedge 10.2B08 lruskipsオーバーヘッド

答えて

1

LRUチェーンのメンテナンスに伴うハウスキーピングを回避することで、オーバーヘッドを排除します。これを使用してもメモリ要件は追加されず、CPU消費も削減されます。

ブロックを参照するたびにLRUチェーンの先頭にブロックを移動するのではなく、すべてのXが参照するだけです。したがって、「最も最近に使用された」ブロックであるブロックを退去させるのではなく、おそらくあまり最近使用されていないブロックが追い出されます。

唯一の潜在的な欠点は、理論的には、それを高く設定すると退屈な決定を下す可能性があるという逆の場合があることです。あなたが十分にチェックしていないので(おそらく、あなたは-B管理をFIFOキューに変換しています)、事実の「おそらく」の部分が真実ではないことが判明しています。

たとえば、-Bが1000の1000000に設定すると、それほどスマートではない可能性があります。 (しかし、より大きな問題はおそらく-B1000です)

あなたはそれを(set -lruskips 1000000 -B 1000)行い、アプリケーションに「通常」のアクセスといくつかのバックグラウンドプロセスの組み合わせがあるとしますレポートをサポートするための順次スキャン

レポートの内容は、一度(または非常に数回)しか見ない大量のデータを読み込む予定です。このデータは、直ちにキューのMRU端部に置かれ、新しいデータが読み込まれるとLRU端部に向かって移動する。

頻繁にアクセスされていても、アクセスカウンタの更新がスキップされているため、「通常の」データの作業セットがLRUの最後にプッシュされます。小さい - Bでそれはかなりすぐに端から落ち、追い出されるだろう。そして、次のアクセスが起こるとIOが発生し、サイクルが再開します。

-lruskipsを高く設定するほど、そのようなことになります。 -lruskips 10は、lruハウスキーピングの90%をなくし、非常に危険度の低い設定にする必要があります。 -lruskips 100はハウスキーピングの99%を取り除きますが、-Bがクレイジーでない限り、リスクは非常に低くなります。非常に特殊な状況がない限り、100を超える設定はほとんど意味がないようです。あなたは「リターンを減らす」ことにうまくいて、可能性としては逆の結果にあなたの運を押し込むかもしれません。

関連する問題