Як виконати Redis Benchmark?

Дізнайтеся, як працює ваш Redis, коли він може зламатися, пропускна здатність, швидкість передачі даних тощо за допомогою наведених нижче чудових інструментів.

За останні кілька років популярність і використання Redis (Remote Dictionary Service) зросли.

Не лише для корпоративних програм, а й для малих і середніх програм. Навіть ви можете використовувати Redis на WordPress для кешування, і продуктивність набагато краща. Якщо вам цікаво вивчити Redis з нуля, подивіться це онлайн курс.

Як розробник або системний адміністратор для корпоративної програми, ви повинні знати про виконання тесту, щоб знати продуктивність і потужність програми. Тест Redis дещо відрізняється від веб-сервера. Доброю новиною є те, що доступно багато безкоштовних інструментів, тому ви можете вибрати те, що вам підходить.

Готові досліджувати?

Redis-бенчмарк

Скористайтеся перевагами вбудованої у Redis утиліти порівняльного аналізу під назвою redis-benchmark. Його включено до інсталяції Redis і його можна запустити, просто ввівши redis-benchmark в UNIX. Він також доступний у Windows, а виконуваний файл — redis-benchmark.exe.

Давайте розглянемо наступні приклади.

Надсилання мільйона запитів на 192.168.0.100

[email protected]:~# redis-benchmark -h 192.168.0.100 -p 6379 -n 1000000
====== PING_INLINE ======
  1000000 requests completed in 30.62 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

61.85% <= 1 milliseconds
99.55% <= 2 milliseconds
99.93% <= 3 milliseconds
99.96% <= 4 milliseconds
99.98% <= 5 milliseconds
99.99% <= 6 milliseconds
99.99% <= 7 milliseconds
100.00% <= 8 milliseconds
100.00% <= 9 milliseconds
100.00% <= 9 milliseconds
32653.06 requests per second

1 мільйон запитів було виконано за 30,62 секунди. Також зверніть увагу на останній рядок, в секунду обслуговується ~32653 запити.

Якщо ви уважно подивитесь, розмір корисного навантаження становить 3 байти. Це параметри за замовчуванням, і для налаштування ви можете використовувати параметр -d. Наступний тест призначений для 100 тисяч запитів із корисним навантаженням 1 МБ.

[email protected]:~# redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -d 1000000
====== PING_INLINE ======
  100000 requests completed in 2.80 seconds
  50 parallel clients
  1000000 bytes payload
  keep alive: 1

73.19% <= 1 milliseconds
99.95% <= 2 milliseconds
100.00% <= 2 milliseconds
35676.06 requests per second

Ви помітили паралельних клієнтів? Його значення за замовчуванням становить 50, і для налаштування ви можете використовувати параметр -c. Нижче наведено приклад для 200 клієнтів.

[email protected]:~# redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -d 1000000 -c 200
====== PING_INLINE ======
  100000 requests completed in 3.77 seconds
  200 parallel clients
  1000000 bytes payload
  keep alive: 1

0.00% <= 1 milliseconds
2.99% <= 2 milliseconds
18.95% <= 3 milliseconds
45.81% <= 4 milliseconds
69.65% <= 5 milliseconds
86.58% <= 6 milliseconds
95.79% <= 7 milliseconds
98.88% <= 8 milliseconds
99.78% <= 9 milliseconds
99.96% <= 10 milliseconds
100.00% <= 10 milliseconds
26532.24 requests per second

Як бачите, для 200 клієнтів знадобилося більше часу, і обробка стала повільнішою. Але це очікувано, і це допомагає знайти реальну продуктивність програми.

  Як перейменувати закладку в MS Word 2013

Не задоволені інструментом порівняння Redis? не хвилюйтеся, є більше, як показано нижче.

Redis-cli

Просто цікавить інформація про затримку?

Звичайно, ви можете використовувати redis-cli, що постачається разом із сервером Redis. Ви можете виконати за допомогою параметра –latency.

