ユーザ空間のLinuxアプリケーションに(ある種の)メモリキャッシュを実装したいと思います。キャッシュのためにLinuxユーザ空間メモリを使用する
私が後にしているのは、linuxのファイルシステムのバッファキャッシュと基本的に同じ動作です。キャッシュされているプロセスで使用されているメモリは何でも使用されます。
キャッシュのサイズをハードコーディングした制限値を書き留めておけば、他のプロセスがそれほど使用していない場合には、キャッシュをいくつかの定義済みの値に制限する必要がありますメモリ、またはそれが縮小する場合、メモリ使用量は風船。
私が望むのは、実際にメモリが必要なときに、キャッシュからいくつかのエントリを削除するように通知する何らかのコールバックをlinuxが呼び出すことです。
このように、プロセスによって必要とされるメモリはすべて自分のキャッシュから取り除くことができ、メモリの残りはキャッシュ専用です。
Linuxでこれを行う方法はありますか?
これを行うだけで/ proc/meminfoを監視し、キャッシュサイズを増やして、使用された物理メモリが全体の物理メモリよりもわずかに少ないような方法が最適です。
あなたのやりたいことによって異なります。ファイルを使って何かをしているのであれば、linuxがそれらのファイルをキャッシュするようにするのが良いでしょう。 –
この質問は、同じことを試みるワニスHTTPキャッシュ/アクセラレータを思い出させます。 –
>>>全体のメモリに比べてわずかに少ない - サービング時間が指数関数的に無限に近づくにつれて、ほぼ100%[または90%]近くを利用することは実際にはあまり効果的ではありません。キューイング理論のドキュメント、またはhttp://www.johndcook.com/blog/2009/01/30/server-utilization-joel-on-queuing/ – Fakrudeen