Web Polygraph (WebAxe-4) 测试反向代理缓存服务器
由于工作中时常遇到web server/cache的开发工作。一旦做出一些改动,或者添加一些功能,除了功能测试(比如设计一些测试用例)、查看debug信息之外,还需要对整个系统做全面的测试。反向代理服务器和缓存,往往承载着大量的并发请求,对于稳定性的要求很高。这就需要一款比较好的benchmark来进行测试。
Web Polygraph是几年前专门为缓存服务器、代理服务器等设计的测试工具。它具有比较完整的测试用例(比如专门为正向代理和反向代理的测试用例)。另外,它还有一套专门的description language (PGL),可以让测试者来定制测试用例。它的测试结果的呈现也是比较强大的,可以在测试的时候指定log路径,并对数据进行分析和整理,然后通过web页面的方式呈现。
因为是第一次使用,对于polygraph的语言和配置不是太熟。安装好以后,就直接用了两个虚拟机来跑反向代理的测试用例(WebAxe-4)。第一个虚拟机上面跑了nginx,同时作为反向代理和缓存服务器来使用。第二个虚拟机上面跑polygraph-server和polygraph-client。为什么同时有server和client呢?因为polygraph会模拟用户(client)和源站(server)的行为,polygraph-client会生成一些特定的请求,通过proxy发送给源站,而模拟源站的polygraph-server则会根据配置里面指定的对象大小,生成响应回复给client。client和server一般用同一个配置文件,但是它们用到配置文件的不同部分。另外,配置文件里面有可能会通过#include来调用其他的配置文件,这个时候就需要指定--cfg_dirs参数,否则就会报错。正常情况下,server、client和proxy应该在不同的服务器上,这里为了方便举例,把server和client放在一起。
具体的操作如下:
1. 把原来的配置文件 WebAxe-4.pg复制了一份到WebAxe-4-test.pg,然后修改里面的参数
TheBench = {
client_side = {
addr_space = [ 'lo::10.101.1-10.1-250/16' ]; //ip范围可以根据peak request rate再作调整
hosts = [ '192.168.31.129' ]; //虚拟机2的IP
};
server_side = {
hosts = [ '192.168.31.129:9090' ]; //虚拟机2的IP
};
proxy_side = {
hosts = [ '172.16.101.32:8080' ]; //虚拟机1的alias IP
};
};
//以下部分可以按照具体情况来配置
TheBench.peak_req_rate = 500/sec;
rate FillRate = 50%*TheBench.peak_req_rate;
size ProxyCacheSize = 500MB;
size WSS = 1GB;
2. 根据上面的配置,client side会自动生成多个agent(假象用户),每个agent会根据情况绑定1个或多个IP,这些IP就是在addr_space里面指定的(其实就是拿这些ip绑定一些alias NIC)。我又给proxy side配置了一个alias,绑定在虚拟机1的eth0(即192.168.31.128的NIC)上。注意:虽然这两个虚拟机的eth0是在同一个网段,因为使用了alias NIC,需要对alias IP做路由配置,这样10.101.0.0/16网段的agent才能和172.16.101.32建立TCP连接。具体的做法,就是使用route命令来生成相应的路由规则。
3. 在虚拟机1上的nginx(即被测试的反向代理缓存服务器)上面配置,注意要把upstream xxx {}里面的server(即源站)配成虚拟机2的IP;proxy_cache_path命令的参数max_size也需要和polygraph的size ProxyCacheSize一样。配置好了以后,启动nginx。
4. 启动polygraph-server程序,指定--config参数,--cfg_dirs参数和--log参数。如果需要看更多的信息的话,可以设定--verb_lvl参数。
5. 启动polygraph-client程序,跟polygraph-server基本一样。
6. 正常的话,应该可以看到一些output信息。可以参考http://www.web-polygraph.org/docs/reference/output/console.html。把结果生成html页面,只需要使用polygraph-reporter命令。
Web Polygraph (WebAxe-4) 测试反向代理缓存服务器相关推荐
- squid 3 反向代理 缓存服务器 安装配置精华指南 by lbj
squid-3.0.STABLE21 安装配置 by lbj 作用:作为反向代理/缓存服务器 系统:redhat linux 企业版 5.4 linux 要有gcc编译器,使用squid-3.0.ST ...
- nginx反向代理缓存服务器构建
博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 代理服务可简单的分为正向代理和反向代理: ...
- 【推荐】如何用 Nginx 构建反向代理缓存服务器?
作者:一盏烛光,贤牛特邀工程师. 防伪码:曾经沧海难为水,除却巫山不是云. 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对 Internet 的连接请求(如×××/NAT), ...
- NGINX做反向代理缓存服务器原理
代理服务可以简单的分为正向代理和反向代理 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标web服务器的HTTP请求先发送到 ...
- nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录
在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能. 废话不多说,下面对测试环境下的nginx反向代理+缓存开启+url重写+负载均衡(带健康探测) ...
- 转-架构高性能网站秘笈(四)——反向代理缓存
转自CSDN博客,u010425776,http://m.blog.csdn.net/u010425776/article/details/51096468 什么是反向代理? 在介绍"反向代 ...
- NGINX反向代理缓存
NGINX反向代理缓存 四月 13, 2011 网上好多文章都是多台服务器 做缓存 然后反向代理到后台服务器 不过作为一个穷人哪来那么多服务器 所以我们要让NGINX既做WEB服务器也做缓存.. 这样 ...
- 解决nginx反向代理缓存不起作用的问题
解决nginx反向代理缓存不起作用的问题 参考文章: (1)解决nginx反向代理缓存不起作用的问题 (2)https://www.cnblogs.com/dudu/p/4597351.html 备忘 ...
- nginx配置反向代理缓存
说明 最近运维一个网站里面含有不经常变化的小图片,而每次请求都需要调用file接口获取不太合适.所以就想利用nginx的反向代理缓存来减轻服务接口的请求压力. 工作原理 Nginx反向代理缓存,当客户 ...
- Nginx缓存以及反向代理缓存设置
expires指令 (1).expires [time] server {listen 90;server_name localhost;location /czj {root /home;expir ...
最新文章
- 自定义 coding.net 静态网站域名
- EF调用存储过程实现分页
- [转]浅谈CMD和win powershell的区别
- 【学习记录】网络层——IP数据报(格式与分片)
- 作者:陈卫, 男, 微软亚洲研究院高级研究员, 清华大学客座教授。
- 园子装修 | 打造自己的直男审美博客园(施工中,持续更新)
- CSP202006-2 稀疏向量(100分)【map】
- JS getElementsByClassName
- 基于Elasticsearch 7.0 的从零开始构建知识图谱-win10测试
- 当前系统缺少NTFS格式转换器(convert.exe)
- Android recovery分区表
- 【杂记】01:王者荣耀,再见?
- Protel99SE添加泪滴焊盘
- 1小时、1天、1个月、一年的时间戳
- 图算法在风控场景的应用
- Open3DCGAL DSM(数字表面模型)
- 微信自定义分享在pc正常手机端不正常问题
- python地铁路线可视化
- SparkCore案例练习:统计广告ID
- Android工程中imei和oaid的获取