高性能HTTP加速器Varnish(概念篇)

一、 Varnish概述
 Varnish是一款高性能且開源的反向代理服務器和HTTP 加速器,它的作者Poul-Henning Kamp是FreeBSD核心的開發人員之一,Varnish採用全新的軟件體系機構,和現在的硬件體系配合緊密。作者認爲現在的電腦比起1975年已經 複雜許多。在1975年時,儲存媒介只有兩種:內存與硬盤。但現在計算機系統的內存除了主存外,還包括CPU內的L1、L2,甚至有L3快取。硬盤上也有 自己的快取裝置,因此Squid Cache自行處理物件替換的架構不可能得知這些情況而做到最佳化,但操作系統可以得知這些情況,所以這部份的工作應該交給操作系統處理,這就是 Varnish cache設計架構。
挪威最大的在線報紙 Verdens Gang(vg.no)使用3臺Varnish代替了原來的12臺squid,性能比以前更好,這是Varnish最成功的應用案例,目 前,Varnish可以在FreeBSD6.0/7.0、solaris、 Linux2.6內核上運行。本章主要介紹Varnish在Linux下面的應用和案例。
二、 Varnish的結構與特點
 Varnish是一個輕量級的Cache和反向代理軟件,先進的設計理念和成熟的設計框架是Varnish的主要特點,現在的Varnish總共代碼量不大,功能上雖然在不斷改進,但是還需要繼續豐富和加強。下面總結了Varnish的一些特點:
(1)是基於內存緩存,重啓後數據將消失。
(2)利用虛擬內存方式,io性能好。
(3)支持設置0~60秒內的精確緩存時間。
(4)VCL配置管理比較靈活。
(5)32位機器上緩存文件大小爲最大2G。
(6)具有強大的管理功能,例如top,stat,admin,list等。
(7)狀態機設計巧妙,結構清晰。
(8)利用二叉堆管理緩存文件,達到積極刪除目的。
三、 Varnish與Squid的對比
 說到Varnish,不能不提Squid,Squid是一個高性能的代理緩存服務器,它和varnish之間有諸多的異同點,這裏分析如下:
下面是他們之間的相同點:
(1)都是一個反向代理服務器,
(2)都是開源軟件,
下面是它們的不同點,也是Varnish的優點:
(1)Varnish的穩定性很高,兩者在完成相同負荷的工作時,Squid服務器發生故障的機率要高於Varnish,因爲使用Squid要經常重啓。
(2)Varnish訪問速度更快,Varnish採用了“Visual Page Cache”技術,所有緩存數據都直接從內存讀取,而squid是從硬盤讀取,因而Varnish在訪問速度方面會更快。
(3)Varnish可以支持更多的併發連接,因爲Varnish的TCP連接釋放要比Squid快。因而在高併發連接情況下可以支持更多TCP連接。
(4)Varnish可以通過管理端口,使用正則表達式批量的清除部分緩存,而Squid是做不到的。
當然,與傳統的Squid相比,Varnish也是有缺點的,列舉如下:
(1)varnish在高併發狀態下CPU、IO、內存等資源開銷都高於Squid。
(2)varnish進程一旦Hang、Crash或者重啓,緩存數據都會從內存中完全釋放,此時所有請求都會發送到後端服務器,在高併發情況下,會給後端服務器造成很大壓力。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章