Jak provést Redis Benchmark?

Zjistěte, jak funguje váš Redis, kdy se může zlomit, propustnost, rychlost přenosu dat a další pomocí následujících skvělých nástrojů.

Popularita a používání služby Redis (Remote Dictionary Service) v posledních několika letech vzrostly.

Nejen pro podnikové aplikace, ale i pro malé a střední aplikace. Dokonce můžete použít Redis na WordPress pro ukládání do mezipaměti a výkon je mnohem lepší. Pokud máte zájem naučit se Redis od nuly, podívejte se na toto online kurz.

Jako vývojář nebo správce systému pro podnikovou aplikaci byste si měli být vědomi provádění benchmarku, abyste poznali výkon a kapacitu své aplikace. Benchmark Redis se mírně liší od webového serveru. Dobrou zprávou je, že je k dispozici mnoho bezplatných nástrojů, takže si můžete vybrat, co vám vyhovuje.

Jste připraveni prozkoumat?

Redis-benchmark

Využijte výhody vestavěného benchmarkingového nástroje Redis s názvem redis-benchmark. Je součástí instalace Redis a lze jej spustit pouhým zadáním redis-benchmark v systému UNIX. Je k dispozici také ve Windows a spustitelný soubor je redis-benchmark.exe.

Podívejme se na následující příklady.

Odeslání jednoho milionu žádostí proti 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 milion požadavků byl dokončen za 30,62 sekund. Věnujte pozornost i poslednímu řádku, za sekundu je obslouženo ~32653 požadavků.

Pokud se podíváte pozorně, velikost užitečného zatížení je 3 bajty. To je výchozí nastavení a pro přizpůsobení můžete použít parametr -d. Následující test je pro 100 000 požadavků s 1 MB užitečného zatížení.

[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

Všimli jste si paralelních klientů? Ve výchozím nastavení je 50 a pro nastavení můžete použít parametr -c. Níže uvedený příklad je pro 200 klientů.

[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

Jak můžete vidět s 200 klienty, trvalo to déle a zpracování se také zpomalilo. Ale to se očekává a pomáhá to najít skutečný výkon aplikace.

  Internetový vyhledávač dat pro bezpečnostní výzkumníky

Nejste spokojeni s nástrojem Redis-benchmark? žádný strach, je jich více jako následujících.

Redis-cli

Zajímají vás pouze informace o latenci?

Jistě, můžete použít redis-cli dodávaný se serverem Redis. Můžete provést s parametrem –latency.

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

Ve výchozím nastavení je vzorek latence každou sekundu, ale v případě potřeby jej můžete změnit pomocí přepínače -i.

Benchmark Memtier

Benchmark Memtier od Redis Labs podporuje Redis a Memcache, obojí. Je to pokročilý nástroj pro srovnávání s různými možnostmi testování, jako je následující.

  • Otestujte Redis chráněný heslem
  • Spusťte klienta v režimu clusteru
  • Dodat počet klientů, požadavky, vlákna, velikost dat,
  • Upravte poměr SET a GET

a mnoho dalšího…

Zde je zpráva o rychlém testu.

[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]:~#

Pochybuji, že to můžete nainstalovat na Windows, ale určitě na UNIX distro jako RHEL/CentOS, Ubuntu/Debian, MacOS atd. Vyzkoušet je zdarma.

  Jak získat aplikaci Microsoft Excel pro výpočet nejistoty

K dispozici jako CLI a GUI, obojí. RDBTools je multiplatformní nástroj a jeho cílem je pomoci zlepšit výkon aplikací. Když mluvíme o specifických pro benchmarking, má funkci analýzy paměti, která umožňuje zkoumat využití paměti, analýzu klíčů, identifikovat úniky paměti a doporučit snížení využití paměti.

Prostřednictvím GUI můžete sledovat výkon v reálném čase a provádět nejrůznější administrativní úkoly.

Závěr

Doufám, že výše uvedené nástroje vám pomohou provést srovnávání Redis, abyste věděli o výkonu aplikace.