總是有人在問cache用什么,有varnish,squid,apache,nginx這幾種,到底是我們用什么架構cache。
1、從這些功能上。varnish和squid是專業的cache服務,而apache,nginx這些都是第三方模塊完成。
2、要做cache服務的話,我們肯定是要選擇專業的cache服務,優先選擇squid和varnish。
varnish本身的技術上優勢要高于squid,它采用了“Visual Page Cache”技術,在內存的利用上,Varnish比Squid具有優勢,它避免了Squid頻繁在內存、磁盤中交換文件,性能要比Squid高。 varnish是不能cache到本地硬盤上的。
還有強大的通過Varnish管理端口,可以使用正則表達式快速、批量地清除部分緩存
squid的優勢在于完整的龐大的cache技術資料,和很多的應用生產環境(這應該與squid早出來有關)。
3、談談nginx,nginx是用第三方模塊ncache做的緩沖,其性能基本達到varnish,但在架構中nginx一般作為反向(靜態文件 現在用nginx的很多,并發能支持到2萬+)。在靜態架構中,如果前端直接面對的是cdn活著前端了4層負載的話,完全用nginx的cache就夠 了。
4、本人覺得如果是在apache服務上提升性能,做一些本地cache是完全可以的,但如果在系統架構中用apache做cache服務,那就有點牛頭不對馬尾了。
---------------------------------------
一,測試環境
1,硬件是奔騰雙核,機子三年前買的。系統是archlinux
2,測試varnish和squid的時候,web服務用的apache
3,測試apache的時候,啟動了5個進程,不過隨著壓力的增加,進程會增加的。
4,測試nginx的時候,啟動了十個nginx進程,20個php-cgi進程
5,varnish,squid,nginx用的是反向代理的形勢,也就是說訪問圖片的時候,要先透過緩存工具
二,測試
1,varnish
[root@BlackGhost bin]# /usr/local/bin/webbench -c 100 -t 20 http://127.0.0.1:8080/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://127.0.0.1:8080/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
100 clients, running 20 sec.
Speed=476508 pages/min, 47258114 bytes/sec.
Requests: 158836 susceed, 0 failed.
varnish的緩存效率命中率真的好高,看下圖:
訪問了這么次,沒有緩存只有一次,效率真的很高。
2,squid
[root@BlackGhost bin]# /usr/local/bin/webbench -c 100 -t 20 http://localhost:9000/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://localhost:9000/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
100 clients, running 20 sec.
Speed=133794 pages/min, 7475018 bytes/sec.
Requests: 44598 susceed, 0 failed.
從測試效果來說,squid挺讓我失望的,在測試前,我心里是這樣估計的,緩存最好的是 varnish,其次是squid,然后nginx,最后是apache,現在呢,squid是最差的。后來我看了一下log文件,發現正常情況下,緩存 和沒有緩存的比率不是1:2,如果在高壓力下,緩存和沒有緩存的比率更小。
3,apache
[root@BlackGhost conf]# /usr/local/bin/webbench -c 100 -t 20 http://localhost/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://localhost/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
100 clients, running 20 sec.
Speed=160890 pages/min, 15856005 bytes/sec.
Requests: 53630 susceed, 0 failed.
4,nginx
[root@BlackGhost conf]# /usr/local/bin/webbench -c 100 -t 20 http://localhost:10000/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://localhost:10000/00/01/RwGowEtWvcQAAAAAAAAWHH0Rklg81.gif
100 clients, running 20 sec.
Speed=304053 pages/min, 30121517 bytes/sec.
Requests: 101351 susceed, 0 failed.
從上面的測試結果我們可以發現,varnish > nginx > apache > squid,我想這個結果,根大家預期的結果有點出入,因為squid做老牌文件緩存工具怎么會這么差呢,squid的命中率低,我在網上查了一下,很多 人都是這樣的,這個可能根個人配置有關系,也許真正的高手,才能讓squid發揮最大功力。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
