Podstawową komendą, której używam jest:
sysbench --test=cpu --cpu-max-prime= 20000 --num-threads= 1 run
|
Przykładowe wyniki dla trzech zwirtualizowanych serwerów serwerów i laptopa:
Jak widać na kilkuletnim laptopie test wykonał się w czasie krótszym, niż na serwerach:
- sasha: 33 s
- bibi: 36 s
- jenna: 32 s
- laptop: 24 s
Inne systemy:
Amazon Cloud (AWS) t2.mediumIntel Xeon E5-2676 v3 @ 2.4 GHz
10 s
Amazon Cloud (AWS) m4.largeIntel Xeon E5-2686 v4 @ 2.3 GHz
10 s
Intel Core i7 870 @ 2.93 GHzCode name: DELION
10 s
Jak można sprawdzić, jakie procesory są zainstalowane? Podstawową komendą jest:
Przydatne bywa polecenie:
Ja użyję poniższej komendy:
W serwerach są zainstalowane procesory:
Jak widać wirtualizacja KVM ukrywa prawdziwy typ procesora. W takim właśnie przypadku użyteczne jest porównanie wydajności procesorów komendą "sysbench".
Dane zwracane przez "lscpu" na laptopie:
Dla porównania dane jeszcze z dwóch serwerów:
Można też testować system plików (wielkość danych powinna znacząco przekraczać rozmiar pamięci RAM).
Pierwsze polecenie "sysbench" generuje pliki testowe, a dopiero drugie przeprowadza właściwy test. Domyślną wartością parametru "file-num" jest 128.
mkdir testio
cd testio
sysbench --test=fileio --file-total-size=15G prepare
sysbench --test=fileio --file-total-size=15G --file-test-mode=rndrw --init-rng=on --max-time= 300 --max-requests= 0 run
|
Należy pamiętać, by po zakończeniu testów usunąć utworzone pliki.
sysbench --test=fileio --file-total-size=15G cleanup
|
Wynik testu dysku na laptopie z dyskiem SSD:
Wynik testu dysku na zwirtualizowanym serwerze, wolumen "/":
Wynik testu dysku na zwirtualizowanym serwerze, zamontowany wolumen NFS:
Zebrane dane wydajności dysków:
Mb/s: | 8,9426 | 0,470 | 0,287 |
Requests/sec executed: | 572 | 29,41 | 17,99 |
approx. 95 percentile (ms): | 0,18 | 93,4 | 66,7 |
Ciekawym testem jest też "fio", chociaż nie użyłem go do ww. serwerów i laptopa:
Random Write:
fio --name=randwrite --ioengine=libaio --iodepth= 1 --rw=randwrite --bs=4k --direct= 0 --size=512M --numjobs= 8 --runtime= 240 --group_reporting
|
Random Read:
fio --name=randread --ioengine=libaio --iodepth= 16 --rw=randread --bs=4k --direct= 0 --size=512M --numjobs= 8 --runtime= 240 --group_reporting
|
Oczywiście watro używać też klasycznego testu "Bonnie++", oraz "iozone":
#Sequential Write, 64K requests, 32 threads:
iozone -I -t 32 -M -O -r 64k -s 500m -+u -w -i 0
#Sequential Read, 64K requests, 32 threads:
iozone -I -t 32 -M -O -r 64k -s 500m -+u -w -i 1
#Random Read/Write, 4K requests, 32 threads:
iozone -I -t 32 -M -O -r 4k -s 500m -+u -w -i 2
|
Można też testować wydajność MYSQL:
Testy przeprowadziłem w chmurze Amazon AWS, co dla AMI opartych o system przygotowany przez Amazona wymaga następującej instalacji oprogramowania testującego:
yum -y install bzr
yum -y install automake
yum -y install libtool
yum -y install mysql-devel
bzr branch lp:sysbench
cd sysbench
./autogen.sh
./configure
make
cd sysbench
|
Poniżej komendy przygotowujące, uruchamiające i sprzątające po teście:
mysql -u admin -ppaselko -h host.us-east- 1 .rds.amazonaws.com -e "CREATE DATABASE systest;"
./sysbench --test=tests/db/oltp.lua --oltp-table-size= 1000000 --mysql-db=systest --mysql-user=admin --mysql-password=paselko --mysql-host=host.us-east- 1 .rds.amazonaws.com prepare
./sysbench --test=tests/db/oltp.lua --oltp-table-size= 1000000 --mysql-db=systest --mysql-user=admin --mysql-password=paselko --max-time= 300 --oltp-read-only=on --max-requests= 0 --num-threads= 8 --mysql-host=host.us-east- 1 .rds.amazonaws.com run
./sysbench --test=tests/db/oltp.lua --mysql-db=systest --mysql-user=admin --mysql-password=paselko --mysql-host=host.us-east- 1 .rds.amazonaws.com cleanup
|
Przykładowy rezultat testu:
W tym teście uzyskaliśmy 890 transakcji na sekundę. Serwerem RDS był "db.t2.large":
- vCPU: 2
- ECU: 2
- Memory (GB): 8
- EBS Optimized: No
- Network Performance: Moderate
Serwerem z programem testującym był "t2.large":
***
Inne wpisy:
Update: 2018.07.17
Create: 2018.07.17