学习平台用了2年半了,访问量160万人次,现在考虑升级一下
最近有测试了一下服务器 以前用load测试工具也做过应用的性能测试,但对应用服务器性能的总体感觉不太全面 对应用服务器,自己总结有如下公式(一个人5秒点击一次) 人数/5 = 每秒点击数 = 服务器需要的worker平均数/平均响应时间(s) = 测试场景迭代数*场景中设定的点击数/测试时间 我总结的确定一个服务器的负载能力的步骤: 1.场景设定比较切合实际的读写操作比例,大操作/小操作比例 2.worker先设大,迭代数慢慢加,可用2分法,2000-4000-3000-3500-3250,增加或减少测试,找到平均响应达到不可容忍(比如4秒)的临界值。测试worker必须大于每次测试的“需要worker(及时)”——排除因worker设置不够,测的不准 3.算得机器每秒可承受点击率 4.得到机器最大荷载人数=测试场景迭代数*场景中设定的点击数/测试时间*5 这时的状态即为服务器能接受的点击率极限:此机器设置worker=平均秒点击率*平均响应时间 在测试时会受到tcp底层协议限制 tcp连接结束时,服务器发送“断开”消息,进入TIME_WAIT,默认时间freebsd60秒,windows240秒?,solaris240秒 用一台机器测试,多个连接,如果多到一定程度,在连接服务器就拒绝了。与time wait时间、tomcat响应时间、设定单机worker数有关 真实环境,点击率1000/s及60000/m,time wait时间设60基本上刚好符合,点击率再高,硬件能承受,那么就被time wait限制了 测试时尽量使用更多的机器 经过多次测试sun T1000服务器可承受的点击率:600次/秒(查询操作,更新操作待测,花时间啊) 且发现一台硬件服务器开多个软件应用服务器(tomcat)性能并不能提升 |
|