【问题标题】:Memory / CPU Usage on Website Results网站结果上的内存/CPU 使用率
【发布时间】: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 字段并且它不包含峰值?

标签: php mysql sphinx


【解决方案1】:

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

另外,您正在查看哪些日志(如果有)?简单地运行压力测试本身并没有多大作用。

我还建议reading my answer 解决我今天提供的类似服务器相关问题。有很多因素需要考虑。让您的服务器运转起来,然后尖峰就会消失。

【讨论】:

  • 我确实在观察负载测试峰值的同时查看了 top -ci。我刚刚安装了 NewRelic,所以我可以准确识别。还将主机切换到 RackSpace,因为他们说他们将分析/运行负载测试并确定代码/查询或服务器问题的精确行。现在检查您的链接答案,谢谢!
  • 顺便说一句,感谢您提供指向其他答案的链接。事实上,我们从三台服务器开始,使用 RS、mysql、app、php(我认为)进行负载平衡。我在看 NewRelic 时也是一个问题;这是我们最初在社交引擎框架上构建的网站,其中大部分内容已被删除。然而,他们的许多“engine4_core”查询疯狂地占用资源。因此,本周我们的步骤是最终确定将 SE 的其余部分排除在外。再次感谢!
猜你喜欢
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-25
  • 1970-01-01
  • 2014-05-07
  • 2011-09-11
  • 2022-07-26
相关资源
最近更新 更多