运行 http API 的服务器 CPU 使用率达到 100% 是否安全?

运行 http API 的服务器 CPU 使用率达到 100% 是否安全?

我有一个被调用很多次的 API(基于 php,并连接到单独的 mysql 数据库服务器),调用它的软件可以等待很长时间才能得到结果,并且在获得当前调用的结果之前不会调用该 API,响应时间在这里也不重要。

API 本身也不太关心执行时间。

所以我的问题是,当服务器(ubuntu 16.04 服务器,Apache,php5)负载达到 100% 时,API 是否仍能正常运行,只是增加了处理时间和延迟?

或者 RAM 中是否会堆积某种垃圾,或者某些东西最终会杀死服务器,我需要重新启动它?

答案1

如果您不介意在这些时间内增加延迟来满足请求,那么这应该没问题。但是,您应该更具体地了解您的 CPU 使用率。

如果您查看输出,top您将看到多个 CPU 使用率字段,包括用户、系统、Nice、空闲、IOwait、硬 IRQ、软 IRQ 和 Steal。您还可以使用扩展 CPU1来查看每个核心的使用情况。这似乎与您的情况没有直接关系,但在询问使用情况时,它更像是一个提示。

CPU 使用率不会影响 RAM 垃圾收集或碎片,并且如果经过适当调整,高负载运行服务器不会导致其变得不稳定(这里的默认值几乎总是没问题 - 这就是它们是默认值的原因)。

运行接近最大负载的服务器比为了让数字看起来漂亮而给它大量资源却什么都不做更划算。当需要非常低的延迟时,这种情况开始改变,但改变不大。

相关内容