[域名知識(shí)]詳解nginx的url與hash給squid提速
作者:晉城網(wǎng)站建設(shè) 日期:2012-02-16
關(guān)于nginx的url和hash給squid提速的介紹,很有用的教程,希望能給您帶來幫助。
url hash是用于提高squid命中率的一種架構(gòu)算法,一般現(xiàn)行的架構(gòu)通常是使用dns輪詢或lvs等將訪問量負(fù)載均衡到數(shù)臺(tái)squid,這樣做可以使squid的訪問量做到了均衡,但是忽略了一個(gè)重要方面--數(shù)據(jù)量。在這種架構(gòu)下,每臺(tái)squid的數(shù)據(jù)量雖然是一致的,但通常都是滿載,并且存在數(shù)據(jù)重復(fù)緩存的情況。如果后端服務(wù)器數(shù)據(jù)容量或者用戶的訪問熱點(diǎn)數(shù)遠(yuǎn)遠(yuǎn)超過緩存機(jī)器的內(nèi)存容量,甚至配置的disk cache容量,那么squid將會(huì)大量使用磁盤或者不停與后端服務(wù)器索取內(nèi)容。
在新的架構(gòu)下,使用nginx架載于squid之前,如果squid機(jī)器有4臺(tái),那么在這4臺(tái)機(jī)器上裝上nginx,nginx使用80端口,而squid改為3128端口或其他端口。nginx的效率非常高,消耗內(nèi)存也非常少,所以并不需考慮加裝nginx所帶來的性能損耗。然后在nginx上配置url hash,使訪問量根據(jù)url均衡分布到各臺(tái)squid,根據(jù)url分流之后,每一個(gè)url就會(huì)只存在于一臺(tái)squid中,每臺(tái)squid的數(shù)據(jù)都會(huì)完全不同。我們有4臺(tái)機(jī)器,每臺(tái)2G內(nèi)存的話,原先極有可能因?yàn)閿?shù)據(jù)大量重復(fù),內(nèi)存使用率仍然為2G,而現(xiàn)在我們經(jīng)過數(shù)據(jù)均衡分布,8G內(nèi)存可以達(dá)到充分利用。
是否會(huì)存在訪問不均的情況呢?是有可能的,但是根據(jù)大數(shù)原理,訪問量基本可以保持一致,只要不存在單一的特別夸張的熱點(diǎn)。
假如squid是利用squidclient來刷新數(shù)據(jù)的話,新的架構(gòu)提供了更高效的方法:在后端服務(wù)器中模擬url hash的算法來找到內(nèi)容所在的squid,然后對(duì)此服務(wù)器刷新內(nèi)容即可。在舊的架構(gòu)中,需要遍歷所有的服務(wù)器,比較低效。
上一頁12 3 4 下一頁
在新的架構(gòu)下,使用nginx架載于squid之前,如果squid機(jī)器有4臺(tái),那么在這4臺(tái)機(jī)器上裝上nginx,nginx使用80端口,而squid改為3128端口或其他端口。nginx的效率非常高,消耗內(nèi)存也非常少,所以并不需考慮加裝nginx所帶來的性能損耗。然后在nginx上配置url hash,使訪問量根據(jù)url均衡分布到各臺(tái)squid,根據(jù)url分流之后,每一個(gè)url就會(huì)只存在于一臺(tái)squid中,每臺(tái)squid的數(shù)據(jù)都會(huì)完全不同。我們有4臺(tái)機(jī)器,每臺(tái)2G內(nèi)存的話,原先極有可能因?yàn)閿?shù)據(jù)大量重復(fù),內(nèi)存使用率仍然為2G,而現(xiàn)在我們經(jīng)過數(shù)據(jù)均衡分布,8G內(nèi)存可以達(dá)到充分利用。
是否會(huì)存在訪問不均的情況呢?是有可能的,但是根據(jù)大數(shù)原理,訪問量基本可以保持一致,只要不存在單一的特別夸張的熱點(diǎn)。
假如squid是利用squidclient來刷新數(shù)據(jù)的話,新的架構(gòu)提供了更高效的方法:在后端服務(wù)器中模擬url hash的算法來找到內(nèi)容所在的squid,然后對(duì)此服務(wù)器刷新內(nèi)容即可。在舊的架構(gòu)中,需要遍歷所有的服務(wù)器,比較低效。
上一頁12 3 4 下一頁