Difference between revisions of "I/O priorities"

From OpenVZ Virtuozzo Containers Wiki
Jump to: navigation, search
(VE->CT)
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-028stable021</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 of using:
<pre>
+
 
vzctl set 101 --ioprio 0 --save
+
vzctl set 101 --ioprio 0 --save
</pre>
+
 
<pre>
+
vzctl set 101 --ioprio 7 --save
vzctl set 101 --ioprio 7 --save
+
 
</pre>
+
The mapping from priority to time is the following: if <tt>0</tt> prio corresponds to 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 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.
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.
 
  
 
== See also ==
 
== See also ==

Revision as of 08:29, 12 February 2009

The I/O priorities feature is implemented in OpenVZ since kernel 2.6.18-028stable021, 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 of using:

vzctl set 101 --ioprio 0 --save
vzctl set 101 --ioprio 7 --save

The mapping from priority to time is the following: if 0 prio corresponds to time slice t, than 8 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.

See also