为什么 EC2 服务器上的多个 Ruby 进程会导致 100% 的 CPU 使用率?

彭博社

我有一个 Rails 应用程序,大部分时间 CPU 利用率为 100%。我无法弄清楚为什么服务器上有这么多负载。我正在使用带有默认配置的 Puma Web 服务器,并且正在使用吸盘打孔gem运行多个后台作业有 7 个文件使用了 5 个工人的吸盘冲压作业:

include SuckerPunch::Job 
workers 5

我运行了top -i查询,发现服务器上运行了以下进程。我可以在服务器上看到多个 Ruby 命令。有人能告诉我这是否是服务器上的正常行为,或者是否有问题?

“top”命令的输出

托德·A·雅各布斯

一些减少资源争用的方法

您的用户空间负载很高(约 48%),因此您可能希望减少 Web 应用程序中的工作线程数量、增加实例上可用的 CPU 数量、迁移到具有更好并发性的 Ruby 版本以及真正的多核支持(例如 Rubinius 或 JRuby),或这些选项的某种组合。根据您的代码实际执行的操作,您可能还需要重新构建应用程序以从应用程序服务器卸载昂贵的 I/O。

此外,您的窃取时间相当长 (~41%),因此您的 EC2 实例可能过载。简单地将您的应用程序移动到负载较少的实例可能会释放足够的资源以减少应用程序等待时间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么不带“ Thread.sleep”的“ while(true)”在Linux上导致100%的CPU使用率,而在Windows上却没有?

检索Linux上单个进程的CPU使用率和内存使用率?

为什么从无限循环切换到TimerTask会导致CPU使用率下降?

调试JBoss 100%CPU使用率

lpop为什么会增加Redis CPU使用率?

如何确定哪些函数和sql过程导致主机服务器上的cpu使用率较高

为什么Application Insights Performance Counter Collection导致CPU使用率高

并行性会导致100%CPU使用率吗?

为什么无限循环不会使CPU使用率达到100

为什么我的并行任务代码无法达到100%的CPU使用率?

Postgres是否在EC2实例上使用100%CPU?为什么?怎么修?

为什么Iceweasel中的Stackoverflow会导致Xorg的CPU使用率过高?

为什么USB 3.0端口会导致CPU使用率过高?

最高输出:CPU使用率> 100%

进程的CPU使用率实际上意味着什么

为什么top所报告的CPU使用率超过100%?

插入笔记本电脑后,为什么CPU使用率达到100%?

流星节点进程CPU使用率接近100%

WinAPI:在WM_PAINT中省略BeginPaint和EndPaint会导致100%CPU使用率

为什么不同的100%cpu负载会导致cpu上的温度不同?

Windows10:什么是“服务CPU使用率”?

Windows Vista上的CPU使用率固定为100%

运行应用程序时,为什么Eclipse CPU使用率会增加?

CPU使用率激增至100%

HPC群集上的并行作业会导致CPU使用率波动

Ubuntu 19.10 CPU 使用率 100%

Windows 10 上的 Ubuntu 具有 100% CPU 使用率和“init”进程

无法在 AWS EC2 实例上模拟 100% CPU 使用率

jvmtop CPU 使用率 >100%