sql >> Databáze >  >> NoSQL >> Redis

6 zásadních monitorovacích metrik Redis, které musíte sledovat

Redis je databáze v paměti, která poskytuje bleskově rychlý výkon. To z něj dělá přesvědčivou alternativu k diskovým databázím, když jde o výkon. Možná již používáte hostování ScaleGrid pro Redis™* k napájení aplikací citlivých na výkon. Jak zajistíte, že vaše nasazení Redis je zdravé a splňuje vaše požadavky? Budete potřebovat vědět, které monitorovací metriky pro Redis™ sledovat, a nástroj pro sledování těchto důležitých serverových metrik, abyste zajistili jeho stav. Redis vrátí velký seznam databázových metrik, když spustíte příkaz info v prostředí Redis. Z nich si můžete vybrat chytrý výběr relevantních metrik. A mohou vám pomoci zajistit zdraví vašeho systému a rychle provést analýzu hlavních příčin jakéhokoli problému souvisejícího s výkonem, se kterým se můžete setkat.

Tento příspěvek na blogu uvádí důležité databázové metriky, které je třeba sledovat. Podíváme se na každou metriku z pohledu výkonu databáze a prodiskutujeme běžné problémy a řešení s nimi spojená.

1. Metrika výkonu:Propustnost

Propustnost vám říká, kolik databázových operací váš server provádí za určitou dobu. Závisí to na vytížení vaší aplikace a její obchodní logice. Když se podíváte na historii propustnosti, můžete odvodit vzorec zatížení serveru, např. špičkové zatížení, frekvence špičkového zatížení, časové rámce špičkového zatížení, průměrné zatížení atd.

Můžete shromáždit hodnoty metrik propustnosti pro všechny příkazy spuštěné na serveru Redis spuštěním „info commandstats “.

127.0.0.1:6379> info commandstats
# Commandstats
cmdstat_get:calls=797,usec=4041,usec_per_call=5.07
cmdstat_append:calls=797,usec=4480,usec_per_call=5.62
cmdstat_expire:calls=797,usec=5471,usec_per_call=6.86
cmdstat_auth:calls=147,usec=288,usec_per_call=1.96
cmdstat_info:calls=46,usec=902,usec_per_call=19.61
cmdstat_config:calls=2,usec=130,usec_per_call=65.00
cmdstat_eval:calls=796,usec=36950,usec_per_call=46.42
cmdstat_command:calls=796,usec=8578,usec_per_call=10.78

Redis seskupuje své různé příkazy do připojení, serveru, clusteru, generických atd. Monitorování ScaleGrid pro Redis™ agreguje propustnost různých příkazů do jedné z výše uvedených skupin. Propustnost je reprezentována jako skládaný plošný graf, kde výška každé barevné oblasti poskytuje propustnost skupiny příkazů.

Snížená propustnost může obecně znamenat, že server dostává méně dotazů. Mohlo by to také naznačovat potenciální problém, řekněme drahý dotaz. Podobně zvýšená propustnost znamená intenzivní pracovní zatížení serveru a větší latenci.

2. Využití paměti

Paměť je kritickým zdrojem výkonu Redis. Použitá paměť definuje celkový počet bajtů alokovaných Redis pomocí jeho alokátoru (buď standardní libc, jemalloc nebo alternativního alokátoru, jako je tcmalloc).

Všechna data metrik využití paměti pro instanci Redis můžete shromáždit spuštěním „informační paměti “.

127.0.0.1:6379> info memory
# Memory
used_memory:1007280
used_memory_human:983.67K
used_memory_rss:2002944
used_memory_rss_human:1.91M
used_memory_peak:1008128
used_memory_peak_human:984.50K

Někdy, když je Redis nakonfigurován bez omezení maximální paměti, využití paměti nakonec dosáhne systémové paměti a server začne házet chyby „Nedostatek paměti“. Jindy je Redis nakonfigurován s maximálním limitem paměti, ale žádné vyřazení politika. To by způsobilo, že server nevysune žádné klíče, čímž zabrání jakémukoli zápisu, dokud se paměť neuvolní. Řešením těchto problémů by byla konfigurace Redis s maximální pamětí a určitou politikou vystěhování. V tomto případě server začne vyřazovat klíče pomocí zásady vyřazení, jakmile využití paměti dosáhne maxima.

