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
 
Latest Threads
Replies
0
Views
115
Replies
0
Views
65
Replies
0
Views
57
Replies
1
Views
87

Latest postsNew threads

Latest Hosting OffersNew Reviews

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