我在服务器上部署了varnish,也做了对应的配置,我想知道经过缓存加速后,性能能提升多少,所以使用了http_load进行测试,使用两个脚本,一个脚本(里面只有一个URL)是访问加速后的页面,一个脚本(里面只有一个URL)是访问未加速的页面,但是经过几轮的测试,发现经过varnish进行缓存加速后,并没有提升性能,开始以为是由于访问静态页面本来就速度很快,所以绝大部分时间都是在传输上,这样的话就算varnish进行了加速,对于整个测试结果依旧没有影响,所以我又把http_load装到了服务器本地上,进行测试,结果仍旧一样,没有性能提升,所以我特想问有此方面经验的人士,能给我一些好的建议,该怎么测试。
下面是我配置的varnish的配置文件:
backend default { .host = "127.0.0.1"; .port = "8080"; .connect_timeout = 10s; .first_byte_timeout = 50s; .between_bytes_timeout = 20s; } sub vcl_recv { if (req.restarts == 0) { if (req.http.x-forwarded-for) { set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip; } else { set req.http.X-Forwarded-For = client.ip; } } if (req.request != "GET" && req.request != "HEAD" && req.request != "PUT" && req.request != "POST" && req.request != "TRACE" && req.request != "OPTIONS" && req.request != "DELETE") { /* Non-RFC2616 or CONNECT which is weird. */ return (pipe); } if (req.request != "GET" && req.request != "HEAD") { /* We only deal with GET and HEAD by default */ return (pass); } # std.log("LOG_DEBUG:req.http.Authorization:["+req.http.Authorzation+"],req.http.Cookie:["+req.http.Cookie+"]"); # if (req.http.Authorization || req.http.Cookie) { # /* Not cacheable by default */ # return (pass); # } if(req.url ~ "\.(jsp|do|action)($|\?)"){ return (pass); }else{ return (lookup); } } sub vcl_pipe { return (pipe); } sub vcl_pass { return (pass); } sub vcl_hash { hash_data(req.url); if (req.http.host) { hash_data(req.http.host); } else { hash_data(server.ip); } return (hash); } sub vcl_hit { return (deliver); } sub vcl_miss { return (fetch); } sub vcl_fetch { #std.log("LOG_DEBUG:the Set-Cookie is "+beresp.http.Set-Cookie); if(beresp.http.Set-Cookie){ return (hit_for_pass); } if(beresp.status == 500 || beresp.status == 501 || beresp.status == 502 || beresp.status == 503 || beresp.status == 504 || beresp.status == 404){ return(restart); } if(req.request == "GET" && req.url ~ "(news\/newsedit\.htm|news\/newsinsert\.htm|tbcardmanage\/doupload\.htm|bizsubject\/uploadcomplete\.htm|bizsubject\/typelogoupload\.htm|terminalcontro\/uploadterminalpic\.htm)$"){ set beresp.ttl = 120 s; #std.log("LOG_DEBUG:enter into expection about upload!"); return (hit_for_pass); } if(req.request == "GET" && req.url ~ "((bfapp|servlet|CrossDomainSSO|services|editor|fckeditor)|(\.subtree$))"){ set beresp.ttl = 120 s; #std.log("LOG_DEBUG:enter into expection about system url!"); return (hit_for_pass); } if(req.request == "GET" && req.url ~ "\.(css|js|html|htm|shtml)$"){ #std.log("LOG_DEBUG:enter into set css|js|html ttl 600S"); set beresp.ttl = 600 s; } if(req.request == "GET" && req.url ~ "\/[a-zA-Z0-9+]$"){ std.log("LOG_DEBUG:enter into set nothing in end url ttl 600s"); set beresp.ttl = 600 s; } if(req.request == "GET" && req.url ~ "\.(gif|jpg|jpeg|bmp|png|tiff|tif|ico|img|bmp|wmf)$"){ set beresp.ttl = 3600 s; } if(req.request == "GET" && req.url ~ "\.(svg|swf|ico|mp3|mp4|m4a|wav|rmvb|avi|wmv)$"){ set beresp.ttl = 10 d; } return (deliver); } sub vcl_deliver { set resp.http.X-Cache-hits = obj.hits; if(obj.hits > 0){ set resp.http.X-Cache = "HIT FROM VARNISH"; }else{ set resp.http.X-Cache = "MISS FROM VARNISH"; } return (deliver); } sub vcl_error { set obj.http.Content-Type = "text/html; charset=utf-8"; set obj.http.Retry-After = "5"; synthetic {" <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>"} + obj.status + " " + obj.response + {"</title> </head> <body> <h1>Error "} + obj.status + " " + obj.response + {"</h1> <p>"} + obj.response + {"</p> <h3>Guru Meditation:</h3> <p>XID: "} + req.xid + {"</p> <hr> <p>Varnish cache server</p> </body> </html> "}; return (deliver); } sub vcl_init { return (ok); } sub vcl_fini { return (ok); }
我想varnish据网上说性能可以提升20-30倍,我却一倍都没有提升,无外乎是配置出错或者测试不对,当然我相信我的配置文件是没有问题的,所以我怀疑是我的测试方案不正确。
相关推荐
对Varnish的分析表明,该软件支持三种缓存模式:malloc模式、file模式和persistent模式。其中,malloc模式为纯内存缓存,无需硬盘IO操作;file模式是将文件映射到内存中,本质与malloc类似,但不支持持久化存储;...
测试报告中进行了不同并发量(500、800、1200、1500、2000并发)下的性能测试,以观察系统在高负载情况下的稳定性与效率。 ### 架构-集群测试 除了单机测试外,还进行了集群环境下的测试。集群测试可以评估在多台...
Varnish和Lighttpd是两个非常重要的开源Web服务器软件,它们在Web性能优化和负载均衡方面发挥着关键作用。Varnish作为一个高性能的HTTP缓存代理,常用于减轻后端服务器的压力,提高网站响应速度;而Lighttpd则是一款...
在压缩包文件"varnish-6.2.0"中,可能包含了Varnish的源代码、编译脚本、配置文件示例、文档和测试案例等。用户可以按照官方提供的安装指南,编译并安装Varnish 6.2.0,然后根据自己的需求配置VCL,将Varnish集成到...
5. **健康检查**:Varnish可以监控后端服务器的健康状态,并在检测到问题时自动将请求重定向到其他健康的服务器,确保服务的连续性。 6. **会话持久化**:通过配置,Varnish可以实现会话持久化,确保来自同一客户端...
Varnish Cache是一款备受赞誉的开源软件,专为提升网站性能而设计,作为一个高性能的反向代理服务器,它在全球范围内广泛应用于各种规模的网站和在线服务。Varnish Cache v4.0.0-beta1是该软件的一个版本,旨在提供...
### Varnish 3.0.5 的安装与配置 ...通过以上步骤,我们可以成功地安装和配置Varnish 3.0.5版本,进一步提升网站的性能和用户体验。需要注意的是,根据实际情况调整缓存策略和其他配置选项以获得最佳效果是非常重要的。
4. **配置Varnish**:为了支持HTTP模式下的bansys,需要对Varnish进行相应的设置。 - 编辑`/etc/varnish/default.vcl`文件,根据具体需求进行配置修改。 5. **重启Varnish服务**:完成配置后,需要重新加载Varnish...
Nginx和Varnish是当前流行的高性能Web服务器和反向代理服务器,经常用于缓存和负载均衡。针对这两个技术的优化补充知识点,主要围绕提升...务必在测试环境中充分测试这些配置,以确保它们不会对现有服务造成负面影响。
总结来说,“laravel-varnishable”是Laravel开发者提升应用性能的一个有力工具,通过简化Varnish的集成过程,使得即使是对Varnish不熟悉的开发者也能轻松利用其优势。了解并掌握这个扩展包的使用,将有助于在项目中...
- **测试用例**:用于验证代码功能和性能,同时也是学习Varnish Cache行为的好资料。 - **构建脚本和配置文件**:帮助用户编译和安装Varnish Cache,以及设置初始的运行环境。 总之,Varnish Cache是Web性能优化的...
最后,配置优化还包括了对Varnish运行环境的搭建。需要安装必要的依赖软件包,如pcre-devel,以及配置Varnish编译和安装的路径。编译Varnish时,会使用configure命令来指定安装路径和编译选项,并通过make命令进行...
这有助于发现并解决潜在问题,确保系统的稳定性和高性能。 4. **Varnish的优势与不足** Varnish以其高性能、快速响应和易于管理著称,但也有一定的局限性。例如,相比Squid,Varnish在高并发时可能消耗更多资源,...
- 持续性能测试,观察性能变化,对比优化前后的效果。 5. **备份与恢复策略**: - 定期备份数据库,以防止数据丢失。 - 测试恢复过程,确保在需要时能够快速恢复服务。 6. **安全实践**: - 定期更新...
由国内著名技术社区联合推荐的2012年IT技术力作:《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等...