Difference between revisions of "I/O priorities"
(initial edition) |
(Corrected a mispelling error, but still there is an important question unanswered, what is HZ?) |
||
(12 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | The I/O priorities feature is implemented in OpenVZ since <tt>2.6.18- | + | The I/O priorities feature is implemented in OpenVZ since kernel <tt>2.6.18-028stab021</tt>, <tt>vzctl 3.0.16</tt>. This feature allows to assign I/O priority to any [[container]]. Priority range is <tt>0-7</tt>. The more priority a container has, the more time for using block devices this container will obtain. This feature is based on CFQ I/O scheduler, so this scheduler should be used for block device in question. Default I/O priority is <tt>4</tt>. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | == Examples == | |
+ | |||
+ | Set the lowest priority: | ||
+ | vzctl set 101 --ioprio 0 --save | ||
+ | |||
+ | Set the highest priority: | ||
+ | vzctl set 101 --ioprio 7 --save | ||
+ | |||
+ | == Details == | ||
+ | |||
+ | The higher the value you use, the more I/O time your container will receive. | ||
+ | |||
+ | The mapping from priority to time is the following: if <tt>0</tt> prio corresponds to time slice <tt>t</tt>, then <tt>7</tt> prio corresponds to time slice <tt>2 * t</tt>. Default time slice value is <tt>HZ/2</tt>. The main criteria for fairness at the moment is that if you set I/O prio of CT 1 to <tt>p1</tt> and I/O prio of CT 2 to <tt>p2</tt>, and <tt>p1 > p2</tt> then CT 1 should do more I/O than CT 2. In simple form the priorities are relative with the higher priority getting more I/O time. | ||
+ | |||
+ | == See also == | ||
+ | * [[I/O limits]] | ||
+ | * [[IO accounting]] | ||
+ | |||
+ | [[Category: Resource management]] | ||
+ | [[Category: HOWTO]] |
Latest revision as of 14:02, 24 April 2016
The I/O priorities feature is implemented in OpenVZ since kernel 2.6.18-028stab021, vzctl 3.0.16. This feature allows to assign I/O priority to any container. Priority range is 0-7. The more priority a container has, the more time for using block devices this container will obtain. This feature is based on CFQ I/O scheduler, so this scheduler should be used for block device in question. Default I/O priority is 4.
Examples[edit]
Set the lowest priority:
vzctl set 101 --ioprio 0 --save
Set the highest priority:
vzctl set 101 --ioprio 7 --save
Details[edit]
The higher the value you use, the more I/O time your container will receive.
The mapping from priority to time is the following: if 0 prio corresponds to time slice t, then 7 prio corresponds to time slice 2 * t. Default time slice value is HZ/2. The main criteria for fairness at the moment is that if you set I/O prio of CT 1 to p1 and I/O prio of CT 2 to p2, and p1 > p2 then CT 1 should do more I/O than CT 2. In simple form the priorities are relative with the higher priority getting more I/O time.