所以我得到了一个运行着 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 使用情况:
发生了一些不寻常的事情php-fpm.bin,有人知道我会是什么样的人吗?
当我输入ps aux
SSH 时可以看到以下信息:
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 作为交换区域,第二个分区为其余部分。看看这是否有帮助。