磁盘始终繁忙 101%

磁盘始终繁忙 101%

我有一个 OpenNMS Linux 服务器,其磁盘性能很差。该机器是VPC内的EC2。在顶上显示:

在此输入图像描述

奥托普显示:

在此输入图像描述

如何减少 IO 数量并降低磁盘利用率?

伊奥尼斯回复:

ubuntu@ip-10-12-251-11:~$ sudo ionice -c3 -p $(pidof opennms)
ionice: option requires an argument -- 'p'

ionice - sets or gets process io scheduling class and priority.

Usage:
  ionice [OPTION] -p PID [PID...]
  ionice [OPTION] COMMAND

Options:
  -c, --class <class>   scheduling class name or number
                           0: none, 1: realtime, 2: best-effort, 3: idle
  -n, --classdata <num> scheduling class data
                           0-7 for realtime and best-effort classes
  -p, --pid=PID         view or modify already running process
  -t, --ignore          ignore failures
  -V, --version         output version information and exit
  -h, --help            display this help and exit

答案1

尝试rrenice德班列表包裹。例如,这将 及其后代的优先级设置opennms为尽可能低的设置:

sudo rrenice 19 opennms

或者不可用,请使用 plain renice

sudo renice -n 19 -p $(pidof opennms)

对于磁盘占用程序,请使用ionice

ionice -c3 -p $(pidof opennms)

顺便提一句:该opennms过程不应该那么消耗资源。有些东西要么有问题,要么挂在那里。

答案2

这些数字显示了写绑定过程,因此缓存调整OpenNMS 建议的没有帮助。

然而,如果你牺牲了,这可能会有所帮助耐用性。如果您的 OpenNMS 挂掉了,数据库是否提前几秒显示它挂掉也并不重要。 (这与电子邮件服务器不同,其中客户端依赖于至少一次语义)。不过,您可能会丢失崩溃前所做的配置更改;也许只是确保您注意到崩溃,并在进行配置更改后检查系统是否仍然在线。尝试synchronous_commit = off。默认情况下,持久性损失的窗口仅为 600 毫秒。

如果synchronous_commit = off达到了预期的效果,可能还有一种不牺牲耐用性的替代方案。看commit_delay。在我看来,OpenNMS 也可以很好地解决这个问题。您需要将 a 设置commit_delay为观察到的 IOPS 的倒数。那么我认为<poller-configuration threads=如果 CPU(和 RAM)利用率仍然很低,你可以增加。

相关内容