每当我运行du -sh或rsync时,我的磁盘利用率都是100%。这会导致mysql缓慢的查询出现,这通常会导致我的网站崩溃。
任何将这些操作运行到命令的提示或技巧,所以磁盘访问的优先级仍然保留在Mysql和其他核心服务上?
发布于 2012-03-08 13:39:02
是的,对于ionice:
ionice -c 3 <pid>
其中<pid>是要减慢的进程的进程ID。这将将该程序的I/O类设置为idle,这意味着在没有其他人要求的情况下,它将获得IO时间。
发布于 2012-03-08 21:57:15
您是否有一个启动抢占式内核?可以打开各种内核抢占设置,以避免锁定,例如在磁盘负载很重的情况下(可能会以服务器应用程序的性能为代价)。这取决于您的发行版默认打开了多少。
例如,在Debian的backports中,有64,其中包括PREEMPT_RT实时修补程序集。这个补丁集可能会帮助更多,但它可能有自己的问题.
运行类似的代码来查看设置了什么:
# grep PREEMPT /boot/config-2.6.32-5-amd64 <-- in case of a Debian stable amd64 kernel结果:
# CONFIG_TREE_PREEMPT_RCU is not set
CONFIG_PREEMPT_NOTIFIERS=y
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set你可能想把它设置成更具侵略性的东西。看看内核源代码附带的内核文档,看看什么对您有用。并检查您的发行版提供了哪些内核,这些内核可能具有更积极的抢占设置。这些可以用于桌面使用和/或实时使用。但这并不意味着它不能在服务器上工作。只要它们是标准发行版的一部分,它们就应该得到通常的安全修复。
https://serverfault.com/questions/367631
复制相似问题