今天我用 htop 检查了我们的服务器状态,看到了一些令人难以置信的事情。
有人可以回答我以下问题吗?
- 为什么有这么多mysqld进程?
- 他们为什么跑了这么长时间?
在此服务器上,我们有一个 plesk 系统,其中运行了 3 个 PHP Symfony 项目。只有 1 个项目有负载。
该服务器有 12 个核心和 126GB RAM(专用)
答案1
这很正常。
您可能有max_connections = 151
,这是某些版本中的默认设置。这意味着 MySQL 最多可能正在运行 151 个线程/进程。它们可能只是待在那里,什么也不做,等待需要某些操作时被唤醒。
该设置可以降低,但除非您的 RAM 不足,否则没有必要这样做。但我对此表示严重怀疑,因为您的 RAM 非常大,为 128GB。
每个进程的“时间”是指进程启动的时间。这也是不必担心的事情。
有些操作系统只显示一行mysqld
,有些操作系统则显示每个线程/进程一行。这种差异不是问题。
htop
后面有一个 ,Load average
后面跟着 3 个数字?(就像 一样top
)有哪些值?“1”或“2”可能表示系统空闲程度合理。“12”或更多可能表示某些查询受 CPU 限制。
在我看来,MySQL 的“slowlog”对于追踪恶意查询很有用。