Difference between revisions of "I/O priorities"

From OpenVZ Virtuozzo Containers Wiki
Jump to: navigation, search
(Corrected a mispelling error, but still there is an important question unanswered, what is HZ?)
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The I/O priorities feature is implemented in OpenVZ since kernel <tt>2.6.18-028stable021</tt>, <tt>vzctl 3.0.16</tt>. This feature allows to assign I/O priority to any [[VE]]. Priority range is <tt>0-7</tt>. The more priority a [[VE]] has, the more time for using block devices this [[VE]] will obtain. Note, that this feature is implemented on base of CFQ I/O scheduler, so this scheduler should be used for block device in question. Default I/O priority is <tt>4</tt>. Examples of using:
+
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>.
<pre>
+
 
vzctl set 101 --ioprio 0 --save
+
== Examples ==
</pre>
+
 
<pre>
+
Set the lowest priority:
vzctl set 101 --ioprio 7 --save
+
vzctl set 101 --ioprio 0 --save
</pre>
+
 
The mapping from priority to time is the following: if <tt>0</tt> prio corresponds time slice <tt>t</tt>, than <tt>8</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 VE 1 to <tt>p1</tt> and I/O prio of VE 2 to <tt>p2</tt>, and <tt>p1 > p2</tt> then VE 1 should do more I/O than VE 2.
+
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 ==
 
== See also ==
 
+
* [[I/O limits]]
 
* [[IO accounting]]
 
* [[IO accounting]]
  
 
[[Category: Resource management]]
 
[[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.

See also[edit]