I/O优先级
Process.ionice(ioclass=None, value=None) - 原文
获取或设置进程的I/O良好度(优先级)。如果没有提供参数,它作为一个 get,在 Linux 上返回一个 (ioclass, value)
元组,在 Windows 上返回一个 ioclass 整数。如果提供了 ioclass ,它将作为一个集合。 在这种情况下,只能在 Linux 上指定一个附加值(value),以便进一步提高或降低 I/O 优先级。下面是与平台相关的 ioclass 值。
Linux (参阅 ioprio_get手册):
IOPRIO_CLASS_RT
: (高) 该进程每次都首先访问磁盘。 小心使用它,因为它会使整个系统挨饿。 可以指定额外的优先级,范围从0
(最高)到7
(最低)。IOPRIO_CLASS_BE
: (一般) 未设置特定 I/O 优先级的任何进程的默认值。 附加优先级范围从0
(最高)到7
(最低)。IOPRIO_CLASS_IDLE
: (低) 在没有其他人需要磁盘时获取 I/O 时间。 不接受任何附加价值。IOPRIO_CLASS_NONE
: 先前未设置优先级时返回。
Windows:
IOPRIO_HIGH
: 最高优先级.IOPRIO_NORMAL
: 默认优先级.IOPRIO_LOW
: 低优先级.IOPRIO_VERYLOW
: 最低优先级.
下面是一个关于如何根据使用的平台设置最高 I/O 优先级的示例:
>>> import psutil
>>> p = psutil.Process()
>>> if psutil.LINUX:
... p.ionice(psutil.IOPRIO_CLASS_RT, value=7)
... else:
... p.ionice(psutil.IOPRIO_HIGH)
...
>>> p.ionice() # get
pionice(ioclass=<IOPriority.IOPRIO_CLASS_RT: 1>, value=7)
可用平台: Linux, Windows Vista+ 。
5.6.2 版本中修改: Windows 接受新的 IOPRIO_*
常量,包括新的 IOPRIO_HIGH
。