RSS paměti (Velikost rezidentní sady) je počet bajtů, které operační systém přidělil Redis. Pokud je poměr „memory_rss“ k „memory_used“ větší než ~1,5, znamená to fragmentaci paměti. Fragmentovanou paměť lze obnovit restartováním serveru.

3. Poměr návštěvnosti mezipaměti

Poměr přístupů do mezipaměti představuje efektivitu využití mezipaměti. Matematicky je definován jako (celkový počet stisknutých klíčů)/ (celkový počet stisknutých klíčů + celkový počet chybějících klíčů).

informační statistiky ” poskytuje keyspace_hits &keyspace_misses metrická data pro další výpočet poměru přístupů do mezipaměti pro běžící instanci Redis.

127.0.0.1:6379> info stats
# Stats
.............
sync_partial_err:0
expired_keys:10
evicted_keys:12
keyspace_hits:4
keyspace_misses:15
pubsub_channels:0
pubsub_patterns:0
.............

Pokud je poměr přístupů do mezipaměti nižší než ~0,8, pak je značné množství požadovaných klíčů vyřazeno, vypršela jejich platnost nebo vůbec neexistují. Při používání Redis jako mezipaměti je důležité sledovat tuto metriku. Nižší poměr přístupů do mezipaměti má za následek větší latenci, protože většina požadavků načítá data z disku. Znamená to, že potřebujete zvětšit velikost mezipaměti Redis, abyste zlepšili výkon své aplikace.

4. Aktivní připojení

Počet připojení je omezený zdroj, který je vynucený buď operačním systémem, nebo konfigurací Redis. Sledování aktivních připojení vám pomůže zajistit, že budete mít dostatek připojení pro obsluhu všech vašich požadavků ve špičce.

5. Vyklizené/vypršené klíče

Redis podporuje různé zásady vystěhování které server používá, když využití paměti dosáhne maximálního limitu. Trvalá kladná hodnota této metriky je známkou toho, že potřebujete zvětšit paměť.

127.0.0.1:6379> info stats
# Stats
..............
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
..............

Redis podporuje TTL (time to live) vlastnost pro každý klíč. Server vymaže klíč, pokud uplynul související TTL. Pokud aplikace tuto vlastnost nedefinuje, způsobí to, že se v paměti nahromadí data, jejichž platnost vypršela. Kladná hodnota metriky ukazuje, že vaše data, jejichž platnost vypršela, jsou řádně vyčištěna.

6. Metriky replikace

‘connected_slaves‘ metrika informuje o dosažitelnosti podřízeného serveru nadřízenému. Nedosažitelnost slave zařízení může vést k vyšší latenci čtení v závislosti na zátěži čtení na serveru.

127.0.0.1:6379> info replication
# Replication
role:master/slave
connected_slaves:0/master_slave_io_seconds_ago:0
master_repl_offset:0
..............

master_slave_io_seconds_ago “ Metrika říká, kolik času uplyne během komunikace mezi slave a masterem. Vyšší hodnota pro tuto metriku může indikovat problémy na master/slave nebo nějaké problémy se sítí. Dále způsobí, že slave bude obsluhovat zastaralá data.

Závěr

Zmínili jsme některé důležité metriky, které poskytnou dobrý přehled o stavu a výkonu vašeho databázového serveru. Mohou existovat další, které jsou relevantní pro vaše konkrétní databázové servery a případy použití. Doporučujeme projít a pochopit všechny metriky hlášené příkazem „info“.

Pokud potřebujete pomoc se správou svého hostingu AWS pro nasazení Redis™, neváhejte nás kontaktovat prostřednictvím e-mailu na [email protected] nebo na Twitteru @scalegridio.


  1. MongoDB:upsert dílčí dokument

  2. Dokáže tato technologie škálovat?

  3. Znovu najít hash podle hodnot polí

  4. Jak zničit pracovní místa ve frontě resque pracovníky?