您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
nginx-集群性能测试
发布时间:2017-11-23 12:33:35编辑:雪饮阅读()
(1)在php集群根目录中创建测试脚本bench.php:
可以直接把同目录的callback.php的内容载入然后修改修改即可。
在vim中普通模式下按”:r callback.php”即可载入文件内容到当前文件的光标位置。
建立并修改后的bench.php见附件
测试:
http://192.168.0.22/bench.php
经过多次测试发现有时候数据来自mysql,有时候数据来自memcached则bench.php测试脚本的目标达成。
(2)ab测试:
ab -c 3000 -n 600000 http://192.168.0.22/bench.php
观察nginx服务器端结果:
http://192.168.0.22/status
ab测试一会儿后,观察后端服务中请求速度变快了,因为一会儿功夫就会建立好多memcached的缓存了。
测试的过程中同时可以登陆mysql查看mysql连接数:
登录mysql
使用命令”show processlist”
显示哪些线程正在运行
即连接数 包含连接的客户端的ip或域名
注意:该命令可能你无权执行,可以临时使用如下方案解决
修改mysql登录设置
vi /etc/my.cnf
在[mysqld]段中加入 skip-grant-tables
保存之后重启mysql服务
service mysqld restart
另有说法:如果有 SUPER 权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的 MySQL 帐户运行的线程。
在ab测试结果中发现失败的请求挺多60万的总请求,50多万的请求都失败了。但服务器端中观察并发一直稳定在3000左右,这是为什么呢?
这是因为ab测试工具对请求失败的算法是这样的:
ab对同一个请求的多次请求时会以第一次请求得到的内容为参照,如果后面该请求得到的结果和第一次的结果不同则认为是失败的请求。而按照我们的算法,第一次请求由于memcached中无数据所以从mysql中获取数据,但为了区别数据到底是从memcached获取的还是mysql中获取的,我们在mysql获取数据后会在输出时多输出“~~ from mysql”,这样就造成测试结果中失败请求非常多的现象。
测试结果还受网卡限制,一般网卡都是百M的,在正式服务器中是万M网卡。
关键字词:nginx,集群,性能,测试
上一篇:nginx-服务器集群搭建
下一篇:nginx-商城url重写实战