Google Cloud VM CPU 使用率中这些 99+% 的峰值是什么?

Google Cloud VM CPU 使用率中这些 99+% 的峰值是什么?

所以我得到了一个运行着 woocommerce 商店的 Google Cloud VM。它运行良好,但现在我第二次遇到这个问题。VM 的CPU使用率突然超过 99%很长一段时间。在此期间,该网站基本上处于离线状态。

当我停止虚拟机然后重新启动它时,它会恢复正常的 CPU 使用率,即<1%大多数时候和1 - 10%某些时期。

另外,当我使用sudo kill其进程 ID时.php-fpm.bin,它可以在几个小时内解决问题,但随后它会.php-fpm.bin在不同的 PID 下再次开始运行。

另外,当我使用killall.php-fpm.bin 时,网站完全瘫痪了。

这是一个大事件这很快就会变得非常糟糕,而且我是服务器方面的新手。

任何帮助其根本原因是非常非常感谢!

- 编辑 -

top以下是使用SSH 上的“ ”显示的 CPU 使用情况:

ssh 上的结果顶部

发生了一些不寻常的事情php-fpm.bin,有人知道我会是什么样的人吗?

当我输入ps auxSSH 时可以看到以下信息:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
daemon   10048 99.9  0.9 286860 71564 ?        R    13:13  83:15 php-fpm: pool wordpress 

如果您需要任何其他监控统计数据,请告诉我您需要知道的内容,我会为您查找。

答案1

警告:我也不是一个服务器/系统管理员,但今年早些时候不得不深入研究。

我在运行 node.js 进程时遇到过类似的性能问题。可能存在与您看到的情况类似的问题。就我而言,根据我尝试的更改,它似乎与达到最大页面限制有关。

这些是我执行的有助于解决问题的配置更改:

在 /etc/security/limits.d/custom.conf 中

root soft nofile 1000000
root hard nofile 1000000
* soft nofile 1000000
* hard nofile 1000000

在 /etc/sysctl.d/99-sysctl.conf 中

fs.file-max = 1000000
fs.nr_open = 1000000
net.nf_conntrack_max = 1048576

要更新正在运行的进程:

sudo sysctl -w fs.file-max=1000000
sudo sysctl -w fs.nr_open=1000000
sudo sysctl -w net.nf_conntrack_max=1048576

以 root 身份:

ulimit -n 1000000

根据管理流程的不同,您的里程可能会有所不同。

这里有一些关于 sysctl 进一步调整的文档,其中一些我计划研究和实施:https://easyengine.io/tutorials/linux/sysctl-conf/

答案2

@luissimo 此服务器没有交换空间(参见顶部标题),因此无法交换进程。分配一个磁盘(可能至少 200Gb)。您有 8Gb 内存。因此使用 fdisk 将磁盘分成两部分,假设第一个分区为 16Gb 作为交换区域,第二个分区为其余部分。看看这是否有帮助。

相关内容