Оценка производительности VPS

SysBench — модульное, кроссплатформенное многопотоковое приложение позволяющее не прибегая к организации комплексного тестирования быстро оценить параметры системы для работы под высокой нагрузкой. SysBench может также протестировать производительность MySQL, но это тема для другой статьи.

Установка:

sudo apt-get install sysbench

Производительность дисковой подсистемы

Создаем файлы для тестирования производительности. Файлы создаются в текущем каталоге  с именами test_file.*

sysbench --test=fileio --file-num=64 --file-total-size=1G --init-rng=on --file-extra-flags=direct prepare

—file-num — количество файлов —file-total-size — суммарный размер файлов Запускаем тестирование:

sysbench --test=fileio --max-time=10 --max-requests=100000 --num-threads=2 --file-num=64 --file-total-size=1G --file-block-size=16384 --file-test-mode=rndrw run

—max-time — ограничение по времени выполнения в секундах —max-requests — ограничение по количеству операций —num-threads — количество потоков —file-block-size — размер блоков в байтах —file-test-mode — режим тестирования, возможные значения seqwr  — последовательная запись seqrewr  — последовательная перезапись seqrd  — последовательное чтение rndrd  — чтение со случайным доступом rndwr   — запись со случайным доступом rndrw  — чтение и запись со случайным доступом Получаем не очень высокие значения, что и следовало ожидать от VPS сервера за примерно 400 руб в мес.

sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 2

Extra file open flags: 0
64 files, 16Mb each
1Gb total file size
Block size 16Kb
Number of random requests for random IO: 100000
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Threads started!
Time limit exceeded, exiting...
(last message repeated 1 times)
Done.

Operations performed:  1140 Read, 760 Write, 1157 Other = 3057 Total
Read 17.812Mb  Written 11.875Mb  Total transferred 29.688Mb  (2.967Mb/sec)
189.89 Requests/sec executed

Test execution summary:
total time:                          10.0060s
total number of events:              1900
total time taken by event execution: 0.0700
per-request statistics:
min:                                  0.01ms
avg:                                  0.04ms
max:                                  2.33ms
approx.  95 percentile:               0.20ms

Threads fairness:
events (avg/stddev):           950.0000/321.00
execution time (avg/stddev):   0.0350/0.01

Производительность процессора

Используются 64х битные целые для расчета простых чисел до значения —cpu-max-primes.

$ sysbench --test=cpu --cpu-max-prime=20000 --num-threads=2 --max-time=10 run
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 2

Doing CPU performance benchmark

Threads started!
Time limit exceeded, exiting...
(last message repeated 1 times)
Done.

Maximum prime number checked in CPU test: 20000

Test execution summary:
total time:                          10.0015s
total number of events:              7506
total time taken by event execution: 19.9843
per-request statistics:
min:                                  2.55ms
avg:                                  2.66ms
max:                                  9.49ms
approx.  95 percentile:               2.83ms

Threads fairness:
events (avg/stddev):           3753.0000/0.00
execution time (avg/stddev):   9.9921/0.00

Оценка скорости работы с семафорами

Выполняется по одному запросу на поток. В начале создается небольшая нагрузка на процессор обычным циклом (параметр —mutex-loops), после чего выполняется захват случайного семафора, увеличивается глобальная переменная и семафор освобождается. Количество повторений этой процедуры задается параметром —mutex-locks. Общее количество семафоров для теста задается через —mutex-num.

$ sysbench --test=mutex --num-threads=64 run
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 64

Doing mutex performance test
Threads started!
Done.

Test execution summary:
total time:                          0.5010s
total number of events:              64
total time taken by event execution: 28.3254
per-request statistics:
min:                                224.71ms
avg:                                442.58ms
max:                                492.37ms
approx.  95 percentile:             491.32ms

Threads fairness:
events (avg/stddev):           1.0000/0.00
execution time (avg/stddev):   0.4426/0.07

Оценка производительности памяти

Выделяется буфер памяти и производятся операции чтения или записи. Количество данных прочитанных или записанных за одну операцию определяется размером указателя т.е. 4 или 8 байт (32 или 64 бит). Процесс повторяется пока не будет обработан заданный объем (—memory-total-size). Можно задать количество потоков (—num-threads), размер буфера (—memory-block-size) и тип операции (чтение или запись —memory-oper=[read | write].

$ sysbench --test=memory --num-threads=2 run
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 2

Doing memory operations speed test
Memory block size: 1K

Memory transfer size: 102400M

Memory operations type: write
Memory scope type: global
Threads started!
Done.

Operations performed: 104857600 (515274.87 ops/sec)

102400.00 MB transferred (503.20 MB/sec)

Test execution summary:
total time:                          203.4984s
total number of events:              104857600
total time taken by event execution: 303.7104
per-request statistics:
min:                                  0.00ms
avg:                                  0.00ms
max:                                 24.84ms
approx.  95 percentile:               0.00ms

Threads fairness:
events (avg/stddev):           52428800.0000/377524.00
execution time (avg/stddev):   151.8552/0.17

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *