VPS benchmark

A fooldali hirdetes hozzaszolasait olvasgatva,
gondoltam en is megporgetem porosodo VPS-eimet.

Tobbek kozott itt van par VPS-em:
Hetzner.de, Nemetorszag, CX10 (~2100 HUF/ho)
Az oldallal ellentetben nekem regebbi elofizetesem van, igy a gep is gagyibb:
20GB HDD, 512MB RAM, 1000Mbit/s sebesseg, havi 2TB limit.
CPU: amd64, 6811 Bogomips:)

mhosting.hu, Magyarorszag, (~1670 HUF/ho)
20GB SSD, 1024MB RAM, 100Mbit/s sebesseg, nincs havi korlat
CPU: amd64, 4399 Bogomips:)

online.net, Franciaorszag, dedikalt fizikai szerver (~2350 HUF/ho)
500GB HDD, 2048MB RAM, 200Mbit/s sebesseg, nincs havi korlat
CPU: amd64, 1.6GHz Via Nano U2250, 3192 Bogomips:)

Sebesseget wget-tel mertem, cpu-t md5sum-mal, diszket dd-vel.
Telepiteni nem kellett semmit se.

A teszt nagyon egyszeru letoltottem az ubuntu 15.10 dvd iso-t
mindegyik gepre, majd md5-ot szamoltam az isora, majd
egy gepen inditottam egy teszt http szervert, amirol a masik ket
gep lehuzta az iso-t (sebessegteszt).

Annyi a trukk, hogy a python http szervert ketszer kellett elinditani kulonbozo porton, hogy egyszerre ket klienst ki tudjon szolgalni:)

Eleg is a bevezetobol, ime a teszt:

Ez egy benchmark a VPS-eim kozott

ftp.fsn.hu -> mhosting.hu:
wget ftp://ftp.fsn.hu/pub/CDROM-Images/ubuntu/wily/ubuntu-15.10-desktop-amd6…
(11.5 MB/s) - ‘ubuntu-15.10-desktop-amd64.iso’ saved [1178386432]

ftp.fsn.hu -> hetzner.de:
(3.31 MB/s) - `ubuntu-15.10-desktop-amd64.iso' saved [1178386432]

ftp.fsn.hu -> online.net:
wget ftp://ftp.fsn.hu/pub/CDROM-Images/ubuntu/wily/ubuntu-15.10-desktop-amd6…
(4.47 MB/s) - ‘ubuntu-15.10-desktop-amd64.iso’ saved [1178386432]

(Az alabbi tesztek 2x ssh-zva az alabbi parancsok kiadva:
ssh-1$ python -m SimpleHTTPServer 8000
ssh-2$ python -m SimpleHTTPServer 8001)
online.net -> mhosting.hu, hetzner.de
hetzner.de (1m37.481s): (11.5 MB/s) - [1178386432/1123.8 MB]
mhosting.hu (1m35.971s): (11.7 MB/s) - [1178386432/1123.8 MB]
osszeadva: 23.24MB/s ~ 185.90 Mbit/s

mhosting.hu -> online.net, hetzner.de:
online.net (2m33.522s): (7.33 MB/s) - [1178386432/1123.8 MB]
hetzner.de (3m13.464s): (5.82 MB/s) - [1178386432/1123.8 MB]
osszeadva: 13.13MB/s ~ 105.03 Mbit/s

hetzner.de -> online.net, mhosting.hu:
mhosting.hu (4m6.678s): (4.57 MB/s) - [1178386432/1123.8 MB]
online.net (2m30.743s): (7.47 MB/s) - [1178386432/1123.8 MB]
osszeadva: 12.01MB/s ~ 96.08 Mbit/s

mhosting.hu:
$ time md5sum ubuntu-15.10-desktop-amd64.iso
ece816e12f97018fa3d4974b5fd27337 ubuntu-15.10-desktop-amd64.iso
real 0m6.220s
user 0m4.703s
sys 0m0.912s

hetzner.de:
$ time md5sum ubuntu-15.10-desktop-amd64.iso
ece816e12f97018fa3d4974b5fd27337 ubuntu-15.10-desktop-amd64.iso
real 0m19.319s
user 0m2.812s
sys 0m1.488s

online.net:
$ time md5sum ubuntu-15.10-desktop-amd64.iso
ece816e12f97018fa3d4974b5fd27337 ubuntu-15.10-desktop-amd64.iso
real 0m4.804s
user 0m4.240s
sys 0m0.516s

-----

mhosting.hu:
$ time dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
1073741824 bytes (1.1 GB) copied, 2.09599 s, 512 MB/s
real 0m2.137s

hetzner.de:
$ time dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
1073741824 bytes (1.1 GB) copied, 18.5948 s, 57.7 MB/s
real 0m18.632s

online.net:
$ time dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
1073741824 bytes (1.1 GB) copied, 10.2839 s, 104 MB/s
real 0m10.356s

Samsung laptop:
$ time dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
1073741824 bájt (1,1 GB) másolva, 11,5842 mp, 92,7 MB/s
real 0m11.616s

Konkluzio

Mindharom szerver egy arkategoria. Fix ip mindegyikhez jar.

Hetzner-tol meg kell valni jovore, tobbszor belassult letoltes kozben (meg kellett ismetelni a tesztet).
Elvileg meg nem vagyok lekorlatozva (1.4TB-ot forgalmaztam a honapban eddig), de siralmas a sebessege.

Az mhosting.hu veszettgyors diszkje van. Igazabol a 100mbit-et tudja.
Ahol a magyar szerver lenyeg (akarmilyen okbol) oda nyugodt szivvel tehetem.

Legpozitivabb meglepetes az online.net. Hat ez veszettjo gep, dedikalt.
Igazabol egy kis gagyi processzora van, ami labdaba se rug a mostani processzorok mellett, de VPS szinten mas szolgaltatok erre a szintre korlatozzak be a cpu-t.
Garantalt 200Mbit-je van, es ezt ezzel a cpu-val ki is lehet hajtani.
500GB tarhely pedig igazi kuriozum manapsag ebben az arkategoriaban.

Hozzászólások

Az mhosting eseteben azt hiszem, az a trukk, hogy a nullas dd szenne van optimalizalva a storage cuccban, ha meg mindig azt a sw-t hasznaljak, amit akkor, amikor meg ott dolgoztam. Erdemes lenne latni valami dd if=/dev/mem of=test.img jellegu tesztet is...
--
Blog | @hron84
Üzemeltető macik

A /dev/mem mar nagyon regota nem olvashato (2010-es Debian Lenny volt talan az utolso, ami meg engedte), bovebben:
http://www.forensicswiki.org/wiki/Tools:Memory_Imaging#Linux

Es most hirtelen nem is tudom, hogy hogyan kellene a memoriat fajlba dumpolni. (modprobe pmem sikeres, de nincs /dev/pmem fajl. nd_pmem module be van toltve, de nem tudom, hogyan lehetne olvasni).

/dev/urandom -mal viszont toltam egy tesztet (bar ez inkabb CPU hatarolt):

mhosting.hu$ time dd if=/dev/urandom of=test.img bs=64k count=16k conv=fdatasync
1073741824 bytes (1.1 GB) copied, 113.684 s, 9.4 MB/s
real 1m53.724s

online.net$ time dd if=/dev/urandom of=test.img bs=64k count=16k conv=fdatasync
1073741824 bytes (1.1 GB) copied, 172.306 s, 6.2 MB/s
real 2m52.311s

hetzner.de$ time dd if=/dev/urandom of=test.img bs=64k count=16k conv=fdatasync
1073741824 bytes (1.1 GB) copied, 123.567 s, 8.7 MB/s
real 2m3.648s

(/dev/random vs. /dev/urandom temaban itt egy jo cikk:
http://www.2uo.de/myths-about-urandom/ )

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

Jo lehet a /proc/kmem is, vagy barmi olyan cucc, ami memoriabol jon, es randomabb. A /dev/urandommal az a baj, hogy bar az mindenfele szamot behazudik randomnak, de ilyen mennyisegekben az output eloallitasa eleg lassu, azt direkt nem mondtam. Ezert keresgeltem vmi olyasmit, ami memoriabol jon, nem zero vagy egyes, es tobb, mint 1k a tartalma.
--
Blog | @hron84
Üzemeltető macik

/proc/kmem, /dev/kmem, /dev/mem nincs. /dev/mem-et kulon kernelparameterbe lehet beforgatni (CONFIG_STRICT_DEVMEM=y).

En nagyon reg nem hasznaltam /dev/mem-et (vagy /proc/kmem-et), igy fel se tunt, hogy mar nem elerheto ez alapban.

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

Igy gondolod? (nem tetszik, hogy a fio-t telepiteni kell kulon):


mhoszting.hu$ time fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75
test: (g=0): rw=randrw, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=64
fio-2.1.3
Starting 1 process
test: Laying out IO file(s) (1 file(s) / 4096MB)
Jobs: 1 (f=1): [m] [100.0% done] [64365KB/21330KB/0KB /s] [16.1K/5332/0 iops] [eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=21167: Mon Nov 30 21:19:34 2015
read : io=3071.7MB, bw=69091KB/s, iops=17272, runt= 45525msec
write: io=1024.4MB, bw=23040KB/s, iops=5760, runt= 45525msec
cpu : usr=9.94%, sys=36.17%, ctx=17524, majf=0, minf=22
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.0%, 64=0.1%, >=64=0.0%
issued : total=r=786347/w=262229/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
READ: io=3071.7MB, aggrb=69091KB/s, minb=69091KB/s, maxb=69091KB/s, mint=45525msec, maxt=45525msec
WRITE: io=1024.4MB, aggrb=23040KB/s, minb=23040KB/s, maxb=23040KB/s, mint=45525msec, maxt=45525msec

Disk stats (read/write):
vda: ios=792786/262492, merge=6316/2848, ticks=2200656/716600, in_queue=748200, util=64.75%

real 1m4.017s
user 0m6.378s
sys 0m21.813s

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

az md5sum tesztet mennyire befolyasolja a disk speed? vagy tmpfs/ramfs-re tetted az isot?

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Elegge. Hetznernel nagyon nagy az iowait (40-60%), online.net-nel 20% az iowait, masodik futtatasnal viszont 99% a cpu kihasznaltsag.
Az mhosting.hu-nal lenyegeben nincs iowait (akarhanyszor futtatom), viszont a cpu csak 80%-ig megy fel.

ram-ba nem lehet betenni, mert az iso 1.1GB, hetzner memoria 512MB, mhosting.hu pedig 1024MB. Nem fer bele.
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

valamit en erthetek felre:

mhoszting$ time dd if=/dev/zero of=sparse.img bs=1k count=1 seek=4096
1024 bytes (1.0 kB) copied, 0.00370049 s, 277 kB/s
real 0m0.025s

mhoszting$ time dd if=/dev/zero of=sparse.img bs=1k count=1 seek=40960
1024 bytes (1.0 kB) copied, 0.00130321 s, 786 kB/s
real 0m0.017s

mhoszting$ time dd if=/dev/zero of=sparse.img bs=1k count=1 seek=409600
1024 bytes (1.0 kB) copied, 0.00118689 s, 863 kB/s
real 0m0.012s

mhoszting$ time dd if=/dev/zero of=sparse.img bs=1k count=1 seek=4096000
1024 bytes (1.0 kB) copied, 0.00108375 s, 945 kB/s
real 0m0.005s

Ha esetleg konkret parancsot irnal, akkor le tudnam futtatni.

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....


mhoszting$ time dd if=/dev/zero of=sparse.img bs=1k count=1 seek=4096
1024 bytes (1.0 kB) copied, 0.000377113 s, 2.7 MB/s
real 0m0.002s

mhoszting$ ls -lh
-rw-rw-r-- 1 fuszulyka fuszulyka 4.1M Dec 1 12:33 sparse.img

mhoszting$ time dd if=/dev/zero of=sparse.img bs=1k count=1 seek=40960
1024 bytes (1.0 kB) copied, 0.000350902 s, 2.9 MB/s
real 0m0.002s

mhoszting$ ls -lh
-rw-rw-r-- 1 fuszulyka fuszulyka 41M Dec 1 12:33 sparse.img

mhoszting$ time dd if=/dev/zero of=sparse.img bs=1k count=1 seek=409600
1024 bytes (1.0 kB) copied, 0.000441735 s, 2.3 MB/s
real 0m0.002s

mhoszting$ ls -lh
-rw-rw-r-- 1 fuszulyka fuszulyka 401M Dec 1 12:33 sparse.img

mhoszting$ time dd if=/dev/zero of=sparse.img bs=1k count=1 seek=4096000
1024 bytes (1.0 kB) copied, 0.00038658 s, 2.6 MB/s
real 0m0.002s

mhoszting$ ls -lh
-rw-rw-r-- 1 fuszulyka fuszulyka 4.0G Dec 1 12:33 sparse.img

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

Na, most ezeket már tudod tesztelni md5sum-mal. Itt nem a dd írási teljesítményét akartuk ugye tesztelni, hanem az md5sum aktuális felolvasási sebességét.

A sparse fájlnál az a lényeg, hogy a dd-vel csak nagyon kevés adatot (1 egységet) íratunk ki ténylegesen, a többit csak kb. "behazudjuk" a rendszernek. Az, hogy ez hazugság az abból is látszik, hogy a df parancs kimenetében nem fogsz mínusz 4 GB tárhelyet látni, legfeljebb - ha elég figyelmes vagy - pár kB-os csökkenést. Ez azért van, mert a sparse fájl ténylegesen nem foglal el ennyi helyet a lemezen, hanem egyfajta "lyuk" van benne, amit - ahogy pakolod bele az adatot - folyamatosan tölt ki. Igazából sparse fájlból tudsz 15 PB-at is csinálni egy 46 MB-os merevlemezre, mert másodlagosan a lemezméret adja meg a korlátait a sparse fájl kapacitásának.
--
Blog | @hron84
Üzemeltető macik

/off
Úgy látszik megártott a sok teszt az mhostingnak, 23:00 állapot szerint, se a weboldaluk, se a VPS-ek (legalábbis az enyém) nem elérhető..
(nyilván nem ezért, tudom..)

szerk.: vagy mégsem, úgy tűnik csak a DIGI irányából nem lehet elérni..

Tracing route to mhosting.hu [79.172.201.68]
over a maximum of 30 hops:

1 <1 ms <1 ms <1 ms router.***.lan [*.*.*.*]
2 7 ms 6 ms 7 ms pppoe.peer.digicable.hu [10.0.0.1]
3 7 ms 7 ms 7 ms vl1000.dr01.xiii.digicable.hu [10.1.129.209]
4 7 ms 7 ms 8 ms xe-0-1-3.cr01.budapest.digicable.hu [94.21.4.182]
5 7 ms 7 ms 7 ms te-0-2-0-2.xr01.budapest.digicable.hu [94.21.3.57]
6 7 ms 7 ms 7 ms ae1.ic1-vhugo.net.telekom.hu [81.183.2.160]
7 8 ms 7 ms 7 ms xe-8-0-0.ic0-ip3.net.telekom.hu [81.183.0.156]
8 8 ms 8 ms 7 ms xe-1-0-2.ic0-dplex.net.telekom.hu [81.183.0.211]
9 8 ms 8 ms 8 ms 81.183.3.2
10 8 ms 8 ms 8 ms 84.2.33.200
11 74 ms 13 ms 8 ms tcom-dp2-02.net.ezit.hu [80.249.165.146]
12 * * * Request timed out.
13 * * * Request timed out.
14 * * * Request timed out.
15 * * * Request timed out.
16 * * * Request timed out.
17 * * * Request timed out.
18 * * * Request timed out.

/on :)