How to check Disk performance (I/O Speed) of your VPS server?

Mihai B.

Well-known member
Registered
Joined
Apr 19, 2016
Messages
243
Points
18
I want to check how fast my SSD-based VPS is? how many MB/s it is acceptable?
Any advice?
 

VirtuBox

Well-known member
Registered
Joined
May 3, 2016
Messages
1,622
Points
83
Hello Mihai,

The easiest program to test thr I/O speed will vpsbench, because you can run it in a single command :

Code:
[COLOR=#333333]bash <(wget --no-check-certificate -O - https://raw.github.com/mgutz/vpsbench/master/vpsbench)[/COLOR]
But there are errors with some virtualization for the disks, and if you want an advanced test for SSD, try with fio :

Code:
apt-get install fio

fio --name=rand-write --ioengine=libaio --iodepth=32 --rw=randwrite --invalidate=1 --bsrange=4k:4k,4k:4k --size=512m --runtime=120 --time_based --do_verify=1 --direct=1 --group_reporting --numjobs=1
You have to adapt the argument --numjobs depending on the number of processing units (CPU)

You will have a complete result :
Code:
fio-2.2.10
Starting 1 process
rand-write: Laying out IO file(s) (1 file(s) / 512MB)
Jobs: 1 (f=1): [w(1)] [100.0% done] [0KB/185.9MB/0KB /s] [0/47.6K/0 iops] [eta 00m:00s]
rand-write: (groupid=0, jobs=1): err= 0: pid=11825: Wed Aug  3 12:48:48 2016
  write: io=23328MB, bw=199068KB/s, iops=49767, runt=120001msec
    slat (usec): min=2, max=2124, avg= 7.75, stdev= 4.38
    clat (usec): min=125, max=13878, avg=633.29, stdev=288.82
     lat (usec): min=128, max=13886, avg=641.35, stdev=288.93
    clat percentiles (usec):
     |  1.00th=[  524],  5.00th=[  548], 10.00th=[  564], 20.00th=[  572],
     | 30.00th=[  588], 40.00th=[  596], 50.00th=[  604], 60.00th=[  604],
     | 70.00th=[  620], 80.00th=[  628], 90.00th=[  652], 95.00th=[  700],
     | 99.00th=[ 1928], 99.50th=[ 2448], 99.90th=[ 4192], 99.95th=[ 6240],
     | 99.99th=[10048]
    bw (KB  /s): min=154376, max=213216, per=100.00%, avg=199254.78, stdev=12407.12
    lat (usec) : 250=0.02%, 500=0.36%, 750=95.71%, 1000=2.28%
    lat (msec) : 2=0.65%, 4=0.88%, 10=0.10%, 20=0.01%
  cpu          : usr=13.06%, sys=46.57%, ctx=2135027, majf=0, minf=10
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=100.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.1%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=5972090/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=32


Run status group 0 (all jobs):
  WRITE: io=23328MB, aggrb=199068KB/s, minb=199068KB/s, maxb=199068KB/s, mint=120001msec, maxt=120001msec


Disk stats (read/write):
  vda: ios=0/5960836, merge=0/708, ticks=0/3639376, in_queue=3639304, util=99.98%

And the line to find is :

Code:
write: io=23328MB, bw=199068KB/s, iops=49767, runt=120001msec
In this case the disk performance is 49767 iops.
A good result because I have run the test on a server with 3x300GB SSD in RAID 0 :yahoo:
 

Mihai B.

Well-known member
Registered
Joined
Apr 19, 2016
Messages
243
Points
18
When I ran the command

Code:
root@server1 [~]# bash <(wget --no-check-certificate -O - https://raw.github.com/mgutz/vpsbench/master/vpsbench)
--2016-08-03 08:08:24--  https://raw.github.com/mgutz/vpsbench/master/vpsbench
Resolving raw.github.com... 151.101.48.133
Connecting to raw.github.com|151.101.48.133|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://raw.githubusercontent.com/mgutz/vpsbench/master/vpsbench [following]
--2016-08-03 08:08:24--  https://raw.githubusercontent.com/mgutz/vpsbench/master/vpsbench
Resolving raw.githubusercontent.com... 151.101.44.133
Connecting to raw.githubusercontent.com|151.101.44.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4898 (4.8K) [text/plain]
Saving to: STDOUT”

100%[======================================>] 4,898       --.-K/s   in 0s

2016-08-03 08:08:24 (53.4 MB/s) - written to stdout [4898/4898]

Benching I/O ... OK
Benching CPU. Bzipping 25MB file ... OK
Benching inbound network. Downloading 100MB file ... OK
Share at https://github.com/mgutz/vpsbench/wiki/VPS-Hosts


_08/03/2016 - VMPLAN - DATACENTER - OS - AUTHOR_
```
CPU model:  AMD Opteron(tm) Processor 6376
Number of cores: 8
CPU frequency:  2299.949 MHz
Total amount of RAM: 2879 MB
Total amount of swap: 3071 MB
System uptime:   5 days, 8:25,
I/O speed:  53.6 MB/s
Bzip 25MB: /dev/fd/63: line 29: /usr/bin/time: No such file or directory
Download 100MB file: 8.89MB/s
I could not run

Code:
apt-get install fio

Had to replace by

Code:
yum install fio

Code:
root@server1 [~]# fio --name=rand-write --ioengine=libaio --iodepth=32 --rw=randwrite --invalidate=1 --bsrange=4k:4k,4k:4k --size=512m --runtime=120 --time_base d 
--do_verify=1 --direct=1 --group_reporting --numjobs=8 rand-write: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=32
...
fio-2.1.10
Starting 8 processes
rand-write: Laying out IO file(s) (1 file(s) / 512MB)
rand-write: Laying out IO file(s) (1 file(s) / 512MB)
rand-write: Laying out IO file(s) (1 file(s) / 512MB)
rand-write: Laying out IO file(s) (1 file(s) / 512MB)
rand-write: Laying out IO file(s) (1 file(s) / 512MB)
rand-write: Laying out IO file(s) (1 file(s) / 512MB)
rand-write: Laying out IO file(s) (1 file(s) / 512MB)
Jobs: 7 (f=7): [_wwwwwww] [50.4% done] [0KB/374KB/0KB /s] [0/93/0 iops] [eta 01m:59s]
rand-write: (groupid=0, jobs=8): err= 0: pid=51798: Wed Aug  3 08:19:04 2016
  write: io=157932KB, bw=1309.9KB/s, iops=327, runt=120576msec
    slat (usec): min=8, max=6312.1K, avg=6420.37, stdev=69225.24
    clat (usec): min=409, max=10580K, avg=774647.08, stdev=769568.09
     lat (usec): min=857, max=10580K, avg=781072.20, stdev=773263.57
    clat percentiles (msec):
     |  1.00th=[   32],  5.00th=[  126], 10.00th=[  237], 20.00th=[  363],
     | 30.00th=[  474], 40.00th=[  562], 50.00th=[  652], 60.00th=[  750],
     | 70.00th=[  865], 80.00th=[ 1012], 90.00th=[ 1270], 95.00th=[ 1598],
     | 99.00th=[ 3458], 99.50th=[ 6652], 99.90th=[10552], 99.95th=[10552],
     | 99.99th=[10552]
    bw (KB  /s): min=    3, max= 1411, per=14.58%, avg=190.85, stdev=122.35
    lat (usec) : 500=0.01%, 750=0.01%, 1000=0.01%
    lat (msec) : 2=0.02%, 4=0.02%, 10=0.15%, 20=0.33%, 50=1.69%
    lat (msec) : 100=2.09%, 250=6.79%, 500=21.99%, 750=26.43%, 1000=20.08%
    lat (msec) : 2000=17.16%, >=2000=3.23%
  cpu          : usr=0.04%, sys=0.36%, ctx=5754, majf=0, minf=232
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.2%, 16=0.3%, 32=99.4%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.1%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=39483/d=0, short=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=32

Run status group 0 (all jobs):
  WRITE: io=157932KB, aggrb=1309KB/s, minb=1309KB/s, maxb=1309KB/s, mint=120576msec, maxt=120576msec

Disk stats (read/write):
  sda: ios=7/40380, merge=2/4961, ticks=2340/15254384, in_queue=15343949, util=88.09%
Is that good?
 

VirtuBox

Well-known member
Registered
Joined
May 3, 2016
Messages
1,622
Points
83
For the I/O speed it's not very good. 53.6MB/s, it's SSD for sure, but it's pretty slow for SSD.
And AMD Opteron Processor ...
If you are paying more than $10, yes you should look for another hosting provider.



Code:
 fio --name=rand-write --ioengine=libaio --iodepth=32 --rw=randwrite --invalidate=1 --bsrange=4k:4k,4k:4k --size=512m --runtime=120 --time_based --do_verify=1 --direct=1 --group_reporting --numjobs=2
rand-write: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=32
...
fio-2.1.11
Starting 2 processes
rand-write: Laying out IO file(s) (1 file(s) / 512MB)
rand-write: Laying out IO file(s) (1 file(s) / 512MB)
Jobs: 2 (f=2): [w(2)] [100.0% done] [0KB/226.3MB/0KB /s] [0/57.1K/0 iops] [eta 00m:00s]
rand-write: (groupid=0, jobs=2): err= 0: pid=1433: Wed Aug  3 22:47:46 2016
  write: io=26636MB, bw=227288KB/s, iops=56822, runt=120001msec
    slat (usec): min=1, max=17367, avg= 4.59, stdev=29.03
    clat (usec): min=42, max=310312, avg=1120.37, stdev=9689.69
     lat (usec): min=56, max=310342, avg=1125.12, stdev=9690.26
    clat percentiles (usec):
     |  1.00th=[  113],  5.00th=[  171], 10.00th=[  219], 20.00th=[  310],
     | 30.00th=[  398], 40.00th=[  490], 50.00th=[  580], 60.00th=[  668],
     | 70.00th=[  764], 80.00th=[  884], 90.00th=[ 1032], 95.00th=[ 1080],
     | 99.00th=[ 1192], 99.50th=[ 1400], 99.90th=[201728], 99.95th=[201728],
     | 99.99th=[232448]
    bw (KB  /s): min=  546, max=187952, per=50.09%, avg=113845.22, stdev=32888.58
    lat (usec) : 50=0.01%, 100=0.52%, 250=13.05%, 500=27.52%, 750=27.33%
    lat (usec) : 1000=19.12%
    lat (msec) : 2=12.05%, 4=0.06%, 10=0.03%, 20=0.01%, 50=0.01%
    lat (msec) : 100=0.03%, 250=0.28%, 500=0.01%
  cpu          : usr=5.75%, sys=17.35%, ctx=2121485, majf=0, minf=19
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=100.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.1%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=6818704/d=0, short=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=32


Run status group 0 (all jobs):
  WRITE: io=26636MB, aggrb=227288KB/s, minb=227288KB/s, maxb=227288KB/s, mint=120001msec, maxt=120001msec
This is a test done tonight on my VPS with a 240GB SSD without RAID

IOPS = 56822
 

Sponsors

Tag Cloud

You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an alternative browser.

Top