我意识到我可能需要引进专家来评估代码/等,但如果可能的话,我会喜欢一些第一轮的想法/输入;
我在部署到专用32Core / 96GB / SSD服务器之前在网站上运行负载测试。我以前做过一些但只测试CPU / Mem等
我能够为特定用户输入添加指标以映射加载时间。
我做了一个保守的500用户超过10分钟,稳定了10分钟并且下降了10分钟。
CPU显示从未超过45%,内存从未超过8%。
响应时间很短,大约100个用户(250毫秒)然后开始加标到25秒。
奇怪的是,无论我在测试中投入了多少用户(20,50,100,250,500),我都会在5分钟内获得相同的失控峰值。
明确指出(外行清楚)服务器有足够的CPU /内存,也没有被淹没。
所有测试中唯一的一致性是; a)尖峰以5分钟的间隔发生,b)网络带宽同时为TANKS。
我能理解带宽是否飙升,我们是否超过了服务器容量和响应时间;但这是一个直接的关联;带宽槽,响应时间尖峰,带宽上升,响应时间(或多或少)恢复正常。
我们有 a)优化的查询 b)优化表 c)优化的db d)重新调整服务器两次 e)检查核心查询的日志,该查询使用Sphinx确认那些发生在毫秒内。
我们在负载测试中确认特定查询花了1秒钟,显示时间花了2分钟,这似乎是浏览器。
在引进大枪之前,对正确方向的任何想法都会受到高度赞赏。
服务器是CentOS 64位,站点是php / mysql / javascript / sphinx。
答案 0 :(得分:2)
您是否安装了Munin等监控系统?如果你指出这些尖峰每5分钟发生一次,Munin将揭示当这些尖峰发生时,什么资源被窒息。然后你可以根据它进一步调试。
此外,您正在审核哪些日志 - 如果有的话?简单地运行压力测试对于&他们自己。
我还建议reading my answer提出我今天提供的与服务器相关的类似问题。有许多因素需要考虑。让您的服务器保持正常运行然后尖峰应该消失。