Quản lý Disk I/O cho VM/CT trên Virtuozzo
PCS cho phép cấu hình độ ưu tiên về I/O giữa các Container và VM. Có thể thay đổi giá trị ưu tiên về I/O bằng tham số “ioprio.”
#prlctl set MyVM –ioprio 6
#prlctl set 101 –ioprio 6
Tham số –ioprio có giá trị từ 0 đến 7, mặc định ioprio là 4 cho tất cả VM và Container. VM và Container nào có ioprio cao hơn thì được ưu tiên hơn I/O từ hệ thống. Kiểm tra giá trị ioprio hiện tại trên VM hoặc Container.
Container :
# grep IOPRIO /etc/vz/conf/101.conf
IOPRIO=”6″
VM :
# prlctl list –info | grep ioprio
cpu 2 VT-x accl=high mode=32 cpuunits=1000 ioprio=6 iolimit=0
Giới hạn băng thông I/O cho VM và CT.
Tham số –iolimit : Giới hạn bandwidth mà VM/CT có thể sử dụng tối đa khi tranfer data trên mạng, nếu không giới hạnVM/CT có thể sử dụng băng thông đĩa cứng tối đa từ hệ thống.
VD: Giới hạn bandwidth tranfer là 10MB/s
# prlctl set MyVM –iolimit 10
Set up iolimit: 10485760
The VM has been successfully configured.
Mặc định limit bandwidth ở mức MB, nhưng có thể limit ở các mức khác như gigabyte ( VD : 1G ), kilobyte ( VD: 1K ), bytes ( 1B ).
Để kiểm tra mức iolimit hiện tại của VM hoặc Container.
# prlctl list MyVM -o iolimit
110485760
# prlctl list 101 -o iolimit
IOLIMIT
10485760
Xóa iolimit của VM hoặc Container.
# prlctl set MyVM –iolimit 0
Set up iolimit: 0
The VM has been successfully configured.
# prlctl set 101 –iolimit 0
Set up iolimit: 0
Saved parameters for Container 101
IOPS : Input/Ouput Per Second . Giới hạn IOPS tối đa mà 1 VM/CT có thể sử dụng. Để cấu hình iops limit ta dùng tham số –iopslimit .
Giới hạn 100 iops cho CT 101 và myvm
# prlctl set 101 –iopslimit 100
# prlctl set MyVM –iopslimit 100
Để kiểm tra lại iops đã giới hạn ta dùng
# pstat –A
ST IOUSED IOWAIT IO IOPS NAME
OK 0.00 0.00 0.0/—KB/s 0.0/100/s MyVM
OK 0.00 0.00 0.0/—KB/s 0.0/100/s 101
Để xóa iops limit ta dùng
# prlctl set 101 –iopslimit 0
# prlctl set MyVM –iopslimit 0
Thống kê số lượng Disk I/O hiện tại.
Để thống kê số lượng I/O của các VM/CT ta sử dụng command pstat với option –a.
# pstat -a
7:18pm, up 1 day, 1:29, 2 users, load average: 0.00, 0.01, 0.00
CTNum 1, procs 127: R 2, S 125, D 0, Z 0, T 0, X 0
CPU [ OK ]: CTs 0%, CT0 1%, user 0%, sys 2%, idle 98%, lat(ms) 12/0
Mem [ OK ]: total 1560MB, free 627MB/402MB (low/high), lat(ms) 0/0
ZONE0 (DMA): size 16MB, act 0MB, inact 0MB, free 11MB (0/0/0)
ZONE1 (Normal): size 880MB, act 76MB, inact 104MB, free 616MB (3/4/5)
ZONE2 (HighMem): size 684MB, act 116MB, inact 153MB, free 402MB (0/1/1)
Mem lat (ms): A0 0, K0 0, U0 0, K1 0, U1 0
Slab pages: 65MB/65MB (ino 43MB, de 9MB, bh 2MB, pb 0MB)
Swap [ OK ]: tot 2502MB, free 2502MB, in 0.000MB/s, out 0.000MB/s
Net [ OK ]: tot: in 0.005MB/s 45pkt/s, out 0.000MB/s 1pkt/s
lo: in 0.000MB/s 0pkt/s, out 0.000MB/s 0pkt/s
eth0: in 0.005MB/s 45pkt/s, out 0.000MB/s 1pkt/s
br0: in 0.000MB/s 0pkt/s, out 0.000MB/s 0pkt/s
br1: in 0.000MB/s 0pkt/s, out 0.000MB/s 0pkt/s
Disks [ OK ]: in 0.000MB/s, out 0.000MB/s
ST IOUSED IOWAIT IO IOPS NAME
OK 0.00 0.00 0.0/—KB/s 0.0/–/s 101
OK 0.00 0.00 0.0/—KB/s 0.0/–/s MyVM
IOUSED% : phần trăm thời gian disk mà các vm/ct đã sử dụng.
IOWAIT% : thời gian chờ các i/o trong hàng đợi hoàn thành để tiếp tục thực hiện i/o các tiếp theo.
IO : I/O có thể áp dụng ở mức bytes, kilobytes, megabytes, hoặc gigabytes theo giây.
IOPS : mức IOPS đang bị giới hạn trên vm/ct theo giây.
Cấu hình Limit Disk I/O Container trong quá trình migrations và backups.
. Để giới hạn cho tất cả các container trên hệ thống chỉ cần edit file /etc/vz/vz.conf.
# VZ Tools IO limit
# To enable – uncomment next line, check the value – there should not be CT with the
same ID
# VZ_TOOLS_BCID=2
# Uncomment next line to specify required disk IO bandwidth in Bps (10485760 – 10MBps)
# VZ_TOOLS_IOLIMIT=10485760
Bỏ dấu thăng trước dòng VZ_TOOLS_BCID để mở chức năng limit
Bỏ dấu thăng trước dòng VZ_TOOLS_IOLIMIT để set giá trị limit cho các ct.