【发布时间】:2013-11-09 00:58:19
【问题描述】:
我意识到我可能需要聘请专家来评估代码/等,但如果可能的话,我会喜欢一些第一轮的想法/输入;
在部署到专用 32Core/96GB/SSD 服务器之前,我正在网站上运行负载测试。我之前做过一些,但只是测试 CPU/Mem 等
我能够为特定用户输入添加一个指标来映射加载时间。
我在 10 分钟内完成了向保守的 500 名用户的增长,稳定了 10 分钟,下降了 10 分钟。
CPU 显示永远不会超过 45%,内存永远不会超过 8%。
响应时间可以达到大约 100 个用户(250 毫秒),然后开始飙升至 25 秒。
奇怪的是,无论我在测试中有多少用户(20、50、100、250、500),我都会在 5 分钟的间隔内得到相同的失控峰值。
很明显(外行很清楚)服务器有足够的 CPU/内存,两者都不会不堪重负。
所有测试中唯一的一致性是; a) 峰值每隔 5 分钟发生一次,b) 网络带宽同时出现 TANKS。
我可以理解带宽是否激增,我们是否超出了服务器容量和响应时间是否也缩短了;但这是直接相关;带宽罐、响应时间峰值、带宽攀升、响应时间(或多或少)恢复正常。
我们有 a) 优化查询 b) 优化表 c) 优化的数据库 d) 两次调整服务器大小 e) 检查核心查询的日志,它使用 Sphinx 来确认这些在毫秒内发生。
我们在负载测试期间确认特定查询需要 1 秒,显示时间需要 2 分钟,这似乎是浏览器。
任何关于正确方向的想法在引入大炮之前都会受到高度赞赏。
服务器是 CentOS 64 位,站点是 php/mysql/javascript/sphinx。
【问题讨论】:
-
当您说“它似乎是浏览器”时,您是否检查了 Web 服务器日志中的 time_taken 字段并且它不包含峰值?