Test uyguladığım benchmark programları içinde sunucu konfigurasyonu test için en hoşuma giden paket SysBench oldu.
Peki SysBench ile neleri test edebiliriz?
dosya I/O performansını
hafıza ayırma ve transfer hızını
POSIX threadleri performansını
mysql database server performansını
Benchmarkımızu kullanmak için
ubuntu veya debian kullanıyorsak
sudo apt-get install sysbench dememiz yeterli, kaynaktan kurmak istersek;
SourceForge SysBench yansısından
kaynak kodlarımız inidiyoruz.
tar -zxvf sysbench-0.4.12.tar.gz
komutu ile açıyoruz.
cd sysbench-0.4.12
./configure
make
make install
komutları ile sisteme kuruyoruz.
örnek komutlar:
fileio için;
$ sysbench --num-threads=16 --test=fileio --file-total-size=3G --file-test-mode=rndrw prepare
$ sysbench --num-threads=16 --test=fileio --file-total-size=3G --file-test-mode=rndrw run
$ sysbench --num-threads=16 --test=fileio --file-total-size=3G --file-test-mode=rndrw cleanup
ilk komut 3 gb lık dosya hazırlıyor test için, ikinci testleri gerçekleştiriyor, üçüncü de geçici dosyaları siliyor.
hafıza için;
$ sysbench --num-threads=16 --test=memory --memory-block-size=4K --memory-total-size=4G
(memtest paketi daha iyi bu iş için)
threadler için;
sysbench --num-threads=64 --test=threads --thread-yields=100 --thread-locks=2 run
cpu için;
sysbench --test=cpu --cpu-max-prime=20000 run
asal sayı hesabı ile test ediyor.
mysql için;
$ sysbench --test=oltp --mysql-table-type=myisam --oltp-table-size=1000000 --mysql-socket=/tmp/mysql.sock prepare
$ sysbench --num-threads=16 --max-requests=100000 --test=oltp --oltp-table-size=1000000 --mysql-socket=/tmp/mysql.sock --oltp-read-only run
testi anlamak için aynı makinada farklı kernellerle test edebilirsiniz.
örnek çıktı;
ripper@ubuntu:~$ sysbench --test=cpu --cpu-max-prime=20000 run
sysbench 0.4.10: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 36.1809s
total number of events: 10000
total time taken by event execution: 36.1756
per-request statistics:
min: 3.60ms
avg: 3.62ms
max: 5.70ms
approx. 95 percentile: 3.62ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 36.1756/0.00
karşılaştırmak istersek 16 threadle
ripper@ubuntu:~$ sysbench --test=cpu --cpu-max-prime=20000 --num-threads=16 run
sysbench 0.4.10: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 16
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 9.1494s
total number of events: 10000
total time taken by event execution: 144.8304
per-request statistics:
min: 3.60ms
avg: 14.48ms
max: 147.61ms
approx. 95 percentile: 63.75ms
Threads fairness:
events (avg/stddev): 625.0000/107.60
execution time (avg/stddev): 9.0519/0.05
Tags: benchmark, cpu, debian, fileio, Linux, memory, mutex, oltp, test, threads, ubuntu