0

我意识到我可能需要聘请专家来评估代码/等,但如果可能的话,我会喜欢一些第一轮的想法/输入;

在部署到专用的 32Core/96GB/SSD 服务器之前,我正在网站上运行负载测试。我之前做过一些,但只是测试 CPU/Mem 等

我能够为特定用户输入添加一个指标来映射加载时间。

我在 10 分钟内将一个保守的 500 名用户提升到了 500 名用户,稳定了 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。

4

1 回答 1

2

您是否安装了诸如Munin之类的监控系统?如果按照您的说明,这些峰值每 5 分钟发生一次,Munin 将显示当这些峰值发生时哪些资源被阻塞,然后您可以基于此进一步调试。

此外,您正在查看哪些日志(如果有)?简单地运行压力测试本身并不会起到太大作用。

我还建议阅读我对今天提供的类似服务器相关问题的回答。有很多因素需要考虑。让您的服务器正常运行,然后尖峰应该消失。

于 2013-11-09T01:04:25.500 回答