做测评的动机
由于业务使用的正向代理服务器出现性能瓶颈,所以想对各种正向代理软件做一个性能评测,作为参考。
遇到的问题
服务器使用的代理软件是squid。在高并发环境下,出现500错误,并发量在200~300之间。
推测问题的原因
高并发情况下,大量tcp链接处于timewait状态,导致tcp链接资源用完(fd耗尽)
临时解决方法
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse //开启tcp复用
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle //开启tcp快速回收
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout //将timewait的时间改为30秒,默认是120
测评对象
squid——nginx——haproxy——varnish
简单的安装、测试、查看相关文档后,发现nginx、haproxy一般是作为反向代理,做正向代理性能与squid差距较大,无测试意义
varnish无法做正向代理,因为所有的后端服务器都要在配置文件的设置好。作为网站加速缓存的性能强于squid,也可作为反向代理
最终测试方案
横向对比——squid vs nginx
纵向对比——squid2.6.STABLE22 vs squid2.7.STABLE9 vs squid3.0
优化前后对比——squid2.6.STABLE22更改tcp设置前后
取不同类型网页性能对比——baidu(小文件)、taobao(大文件)、urllist(随机文件)
高并发性能对比——100并发、500、1000、2000
测试指标
响应时间(average respose time),处理速度(transaction rate),失败率(fail rate)
测试工具
siege-3.0.0 http://www.joedog.org/pub/siege/
webbench
http_load cacheflow公司的测试工具——cfmc Jmeter+Jprofiler,jmeter+VisualVM //待研究
主要使用siege和webbench做高并发强压测试
测试方案实施
安装两台虚拟机组成局域网
virtual PC A安装待测代理软件,可访问外网
virtual PC B安装测试工具,不可访问外网
由于办公环境强制安全策略的限制,虚拟机无法组成局域网,单台虚拟机也无法访问外网
测试计划流产。。。
留下此文,记录测试流程,备用