Answers:
看一看ionice
。来自man ionice
:
该程序设置或获取程序的io调度类和优先级。如果未提供任何参数或仅给出-p,ionice将查询该进程的当前io调度类和优先级。
要du
使用最低优先级的“空闲” I / O类运行,可以执行以下操作:
ionice -c 3 du -s
这应该du
避免干扰其他进程的I / O。您可能还需要考虑对程序进行重新设置以降低其CPU优先级,如下所示:
renice -n 19 "$duPid"
您也可以在初始化时同时执行这两项操作:
nice -n 19 ionice -c 3 du
renice
而不是nice
。要du
同时从ionice和nice 入手,可以链接两个程序:nice -n19 ionice -c3 du
。
nice
本身也会影响I / O调度程序的优先级,而不仅仅是CPU。
nice
仅会影响CPU的美观程度(这可能间接影响I / O,但不应影响I / O调度程序的优先级)。您在哪里看到这种行为?是否记录在某处?
nice
,并且只讨论了CPU基本时间量。您知道这本书在哪里吗?我很想读权威人士透露,国家,它没有提到man nice
,man 2 nice
,man 2 setpriority
,info nice
或info 'nice invocation'
据我所知,这是因为一些去到相当多的细节,如何在陌生的nice
电话工程及其作用。
如果单个目录中有大量文件,这可能是I / O尖峰的原因,因为许多文件系统不能很好地处理单个目录中的大文件树。将其拆分为更多的子目录可以为您提供帮助。如果单个目录中的文件超过10k,这会引起问题,则应将其拆分。
至于跟踪磁盘使用情况,您首先可以看一下df
,如果那里的使用价值没有迅速上升,那么子目录也没有,您可以du
完全跳过。
另一个选择是磁盘配额系统,如果文件系统支持的话,该配额系统会持续跟踪使用情况。
df
不会很有效-问题是我们确实有清理脚本,因此我们可能看不到任何变化,但是却错过了自动作业的早期警告,因为该作业正在积极占用磁盘空间。我们使用zabbix监视整个磁盘的使用情况,但是了解运行情况有些困难的各个目录非常重要。
除此以外,ionice
您还可以尝试使磁盘访问更加高效。这可以通过执行尝试
find /du/root -printf ""
find /du/root -perm 777 -printf ""
首先(也许ionice
也可以)。如果文件太多,它将不起作用。多少是多少取决于可用RAM的数量。