我想在我的用戶空間linux應用程序中實現內存緩存(某種類型)。使用linux用戶空間內存進行緩存
我所追求的基本上與linux的文件系統緩衝區高速緩存相同的行爲:任何其他內存都不使用的內存由我的緩存進程使用。
如果我要用硬編碼限制我的緩存應該有多大,我必須將緩存限制在某個預定義的值,而不是如果剩餘的進程沒有使用那麼多內存,或者它縮小,如果內存使用氣球。
我想要的是linux調用某種回調,通知我從我的緩存中刪除一些條目,當它實際上需要內存時。
這樣,進程所需要的任何內存都可以從我的緩存中取走,而剩下的內存專用於我的緩存。
有沒有辦法在linux中做到這一點?
是這樣做的最好方法,只監視/ proc/meminfo並增加我的緩存大小,以便使用的物理內存幾乎比總物理內存少?
這取決於你想要做什麼。如果你正在使用文件做什麼,那麼讓linux緩存它們可能會更好。 – 2012-02-22 08:02:05
這個問題讓我想起了Varnish HTTP緩存/加速器,它試圖做同樣的事情。 – 2012-02-22 08:50:56
>>>勉強少於總內存 - 由於服務時間以指數方式接近無窮大,所以利用接近100%[甚至90%]實際上並不是一個好主意。查看任何排隊理論文件或http://www.johndcook.com/blog/2009/01/30/server-utilization-joel-on-queuing/ – Fakrudeen 2012-02-22 09:49:05