現(xiàn)象:Nginx與應(yīng)用都在同一臺服務(wù)器(4g內(nèi)存、4核cpu)上,nginx緩存區(qū)內(nèi)存配置1g,開啟nginx的accesslog,跑圖片終端頁性能腳本,觀察到accesslog里面有90%以上的MISS狀態(tài)的,nginx緩存沒有起到作用,加大nginx緩存內(nèi)存為2g,清了緩存再次跑性能腳本,accesslog中的MISS狀態(tài)仍占大部分,且應(yīng)用服務(wù)器的內(nèi)存空間基本被用完。
解決:將nginx與應(yīng)用分開,nginx放在一臺服務(wù)器上,應(yīng)用包搬到另一服務(wù)器(6g內(nèi)存、8核cpu)上,跑圖片終端頁腳本,nginx緩存區(qū)內(nèi)存配置2g,觀察到響應(yīng)提上去了,accesslog里HIT狀態(tài)的占90%或更多。說明nginx緩存區(qū)有起到作用。
主要原因:nginx的緩存區(qū)設(shè)置1G時不夠用,沒起到作用。當調(diào)整到2G時,由于服務(wù)器上還存放應(yīng)用也占了內(nèi)存,另外系統(tǒng)也需要資源,導致nginx所配置的2G內(nèi)存沒起作用。當把nginx和應(yīng)用分開時,資源都充足了,這時nginx的緩存區(qū)也能起到作用。