我有很高的HTTP请求执行时间(例如13s中的42KB)。
我正在使用haproxy来平衡stream量。 静态文件是由varnish加速器后面的lighttpd服务器。 所以……应该在光速以下服务:P
http://img580.imageshack.us/g/34411388.png/
长DNS查找:pic1
长时间接收:pic2
模拟下载:pic3
我使用GoogleDNS。 这些服务器在美国。 首先,我添加了IP到/ etc / hosts来省略DNS查询。 其次,我将静态移植到单独的机器上,省略了haproxy。 就这样,它直接连接到清漆。 交通不是很大,因为这只是发展,也是在生产中发生的。
http://img580.imageshack.us/g/34411388.png/
更改后:pic4
这个好一点,但还是很慢
首先,你必须检查清漆在哪里服务的形象。 是每次caching图像还是使用后端?
你可以用很多方式检查:
-p vcl_trace=true如果我的内存工作正常。 varnishlog观看图像的一些请求,看看发生了什么(如果它从caching等服务)。 如果你设置了vcl_trace你必须使用它。 喜欢这个:
sub vcl_deliver { if (obj.hits > 0) { set resp.http.X-Cache = "HIT"; unset resp.http.cookie; } else { set resp.http.X-Cache = "MISS"; } }
它将在Varnish服务的每个请求上添加一个Xcaching头。 在检查清漆确实caching正确之后,我们可以寻找很长时间来回答的原因,但是我认为看清痕迹的请求会给你一些提示。
你可能会被Buffer Bloat击中。