squid純記憶體快取

2021-08-31 18:09:24 字數 2731 閱讀 1401

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!

原貼:posted by scaner in : linux,  web          , trackback

看見網上不少介紹squid的使用經驗,說可以用ramdisk/tmpfs記憶體檔案系統來加速squid. 個人認為完全沒有必要,直接簡單配置一下,就可以讓squid直接充分利用大記憶體:

maximum_object_size 32768 kb

cache_mem 1512 mb # cache使用的最大記憶體

maximum_object_size_in_memory 128 kb # cache在memory中最大object的大小

memory_pools_limit 150 mb # 小物件記憶體池的大小

cache_dir null /tmp # 使用null disk

一些需要注意的事項: squid在編譯的時候,要支援nullfs. maximum_object_size_in_memory應該盡量大於最大的object的尺寸,但是也不要太大,否則會影響記憶體分配的效率.

考慮一下實際應用的情況: 平均頁面物件都不是很大,物件個數也不是很多,同時又有充足的記憶體餘量,內容跟新還算頻繁,這個時候,1.5g和20g或者40g的cache的請求命中 率其實相差非常細微,不過是99%和99.9%的區別,這個時候,完全有理由,拋下緩慢的disk cache,直接使用memory cache,這樣不但能有效降低系統load,還能使squid自身更加輕快便捷.

1. frank liu - january 10, 2007   

非常好2. slls - january 16, 2007   

受教!但不知cache_mem和memory_pools_limit的大小是何關係。請指教!

謝謝!

3. scaner - january 20, 2007   

我 以前對memory_pool_limit理解也有錯誤, memory_pool_limit並不是小物件池的大小,相當於malloc的cache,squid並不直接對釋放的物件呼叫free操作,而是等到 這個大小超過到這個大小超過memory_pool_limit才會真正釋放. 感覺比較合適的大小是cache_mem + memory_pool_limit < 實際記憶體量, memory_pool_limit在150m左右就差不多了.當然還有為系統別的程式留一點餘量。比如說如果是2g記憶體我的cache_mem是 1648m,memory_pool_limit是120m

4.charles - march 10, 2007   

不知道你有沒有留意到,如果用 null 方式的儲存,全部放記憶體後,squid 的 response time 會變成非常高。

在我的應用,是 2ms 公升到 30ms,這有可能是因為 squid 主程序不單止要接受請求,還要去從儲存(null 的方式是存在記憶體)裡面查詢相應的資料,再返回。

而用 aufs 或 diskd 方式,squid 可以馬上響應下乙個請求,而將查詢的工作交給 diskd 程序去處理。

5. scaner - march 13, 2007   

真 還沒注意過這個現象。30ms這個好像有點誇張啊,我現在乙個主squid的峰值請求處理數能到1200hits/s了。物件資訊都是儲存在記憶體中的,直 接記憶體處理,再怎麼也要比aufs/diskd再倒一次手要快很多吧,我的意思是說,有submit任務到aufs/diskd的功夫,記憶體查詢早就搞定 了。

6.charles - march 19, 2007   

你可能架乙個 mrtg 來檢視一下就知道了。只要壓力很大,response 的值就會非常高。

在我的應用中,也是將資料儲存到記憶體裡面的,使用 diskd 直接讀寫 /dev/shm 等。

7. scaner - march 19, 2007   

赫赫,你看得是那乙個圖阿?

你先確定一下,是不是用了 epoll ?

如果是用了 epoll,我覺得有這樣的響應時間,我覺得正常。在不支援 epoll 的環境下,squid 的響應時間會慢,而且 cpu 占用較高。

另外,我現在在關注這個:

9. scaner - april 3, 2007   

用squid就是因為epoll阿.沒有epoll連線數一多cpu就跑上去了.varnish這個東西看著不錯啊,不過看了上面乙個評測的鏈結,lighttpd居然是吞吐量最強的,寒乙個.還是祈求上天light 1.5趕快release吧.

給我老師的人工智慧教程打call!

squid純記憶體快取

原貼 http blog.scaner.i.thu.cn index.php 2006 11 20 squid pure memory cache posted by scaner in linux,web trackback 看見網上不少介紹squid的使用經驗,說可以用ramdisk tmpfs...

squid 清除快取

7.6 刪除快取物件 在某些情況下,你必須從squid的cache裡手工刪除乙個或多個物件。這些情況可能包括 你的使用者抱怨總接收到過時的資料 你的cache因為某個響應而 中毒 squid的cache索引在經歷磁碟i o錯誤或頻繁的crash和重啟後,變得有問題 你想刪除一些大目標來釋放空間給新的...

奇怪的squid快取

乙個asp頁面 response.cachecontrol max age 120 response.write now 一 max age必須大於120,不然不能快取 二 開始squid返回的http header的age值就55!實際快取時間為 120 55 65 另乙個asp頁面 respon...