[email protected]:~# redis-cli --latency
min: 0, max: 1, avg: 0.16 (1056 samples

За замовчуванням вибірка затримки є кожною секундою, але ви можете змінити параметр -i за потреби.

Тест Memtier

Тест Memtier від Redis Labs підтримує Redis і Memcache, обидва. Це розширений інструмент порівняльного аналізу з різними параметрами тестування, такими як наступні.

  • Перевірити захищений паролем Redis
  • Запуск клієнта в режимі кластера
  • Кількість клієнтів, запитів, потоків, обсяг даних,
  • Відрегулюйте співвідношення SET і GET

і багато іншого…

Ось короткий звіт про перевірку.

[email protected]:~# memtier_benchmark 
[RUN #1] Preparing benchmark client...
[RUN #1] Launching threads now...
[RUN #1 100%, 133 secs]  3 threads:     1993223 ops,   15083 (avg:   14877) ops/sec, 639.97KB/sec (avg: 631.04KB/sec), 13.30 (avg: 13.44) msec latenc[RUN #1 100%, 134 secs]  0 threads:     2000000 ops,   15083 (avg:   14911) ops/sec, 639.97KB/sec (avg: 632.52KB/sec), 13.30 (avg: 13.41) msec latency

4         Threads
50        Connections per thread
10000     Requests per client


ALL STATS
=========================================================================
Type         Ops/sec     Hits/sec   Misses/sec      Latency       KB/sec 
-------------------------------------------------------------------------
Sets         1354.30          ---          ---     13.40200       104.30 
Gets        13528.13         0.00     13528.13     13.41000       526.98 
Waits           0.00          ---          ---      0.00000          --- 
Totals      14882.43         0.00     13528.13     13.40900       631.28 


Request Latency Distribution
Type     <= msec         Percent
------------------------------------------------------------------------
SET       0.055         0.00
SET       0.063         0.00
SET       0.110         0.00
SET       0.140         0.00
SET       0.160         0.00
SET       0.170         0.00
SET       0.180         0.00
SET       0.210         0.01
SET       0.230         0.01
SET       0.280         0.01
SET       0.300         0.01
SET       0.360         0.01
SET       0.440         0.01
SET       0.460         0.01
SET       0.480         0.01
SET       0.510         0.01
SET       0.570         0.01
SET       0.590         0.01
SET       0.610         0.01
SET       0.630         0.01
SET       0.640         0.02
SET       0.670         0.02
SET       0.680         0.02
SET       0.710         0.02
SET       0.730         0.02
SET       0.740         0.02
SET       0.750         0.02
SET       0.760         0.02
SET       0.770         0.02
SET       0.780         0.02
SET       0.790         0.02
SET       0.820         0.02
SET       0.840         0.02
SET       0.850         0.03
SET       0.870         0.03
SET       0.880         0.03
SET       0.900         0.03
SET       0.930         0.03
SET       0.940         0.03
SET       0.950         0.03
SET       0.960         0.03
SET       0.970         0.03
SET       1.000         0.03
SET       1.100         0.04
SET       1.200         0.05
SET       1.300         0.06
SET       1.400         0.07
SET       1.500         0.08
SET       1.600         0.08
SET       1.700         0.09
SET       1.800         0.10
SET       1.900         0.10
SET       2.000         0.11
SET       2.100         0.12
SET       2.200         0.12
SET       2.300         0.13
SET       2.400         0.14
SET       2.500         0.16
SET       2.600         0.18
SET       2.700         0.21
SET       2.800         0.24
SET       2.900         0.25
SET       3.000         0.26
SET       3.100         0.27
SET       3.200         0.28
SET       3.300         0.28
SET       3.400         0.29
SET       3.500         0.30
SET       3.600         0.32
SET       3.700         0.35
SET       3.800         0.37
SET       3.900         0.39
SET       4.000         0.42
SET       4.100         0.45
SET       4.200         0.48
SET       4.300         0.52
SET       4.400         0.55
SET       4.500         0.59
SET       4.600         0.63
SET       4.700         0.68
SET       4.800         0.73
SET       4.900         0.77
SET       5.000         0.82
SET       5.100         0.88
SET       5.200         0.93
SET       5.300         0.99
SET       5.400         1.06
SET       5.500         1.12
SET       5.600         1.18
SET       5.700         1.25
SET       5.800         1.33
SET       5.900         1.40
SET       6.000         1.47
SET       6.100         1.56
SET       6.200         1.64
SET       6.300         1.73
SET       6.400         1.81
SET       6.500         1.92
SET       6.600         2.00
SET       6.700         2.10
SET       6.800         2.21
SET       6.900         2.32
SET       7.000         2.44
SET       7.100         2.57
SET       7.200         2.69
SET       7.300         2.80
SET       7.400         2.95
SET       7.500         3.09
SET       7.600         3.24
SET       7.700         3.37
SET       7.800         3.52
SET       7.900         3.68
SET       8.000         3.84
SET       8.100         4.02
SET       8.200         4.17
SET       8.300         4.34
SET       8.400         4.49
SET       8.500         4.65
SET       8.600         4.84
SET       8.700         5.03
SET       8.800         5.20
SET       8.900         5.38
SET       9.000         5.59
SET       9.100         5.78
SET       9.200         6.01
SET       9.300         6.22
SET       9.400         6.45
SET       9.500         6.72
SET       9.600         7.05
SET       9.700         7.35
SET       9.800         7.66
SET       9.900         7.99
SET      10.000        10.29
SET      11.000        17.47
SET      12.000        39.07
SET      13.000        62.05
SET      14.000        76.14
SET      15.000        83.95
SET      16.000        88.77
SET      17.000        91.73
SET      18.000        93.54
SET      19.000        94.82
SET      20.000        95.90
SET      21.000        96.80
SET      22.000        97.62
SET      23.000        98.26
SET      24.000        98.74
SET      25.000        99.07
SET      26.000        99.31
SET      27.000        99.49
SET      28.000        99.65
SET      29.000        99.71
SET      30.000        99.76
SET      31.000        99.82
SET      32.000        99.86
SET      33.000        99.89
SET      34.000        99.91
SET      35.000        99.93
SET      36.000        99.96
SET      37.000        99.97
SET      38.000        99.98
SET      39.000        99.99
SET      40.000        99.99
SET      41.000        99.99
SET      42.000       100.00
SET      43.000       100.00
SET      45.000       100.00
SET      46.000       100.00
---
GET       0.053         0.00
GET       0.054         0.00
GET       0.055         0.00
GET       0.067         0.00
GET       0.068         0.00
GET       0.076         0.00
GET       0.082         0.00
GET       0.086         0.00
GET       0.100         0.00
GET       0.110         0.00
GET       0.120         0.00
GET       0.130         0.00
GET       0.140         0.00
GET       0.150         0.00
GET       0.160         0.00
GET       0.170         0.00
GET       0.190         0.00
GET       0.200         0.00
GET       0.210         0.00
GET       0.220         0.00
GET       0.230         0.00
GET       0.240         0.00
GET       0.250         0.00
GET       0.270         0.00
GET       0.280         0.00
GET       0.290         0.00
GET       0.300         0.00
GET       0.320         0.00
GET       0.330         0.00
GET       0.340         0.00
GET       0.350         0.01
GET       0.360         0.01
GET       0.380         0.01
GET       0.400         0.01
GET       0.430         0.01
GET       0.440         0.01
GET       0.460         0.01
GET       0.470         0.01
GET       0.480         0.01
GET       0.500         0.01
GET       0.510         0.01
GET       0.520         0.01
GET       0.530         0.01
GET       0.540         0.01
GET       0.550         0.01
GET       0.560         0.01
GET       0.580         0.01
GET       0.590         0.01
GET       0.600         0.01
GET       0.610         0.01
GET       0.620         0.01
GET       0.630         0.01
GET       0.640         0.01
GET       0.650         0.01
GET       0.660         0.01
GET       0.670         0.01
GET       0.680         0.01
GET       0.690         0.01
GET       0.700         0.01
GET       0.710         0.01
GET       0.720         0.01
GET       0.730         0.01
GET       0.740         0.01
GET       0.750         0.01
GET       0.760         0.01
GET       0.770         0.01
GET       0.780         0.01
GET       0.790         0.01
GET       0.800         0.01
GET       0.810         0.01
GET       0.820         0.01
GET       0.830         0.01
GET       0.840         0.01
GET       0.850         0.02
GET       0.860         0.02
GET       0.870         0.02
GET       0.880         0.02
GET       0.890         0.02
GET       0.900         0.02
GET       0.910         0.02
GET       0.920         0.02
GET       0.930         0.02
GET       0.940         0.02
GET       0.950         0.02
GET       0.960         0.02
GET       0.970         0.02
GET       0.980         0.02
GET       0.990         0.02
GET       1.000         0.02
GET       1.100         0.02
GET       1.200         0.03
GET       1.300         0.04
GET       1.400         0.04
GET       1.500         0.05
GET       1.600         0.05
GET       1.700         0.05
GET       1.800         0.06
GET       1.900         0.06
GET       2.000         0.07
GET       2.100         0.07
GET       2.200         0.08
GET       2.300         0.09
GET       2.400         0.09
GET       2.500         0.11
GET       2.600         0.13
GET       2.700         0.16
GET       2.800         0.18
GET       2.900         0.20
GET       3.000         0.20
GET       3.100         0.21
GET       3.200         0.21
GET       3.300         0.22
GET       3.400         0.24
GET       3.500         0.25
GET       3.600         0.26
GET       3.700         0.28
GET       3.800         0.31
GET       3.900         0.33
GET       4.000         0.36
GET       4.100         0.39
GET       4.200         0.43
GET       4.300         0.46
GET       4.400         0.49
GET       4.500         0.53
GET       4.600         0.57
GET       4.700         0.61
GET       4.800         0.65
GET       4.900         0.69
GET       5.000         0.73
GET       5.100         0.78
GET       5.200         0.83
GET       5.300         0.89
GET       5.400         0.95
GET       5.500         1.01
GET       5.600         1.08
GET       5.700         1.14
GET       5.800         1.21
GET       5.900         1.30
GET       6.000         1.37
GET       6.100         1.45
GET       6.200         1.54
GET       6.300         1.62
GET       6.400         1.71
GET       6.500         1.80
GET       6.600         1.90
GET       6.700         1.99
GET       6.800         2.10
GET       6.900         2.21
GET       7.000         2.33
GET       7.100         2.45
GET       7.200         2.56
GET       7.300         2.67
GET       7.400         2.80
GET       7.500         2.94
GET       7.600         3.08
GET       7.700         3.22
GET       7.800         3.36
GET       7.900         3.51
GET       8.000         3.66
GET       8.100         3.83
GET       8.200         3.99
GET       8.300         4.17
GET       8.400         4.32
GET       8.500         4.49
GET       8.600         4.67
GET       8.700         4.84
GET       8.800         5.00
GET       8.900         5.18
GET       9.000         5.37
GET       9.100         5.58
GET       9.200         5.78
GET       9.300         6.00
GET       9.400         6.25
GET       9.500         6.53
GET       9.600         6.82
GET       9.700         7.11
GET       9.800         7.41
GET       9.900         7.77
GET      10.000        10.13
GET      11.000        17.36
GET      12.000        39.32
GET      13.000        62.21
GET      14.000        76.31
GET      15.000        83.98
GET      16.000        88.82
GET      17.000        91.71
GET      18.000        93.50
GET      19.000        94.77
GET      20.000        95.84
GET      21.000        96.76
GET      22.000        97.58
GET      23.000        98.22
GET      24.000        98.73
GET      25.000        99.07
GET      26.000        99.32
GET      27.000        99.51
GET      28.000        99.66
GET      29.000        99.73
GET      30.000        99.78
GET      31.000        99.83
GET      32.000        99.87
GET      33.000        99.90
GET      34.000        99.92
GET      35.000        99.94
GET      36.000        99.96
GET      37.000        99.97
GET      38.000        99.98
GET      39.000        99.99
GET      40.000        99.99
GET      41.000        99.99
GET      42.000       100.00
GET      43.000       100.00
GET      44.000       100.00
GET      45.000       100.00
GET      46.000       100.00
GET      47.000       100.00
---
[email protected]:~#

Я сумніваюся, що ви зможете встановити це в Windows, але точно в дистрибутиві UNIX, наприклад RHEL/CentOS, Ubuntu/Debian, MacOS тощо. Спробувати безкоштовно.

  Як підключити контролери GameCube до Nintendo Switch

Доступний як CLI, так і GUI. RDBTools є крос-платформним інструментом і має на меті допомогти покращити продуктивність програми. Якщо говорити про особливості порівняльного аналізу, то він отримав функцію аналізу пам’яті, яка дозволяє досліджувати використання пам’яті, аналізувати ключі, виявляти витоки пам’яті та рекомендувати зменшити використання пам’яті.

Ви можете переглядати продуктивність у реальному часі та виконувати всі види адміністративних завдань через графічний інтерфейс.

Висновок

Я сподіваюся, що наведені вище інструменти допоможуть вам виконати порівняльний аналіз Redis, щоб ви знали продуктивність програми.