Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


In this Discussion

OpenVZ iops can be watched, monitored?
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

OpenVZ iops can be watched, monitored?

postcdpostcd Member
edited May 2017 in Help

Hello,

my aim is to discover if certain OpenVZ container/VPS is hitting its IOPS limit (not IO limit)

   --iopslimit iops

Assigns IOPS limit for a container, in number of input/output operations per second. Value is a number or a literal string unlimited. Value of 0 means
"unlimited". By default a container has no IOPS limit.

there was already a question on this topic, but i think the advises that was posted there (munin, iostat) is not what i am looking for.

munin too complicated and heavy for my tiny OpenVZ VPS.

iostat -xd 1 2 shows utilization on hardware not OVZ VPS

iotop works, but shows IO and in %, not iops/tps

cat /proc/bc/CTID/ioacct

shows:

    read                            4888043520

write 7090393088
dirty 7364214784
cancel 273813504
missed 0
syncs_total 2
fsyncs_total 882
fdatasyncs_total 6978
range_syncs_total 0
syncs_active 0
fsyncs_active 0
fdatasyncs_active 0
range_syncs_active 0
io_pbs 2
fuse_requests 0
fuse_bytes 0

i was curious if io_bps can be compared to IOPS made by the VPS
When i was running "fio" (flexible i/o tester), the io_bps was constantly growing until around 32000, then dropped down, and again growing.
My VPS has 30 IOPS set by vzctl (vzctl set CTID --iopslimit 30) so that value seems related, but it is just a guess. --iolimit i have 5MB/s
When i was running this command:

echo "---Random READ---";sync;echo 3 > /proc/sys/vm/drop_caches 2>/dev/null;fio --bs=4k --size=128m --direct=1 --runtime=10 --rw=randread --numjobs=3 --group_reporting --time_based --name=128m;echo "\n---Random WRITE:---";sync;echo 3 > /proc/sys/vm/drop_caches 2>/dev/null;fio --bs=4k --size=128m --direct=1 --runtime=10 --rw=randwrite --numjobs=3 --group_reporting --time_based --name=128m;

output indicated roughly 30 IOPS reading and roughly 3000 IOPS writing:

READING

Jobs: 3 (f=3): [rrr] [100.0% done] [116KB/0KB/0KB /s] [29/0/0 iops] [eta 00m:00s]

128m: (groupid=0, jobs=3): err= 0: pid=9074: Tue May 30 03:11:01 2017
read : io=1404.0KB, bw=141994B/s, iops=34, runt= 10125msec
bw (KB /s): min= 12, max= 134, per=33.52%, avg=46.25, stdev=24.27

WRITING

Jobs: 3 (f=3): [www] [100.0% done] [0KB/10228KB/0KB /s] [0/2557/0 iops] [eta 00m:00s]

128m: (groupid=0, jobs=3): err= 0: pid=9119: Tue May 30 03:11:11 2017
write: io=122712KB, bw=12268KB/s, iops=3066, runt= 10003msec
...
bw (KB /s): min= 646, max=18405, per=32.55%, avg=3992.96, stdev=2895.79

Is there any better command or tweak that command to show only IOPS?

or what is the way to get the number of the disk operations VPS is doing, i have host node access too, openvz kernel 2.6.32. Thank You

Comments

  • postcdpostcd Member

    but fio is only io tester not io monitor

  • postcdpostcd Member
    edited May 2017

    @time4vps thx, but the linked article just wasted my time. I already know how to set IOPS limit, but not how to monitor current per VPS utilization.
    I can use:

    while true;do sleep 1 && fio --bs=4k --size=1m --direct=1 --runtime=5 --rw=randread --numjobs=3 --group_reporting --name=1m|grep iops|awk '{print $5}' && rm -f 1m.*;done

    and it shows values around 45 iops in my VPS (VPS has --iopslimit set to 30)
    when doing on non limited VPS, iops is around 2000
    (7.2K RPM HDD)

    top value i seen was 2600 so if value returned by fio is 1300, it can mean VPS IOPS is utilized by 50%? If anyone can narrow that, have better/quicker/simpler command for OVZ IOPS, please kindly share. Thx

Sign In or Register to comment.