我最近设置了一个新的 Droplet(最基本的),并使用带有 pm2 的非常轻量级的 express 服务器运行 react 应用程序(服务器已运行 16 小时,CPU 使用率为 0%,内存为 90mb)。
我启动了服务器,没有问题,CPU 大约为 3%,我正在测试网站、加载视频等。我把它放了一夜,当我加载统计数据时,它显示 droplet 在过去 10 小时左右的 CPU 使用率为 100%,我可以看到峰值在几分钟内从 3% 上升到 100%。
请注意,我的网站没有任何流量,也没有域名,因此没有使用。事实上,带宽一直处于 0mb/s。
我刚刚重启了 pm2 服务器,CPU 似乎又开始下降了。为什么 droplet 在没有使用的情况下会无缘无故地跳到 100% CPU 使用率?
答案1
似乎更新节点解决了这个问题。我的 droplet 上的节点落后了 5v。更新后,服务器运行了几个小时,没有出现问题
编辑:运行一段时间后,它仍然会随机飙升。似乎是 sshd 命令导致了这个问题,我还没有找到解决办法
编辑:原因:似乎是节点获取函数导致了问题。删除此请求并直接从 UI 执行(不调用后端 URL)似乎可以解决 CPU 问题。将请求传输回 UI 时,节点代码中可能存在泄漏
答案2
我遇到了同样的问题,现在我找到了解决方案,我希望它对你有用。实际上,有人正在对我的网站进行暴力攻击,那么为什么我的网站瘫痪了,图表显示 CPU 使用率为 100%。
首先,检查哪个应用程序使用率高,因此输入命令“顶部“它将显示实时 CPU 使用率。就我而言,PHP-fpm 的使用率为 95%。
现在您必须检查您的 Nginx 日志文件。”sudo tail -f /var/log/nginx/access.log“它将显示错误或不良网关访问详细信息...现在您必须复制重复多次的 IP 地址并阻止它。
您可以使用此命令阻止 IP“iptables -I 输入 -s 35.186.156.199 -j 删除“
我希望这个问题能够得到解决。