我意识到我可能需要请一位专家来评估代码/等等,但如果可能的话,我希望能有一些第一轮的想法/输入;
在部署到专用的32Core/96 to /SSD服务器之前,我在一个网站上运行负载测试。我以前做过一些工作,但只是测试CPU/Mem等
我能够为特定的用户输入添加一个指标来映射加载时间。
我对一个保守的500用户进行了10分钟的测试,停留了10分钟,然后又下降了10分钟。
CPU显示不会超过45%,内存不会超过8%。
大约100个用户(250ms)的响应时间是正常的,然后开始达到25秒的峰值。
奇怪的是,无论我让多少用户参与测试(20,50,100,250,500),我都会得到相同的失控峰值,并且间隔5分钟。
这一点很明显(外行很清楚)服务器有足够的CPU/内存,也不会不堪重负。
所有测试中唯一的一致性是: a)峰值以5分钟为间隔发生,b)网络带宽同时下降。
我可以理解是否带宽达到峰值,我们的服务器容量和响应时间也下降了;但这是直接相关的;带宽下降,响应时间峰值,带宽攀升,响应时间恢复(或多或少)正常。
我们有a)优化的查询b)优化的表c)优化的数据库d)调整服务器大小两次e)检查核心查询的日志,它使用Sphinx来确认这些操作在毫秒内发生。
正如我们在负载测试中确认的那样,它似乎是浏览器,特定的查询花了1秒,显示时间花了2分钟。
在引入大炮之前,任何关于正确方向的想法都会受到高度赞赏。
服务器为CentOS 64位,站点为php/mysql/javascript/sphinx。
发布于 2013-11-09 09:04:26
您是否安装了诸如Munin之类的监控系统?如果像您所说的那样每5分钟发生一次这些峰值,Munin将显示这些峰值发生时哪些资源被阻塞&然后您可以基于此进一步调试。
另外,如果有的话,您正在查看哪些日志?简单地运行压力测试本身并不会起到多大作用。
我还建议用reading my answer来回答我今天提供的一个与服务器相关的类似问题。要考虑的因素有很多。准备好您的服务器&这样峰值就会消失。
https://stackoverflow.com/questions/19871099
复制相似问题