不管怎么樣的ETag,在服(fu)(fu)務(wu)器(qi)端都要進(jin)行計算,計算就有開銷(xiao),會帶來性能損失。一些網站(zhan)把ETag禁(jin)用了(le),這其實不符合(he)HTTP1.1的規(gui)定(ding),因為HTTP/1.1總是鼓勵服(fu)(fu)務(wu)器(qi)盡可能的開啟ETag。為了(le)確定(ding)ETag對性能造成的具體影響。我們在服(fu)(fu)務(wu)器(qi)上(CPU Intel E5-2620 2.00GHz,內(nei)存65G,Web Server使用此CPU的兩(liang)個(ge)核心)進(jin)行壓力測試,在逐漸增加并(bing)發用戶數目的情況(kuang)下,查看(kan)CPU消(xiao)耗率(lv)和服(fu)(fu)務(wu)器(qi)吞吐(tu)率(lv)在有無設置ETag情況(kuang)下的具體對比。
CPU利用率
如下圖所示,其(qi)為測(ce)試中服務器使用的平均(jun)CPU利用率(lv),縱(zong)坐(zuo)標(biao)為百分比,橫坐(zuo)標(biao)為開始測(ce)試的時(shi)間,其(qi)中不(bu)用ETag時(shi),平均(jun)CPU利用率(lv)為18.62805%;啟用ETag時(shi),平均(jun)CPU利用率(lv)為21.20956%。
吞吐率
如下圖(tu)所示,圖(tu)中橫坐(zuo)標(biao)為(wei)并發連(lian)接數,可見有(you)無啟用ETag對服務器吞吐率(lv)的影(ying)響不(bu)大。
CPU利用率
如下(xia)圖(tu)所(suo)示,其為測試(shi)(shi)中服務器使用的(de)平均(jun)(jun)CPU利(li)用率(lv),縱坐標為百分比,橫坐標為開始測試(shi)(shi)的(de)時(shi)(shi)間(jian),其中不啟(qi)用ETag時(shi)(shi),平均(jun)(jun)CPU利(li)用率(lv)為8.679665%;啟(qi)用ETag時(shi)(shi),平均(jun)(jun)CPU利(li)用率(lv)為9.776242%。
吞吐率
如(ru)下圖所(suo)示,圖中橫(heng)坐(zuo)標(biao)為并發連接數,可見有無啟(qi)用ETag對(dui)服務器吞吐率的影響不大(da)。
從實際實驗可以(yi)看出有無設置ETAg對(dui)服務器在高(gao)并發下(xia)的(de)吞吐率幾乎無影(ying)響(xiang),設置ETag后的(de)負面(mian)影(ying)響(xiang)主要(yao)為增加了CPU負載1%~3%。