我们正在计划在我们的生产环境中使用Varnish Cache 3.0.2(最新版本),但是为了发展,我们希望在我们的本地计算机上运行Varnish,我们中的一些人拥有Win7。 我只能find安装它的唯一简单的select是捆绑在Windows上的Varnish(2.1)的旧版本。 https://www.varnish-cache.org/trac/wiki/VarnishOnCygwinWindows 有没有build立它(如何?)或获得编译版本的选项?
最近我们遇到了Varnish(3x) – > Apache(3x)安装的问题,导致SYN_SENT连接数量猛增。 这个峰值本身是由于新的stream量触及网站(而不是任何types的DDOS),而且似乎我们的Varnish机器在将stream量转发到后端服务器时出现问题(Apachestream量下降与清漆上的尖峰相关),拥塞SYN_SENT的可用端口池。 保持活动在Apache(15s)上启用。 哪一方是错的? stream量很大,但是不应该导致这样的设置(3x Varnish前端机器,3x后端Apache服务器)停顿。 请帮忙。 Munin截图通过防火墙连接在这里 。 varnish〜 ~$ netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c 9 CLOSE_WAIT 12 CLOSING 718 ESTABLISHED 39 FIN_WAIT1 1714 FIN_WAIT2 76 LAST_ACK 12 LISTEN 256 SYN_RECV 6124 TIME_WAIT /etc/sysctl.conf(Varnish) net.ipv4.netfilter.ip_conntrack_max = 262144 net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60 net.ipv4.ip_local_port_range = 1024 65536 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 […]
运行Varnish 4,我偶尔会得到503错误,我不能把我的手指。我已经尝试直接curl后端,它每次都会返回一个响应,所以它不看起来像问题在那里。 下面是从我的varnishlog入口,但它没有告诉我很多。 我通过运行命令获得了这个日志 varnishlog -q "RespStatus >= 500 or BerespStatus >= 500" 这是日志条目 * << Request >> 524356 – 524356 Begin c req 524355 rxreq – 524356 Timestamp c Start: 1421453220.095464 0.000000 0.000000 – 524356 Timestamp c Req: 1421453220.095464 0.000000 0.000000 – 524356 ReqStart c 173.255.199.52 38213 – 524356 ReqMethod c GET – 524356 […]
我负载testing负载平衡的不同选项,并从Nginx,haproxy和清漆得到的结果很差。 我在Rackspace有一个4GB的负载均衡器,击中4x1GB的应用服务器。 我打了一个名为“/慢”的url,在响应之前故意等待500毫秒。 如果我直接点击应用服务器,它可以处理每秒1600-1800的连接速度。 如果我点击Nginx负载平衡器,它只能处理大约2000个连接。 我希望更接近4×1600 = 6000.下面是我用来testing它的命令。 这是在40个256 MB的实例上并行运行的。 我故意将num_call设置为1,因为我想查看连接性能。 任何高于这个,我开始得到很多错误。 httperf –server 50.56.80.227 –port 1555 –uri /slow –rate 50 –num-call 1 –num-conn 100 –timeout 5 这是我的nginxconfiguration: https : //gist.github.com/1299501 所以,这是奇怪的事情,不pipe我使用nginx,haproxy还是varnish,我都得到了大致相同的结果。 但是,我testing了Rackspace的新型云平衡器,并获得了更好的性能(在7000 / s时performance很好)。 既然nginx和其他的都运行在我设置的实例上,并且rackspace平衡器没有运行,我猜测这个系统有些问题。 我宁愿使用我控制的平衡器,所以我可以添加caching,gzip,ssl和其他东西。 我怎样才能找出瓶颈呢? 有什么我应该调整系统来获得更好的性能? 我需要超过4GB的RAM吗? (在testing中拉姆的使用率不高)。 任何其他的随机想法? 更新:我把平衡器的尺寸调整到了8GB,性能performance更好,达到6000-7000,或者与机架式平衡器相比。 这没有任何意义,因为它之前没有用完RAM。 更新:下面是一个httperf输出的例子,当我重载平衡器(在8GB的版本上,比以前更高,但错误是类似的): https ://gist.github.com/1299628
我正在cachingdynamic生成的页面(PHP-FPM,NGINX),并在他们面前有清漆,这工作得很好。 但是,一旦达到caching超时,我看到这个: 新的客户端请求页面 清漆识别caching超时 客户端等待 清漆从后端获取新的页面 清漆递送新的页面到客户端(并且页面被caching,对于即时得到它的下一个请求) 我想要做的是: 客户端请求页面 清漆识别超时 清漆将旧页面传递给客户端 清漆从后端获取新的页面并将其放入caching 在我的情况下,它不是过时的信息是一个大问题的网站,特别是当我们谈论几分钟内的caching超时。 但是,我不想惩罚用户排队,而是立即提供一些东西。 这在某种程度上可能吗? 为了说明,下面是一个对我的服务器运行攻城战5分钟的示例输出,configuration为caching一分钟: HTTP/1.1,200, 1.97, 12710,/,1,2013-06-24 00:21:06 … HTTP/1.1,200, 1.88, 12710,/,1,2013-06-24 00:21:20 … HTTP/1.1,200, 1.93, 12710,/,1,2013-06-24 00:22:08 … HTTP/1.1,200, 1.89, 12710,/,1,2013-06-24 00:22:22 … HTTP/1.1,200, 1.94, 12710,/,1,2013-06-24 00:23:10 … HTTP/1.1,200, 1.91, 12709,/,1,2013-06-24 00:23:23 … HTTP/1.1,200, 1.93, 12710,/,1,2013-06-24 00:24:12 … 我忽略了几百个运行在0.02左右的请求。 但是,我仍然担心用户需要等待2秒钟才能获得原始的HTML。 我们不能在这里做得更好吗? (我遇到Varnish发送caching […]
如何configurationVarnish以便所有匹配请求的响应都会在客户端的浏览器中caching30天? 我想要做的是让Varnish设置正确的“Expires:”和/或“Cache-Control”设置,这样所有的CSS都被caching了30天,而不pipe后端怎么说客户端的caching能力这些对象。
我有一个缓慢的Web应用程序,我已经放在前面的清漆。 所有的页面都是静态的(对于不同的用户,它们不会有所不同),但是它们需要每5分钟更新一次,以便包含最新的数据。 我有一个简单的脚本( wget –mirror ),每隔15分钟就会抓取整个网站。 每次爬行大约需要5分钟。 抓取的重点是更新Varnishcaching中的每个页面,以便用户永远不必等待页面生成(因为所有页面最近都是由于蜘蛛而生成的)。 时间表如下所示: 00:00:00:caching刷新 00:00:00:蜘蛛开始爬行更新caching与新的页面 00:05:00:蜘蛛完成爬行,所有页面更新,直到00:15:00 来自0:00:00和0:05:00之间的请求可能会触发尚未更新的页面,并且将被迫等待几秒钟以进行响应。 这是不可接受的。 我想要做的是,也许使用一些VCL魔术,总是从蜘蛛向后端发出请求,但仍然将响应存储在caching中。 这样,用户将永远不必等待页面生成,因为没有5分钟的窗口,其中caching的一部分是空的(除了在服务器启动时)。 我该怎么做?
如何读清漆直方图/graphics? 我知道x轴是一个对数标度。 特别: 我看到在y=1e-4附近出现9个“|”或caching命中,每个“|” 参考? 页? 文件? 我在这9个“|”的左边看到了更less的点击,而右边的点击了一些。 那些是什么? 他们需要更长时间(正确)还是更短(左)? 在最上方,左边是1:2 ? 和n = 134 此外,我注意到caching命中总是在caching未命中的左侧,即它们在事物的1e-x侧,而caching未命中在+指数之下。 那有什么意义呢? 那么,如果是的话,那是什么时候? 非常感谢! x轴 1:2, n = 134 hostname # # # # # | # | # | # | # | ### | ### || ### ## ||| ### ## # # ## |||| #### #### ## […]
我有一个系统运行nginx / php-fpm / varnish / wordpress和amazon s3。 现在我已经在设置系统时查看了很多configuration文件,并且在所有这些文件中find了类似这样的内容: /* If the request is for pictures, javascript, css, etc */ if (req.url ~ "\.(jpg|jpeg|png|gif|css|js)$") { /* Remove the cookie and make the request static */ unset req.http.cookie; return (lookup); } 我不明白为什么这样做。 大多数的例子也运行NginX作为一个networking服务器。 现在的问题是,为什么要使用清漆caching来caching这些静态文件。 对我来说,只cachingdynamic文件让php-fpm / mysql不会受到太大的冲击。 我是对的还是我在这里错过了什么? UPDATE 我想根据给出的答案给问题添加一些信息。 如果你有一个dynamic的网站,内容实际上发生了很大的变化,那么查抄就没有意义了。 但是,如果您将WordPress用于静态网站,则可以长时间进行caching。 这就是说,对我来说更重要的是静态的 。 我在不同的caching应用程序和networking服务器应用程序中find了一些testing和基准testing的链接。 Serving […]
我使用的是Varnish 3.0.3(本文最新),或多或less地使用默认安装,使用以下内容进行存储: # # Cache file location VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin # # # Cache file size: in bytes, optionally using k / M / G / T suffix, # # or in percentage of available disk space using the % suffix. VARNISH_STORAGE_SIZE=4000M # # # Backend storage specification VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}" # 大部分可以caching的页面都会有很长的TTL。 我正在使用的网站是巨大的,并有数百万页,不能适应上面列出的存储大小(4 GB)。 设置的问题: 假设整个存储空间已满,高速caching中的任何内容都没有过期(我的TTL是caching中每个项目的两周)。 我假设禁令潜伏者在这里是无用的,因为它只会删除过期的项目,而没有任何过期。 问题: […]