Difference between revisions of "I/O priorities"

From OpenVZ Virtuozzo Containers Wiki
Jump to: navigation, search
m (change maximum ioprio 8->7)
Line 6: Line 6:
 
vzctl set 101 --ioprio 7 --save
 
vzctl set 101 --ioprio 7 --save
 
</pre>
 
</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 read/write(*) more than VE 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.
 
 
(*) writes are not completely supported at the moment
 

Revision as of 12:24, 23 March 2007

The I/O priorities feature is implemented in OpenVZ since 2.6.18-028stable021 kernel and since vzctl 3.0.16. This feature allows to assign I/O priority to any VE. Priority range is 0-7. The more priority 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 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 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 VE 1 to p1 and I/O prio of VE 2 to p2, and p1 > p2 then VE 1 should do more I/O than VE 2.