不管怎么樣的ETag,在服務器端都要進行計算,計算就有開銷,會帶來性能損失。一些網站把ETag禁用了,這其實不符合HTTP1.1的規定,因為HTTP/1.1總是鼓勵服務器盡可能的開啟ETag。為了確定ETag對性能造成的具體影響。我們在服務器上(CPU Intel E5-2620 2.00GHz,內存65G,Web Server使用此CPU的兩個核心)進行壓力測試,在逐漸增加并發用戶數目的情況下,查看CPU消耗率和服務器吞吐率在有無設置ETag情況下的具體對比。
CPU利用率
如下圖所示,其為測試中服務器使用的平均CPU利用率,縱坐標為百分比,橫坐標為開始測試的時間,其中不用ETag時,平均CPU利用率為18.62805%;啟用ETag時,平均CPU利用率為21.20956%。
吞吐率
如下圖所示,圖中橫坐標為并發連接數,可見有無啟用ETag對服務器吞吐率的影響不大。
CPU利用率
如下圖所示,其為測試中服務器使用的平均CPU利用率,縱坐標為百分比,橫坐標為開始測試的時間,其中不啟用ETag時,平均CPU利用率為8.679665%;啟用ETag時,平均CPU利用率為9.776242%。
吞吐率
如下圖所示,圖中橫坐標為并發連接數,可見有無啟用ETag對服務器吞吐率的影響不大。
從實際實驗可以看出有無設置ETAg對服務器在高并發下的吞吐率幾乎無影響,設置ETag后的負面影響主要為增加了CPU負載1%~3%。