成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【推薦】六大免費(fèi)的Redis內(nèi)存分析工具

譯文
數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù) Redis
在我們需要分析Redis實(shí)例的內(nèi)存使用情況時(shí),市場(chǎng)上有著許多免費(fèi)的開源工具,同時(shí)也有少量的付費(fèi)產(chǎn)品。如果您想更深層次地分析內(nèi)存相關(guān)問(wèn)題的話,就可能需要用到一些更具針對(duì)性的“獨(dú)門”工具了。

【推薦】六大免費(fèi)的Redis內(nèi)存分析工具

【51CTO.com快譯】在我們需要分析Redis實(shí)例的內(nèi)存使用情況時(shí),市場(chǎng)上有著許多免費(fèi)的開源工具,同時(shí)也有少量的付費(fèi)產(chǎn)品。如果您想更深層次地分析內(nèi)存相關(guān)問(wèn)題的話,就可能需要用到一些更具針對(duì)性的“獨(dú)門”工具了。

我們?cè)诒疚闹袨槟扑]了六種實(shí)用工具,它們?cè)晃覀冇脕?lái)分析自己的Redis實(shí)例。它們分別是:

  1. Redis Memory Analyzer(Redis內(nèi)存分析器,RMA)
  2. Redis Sampler(Redis采樣器)
  3. RDB Tools(RDB 工具集)
  4. Redis-Audit(Redis-審計(jì))
  5. Redis Toolkit(Redis工具包)
  6. Harvest

1.Redis Memory Analyzer  

在Redis內(nèi)存分析領(lǐng)域,RMA(Redis內(nèi)存分析器)是最全面的FOSS(譯者注:Free and Open Source Software,免費(fèi)且開源的軟件)之一。它支持三種不同的級(jí)別模式,分別是:

  • 全局 – 顯示內(nèi)存使用信息的概述。
  • 掃描器 – 顯示***級(jí)別鍵值空間(keyspace)和前綴(prefix)的內(nèi)存使用信息 - 換言之,使用最短的通用前綴(common prefix)。
  • RAM – 顯示***級(jí)鍵值空間和前綴 - 換言之,使用最長(zhǎng)的通用前綴。

每一種模式都有自己的用途,您可以在RMA的自述文件(https://github.com/gamenet/redis-memory-analyzer/blob/master/README.rst)中獲取進(jìn)一步的詳細(xì)信息.

RMA - 全局模式 

在全局模式下,RMA 提供了一些高級(jí)別的統(tǒng)計(jì)信息,如鍵數(shù)、系統(tǒng)內(nèi)存、駐留集的大小、鍵值空間的大小等。值得一提的是其特殊功能:“鍵值空間開銷”,這是Redis系統(tǒng)用來(lái)存儲(chǔ)與鍵值空間相關(guān)信息的內(nèi)存數(shù)量,例如列表數(shù)據(jù)結(jié)構(gòu)中的指針數(shù)量。

RMA - 掃描器模式 

在掃描器模式中,我們能夠獲取鍵值空間的概述。它給出了高級(jí)別的命名空間(因此,a:b:1和a:c:1合并為a:*),同時(shí)帶有各種條目的類型,及其命名空間所占用內(nèi)存的百分比。該模式可作為分析的起點(diǎn),然后使用下面的“RAM”模式進(jìn)行詳細(xì)的分析。

RMA - RAM模式 

在RAM模式下,我們得到鍵值空間級(jí)別的內(nèi)存開銷值,當(dāng)然大多數(shù)其他開源的內(nèi)存分析工具也能提供。因此,此處將a:b:1和a:c:1分別當(dāng)作a:b:*和a:c:*,我們從而得到有關(guān)內(nèi)存使用、實(shí)際數(shù)據(jù)大小、開銷、編碼、最小和***TTL等方面的詳細(xì)信息。這些都有助于我們查出那些系統(tǒng)中內(nèi)存消耗“大戶”。

不過(guò),此工具長(zhǎng)久未被更新了(在GitHub上的***一次提交是在一年多以前)。即便如此,它仍然是我們進(jìn)行詳細(xì)分析的***工具之一。

RMA的安裝和使用:

RMA需要在系統(tǒng)上事先安裝好Python和PIP(譯者注:Python的包管理工具),兩者一般都被預(yù)安裝在了主流的操作系統(tǒng)之上。安裝完畢后,您可以執(zhí)行一條“pip install rma”的命令來(lái)安裝RDB工具。

您可以很容易地通過(guò)命令行來(lái)使用它,其語(yǔ)法為:“rma [-s HOST] [-p PORT] [-a PASSWORD] [-d DB] [-m pattern-to-match] [-l number-of-keys-to-scan] [-b BEHAVIOUR] [-t comma-separated-list-of-data-types-to-scan]”

RMA的優(yōu)勢(shì):

  • 能夠?qū)崟r(shí)運(yùn)行。
  • 使用掃描命令來(lái)遍歷數(shù)據(jù)庫(kù),因此它對(duì)性能的影響是有限的,但分析的準(zhǔn)確度較高。
  • 有很好的支持文檔,很容易找到使用示例。
  • 支持自定義和篩選功能,包括只分析特定的數(shù)據(jù)類型,或只是考慮與特定模式相匹配的鍵值。
  • 能提供不同級(jí)別的詳細(xì)信息,包括:命名空間、鍵值或全局值。
  • 相對(duì)其他工具,它具有一項(xiàng)特殊的功能:可以顯示數(shù)據(jù)結(jié)構(gòu)的開銷(即,Redis系統(tǒng)用來(lái)存儲(chǔ)與鍵值空間相關(guān)信息的內(nèi)存數(shù)量,例如列表數(shù)據(jù)結(jié)構(gòu)中的指針數(shù)量)。

RMA的劣勢(shì):

  • 不支持概率采樣。對(duì)于大型數(shù)據(jù)庫(kù)來(lái)說(shuō),其線性掃描數(shù)據(jù)庫(kù)的方式可能會(huì)非常緩慢。為了提高性能,我們可以在返回了一定數(shù)量的鍵值后,選擇中止掃描。
  • 輸出中帶有太多的細(xì)節(jié)。雖然對(duì)專家有用,但它也可能給新手帶來(lái)混淆。

2.Redis Sampler 

Redis Sampler是一款非常強(qiáng)大的工具,可以讓我們深入了解Redis實(shí)例的內(nèi)存使用情況。它是由Redis背后的開發(fā)人員antirez(https://github.com/antirez)所維護(hù)。我們能從該工具中看到他對(duì)Redis的深入了解。該工具不常被更新,當(dāng)然也鮮有問(wèn)題報(bào)告被爆出。 

Redis Sampler對(duì)數(shù)據(jù)庫(kù)執(zhí)行的是概率掃描,并能報(bào)告以下的信息:

  • 鍵值在各種數(shù)據(jù)類型之間的百分比分布(基于鍵值的數(shù)量,而不是對(duì)象的大小)。
  • 字符串類型的***鍵,基于strlen,以及它們所消耗的內(nèi)存百分比。
  • 對(duì)于所有其他數(shù)據(jù)類型,它計(jì)算出***鍵、并顯示到兩個(gè)單獨(dú)的列表中:一個(gè)是基于對(duì)象的大小;另一個(gè)是基于對(duì)象的項(xiàng)數(shù)。
  • 對(duì)于每種數(shù)據(jù)類型,它還能顯示“2的冪分布”。這對(duì)于我們了解數(shù)據(jù)類型的大小分布是非常有用的。其輸出能夠詳細(xì)地說(shuō)明給定類型鍵值的百分比區(qū)間,即:> 2^x和 <= 2^x+1。

Redis Sampler的安裝和使用:

由于是一個(gè)單獨(dú)的Ruby腳本,因此它要求Ruby已完成了安裝。同時(shí),您還需要安裝好“rubygems”和“redis gems”。它的用法非常簡(jiǎn)單,只需執(zhí)行命令“./redis-sampler.rb”便可。

Redis Sampler的優(yōu)勢(shì):

  • 非常簡(jiǎn)單易用,沒有查找和需要理解的選項(xiàng)。
  • 即使是新手也很容易讀懂它的輸出。同時(shí),它也能提供足夠多的信息,供技術(shù)專家對(duì)Redis的實(shí)例進(jìn)行詳細(xì)分析。其顯示區(qū)域的布局比較清晰,且能夠進(jìn)行過(guò)濾。
  • 適用于Redis的所有版本。
  • 由于沒有用到任何諸如DEBUG OGJECT的特權(quán)命令,因此它可以被應(yīng)用到包括亞馬遜 ElastiCache在內(nèi)的任何系統(tǒng)之上。
  • 它使用特定數(shù)據(jù)類型長(zhǎng)度的命令來(lái)識(shí)別數(shù)據(jù)大小,因此其報(bào)告并不受序列化的影響。
  • 適用于實(shí)時(shí)數(shù)據(jù)。雖然該工具建議是在環(huán)回接口上運(yùn)行,但其實(shí)它也能支持對(duì)遠(yuǎn)程系統(tǒng)的采樣。

Redis Sampler的劣勢(shì):

  • 如果其采樣頻率的設(shè)置高于數(shù)據(jù)庫(kù)的本身基數(shù)(cardinality),那么它將仍然使用隨機(jī)鍵值(RANDOMKEYS)而不是掃描(SCAN)模式。
  • 沒有現(xiàn)成可用的bundle或Docker的圖像。您必須手動(dòng)安裝其相應(yīng)的依賴項(xiàng)(好在只有兩個(gè)依賴關(guān)系項(xiàng))。
  • 由于數(shù)據(jù)結(jié)構(gòu)有著不同的存儲(chǔ)開銷,因此報(bào)告中的數(shù)據(jù)大小并不能完全匹配RAM上所占用的空間。
  • 如果您的Redis實(shí)例需要身份驗(yàn)證的話,它無(wú)法做到開箱即用(out-of-the-box)。您需要修改腳本以適應(yīng)密碼的需求。最簡(jiǎn)單形式是:redis = Redis.new(:host => ARGV[0], :port => ARGV[1].to_i, :db => ARGV[2].to_i) and change it to: redis = Redis.new(:host => ARGV[0], :port => ARGV[1].to_i, :db => ARGV[2].to_i, :password => "add-your-password-here")

3.RDB Tools 

RDB Tools對(duì)于任何一位苛刻的Redis管理員來(lái)說(shuō)都是非常實(shí)用的工具套件。我們能夠想到的幾乎所有用例,它都有著對(duì)應(yīng)的工具。在此,我們僅關(guān)注它的內(nèi)存分析工具。雖然不像RMA或Redis Sampler那樣全面,但是RDB Tools提供了下面三個(gè)方面的重要信息: 

(1) 列出了所有(序列化)數(shù)值大于B字節(jié)【B由用戶來(lái)指定】的鍵。 

(2) ***的N個(gè)鍵【N由用戶指定】。 

(3) 特定鍵的大小:這是從數(shù)據(jù)庫(kù)中實(shí)時(shí)讀取的。

該套件在GitHub上有許多活躍的貢獻(xiàn)者,因此它能經(jīng)常保持更新。在互聯(lián)網(wǎng)上我們也能找到RDB Tools的相關(guān)文檔。其維護(hù)者是Sripathi Krishnan(https://github.com/sripathikrishnan?tab=repositories)。眾所周知,他多年來(lái)為Redis社區(qū)提供了許多工具。

RDB Tools的安裝和使用:

RDB Tools需要在系統(tǒng)上事先安裝好Python和PIP,兩者一般都被預(yù)安裝在了主流操作的系統(tǒng)之上。安裝完畢后,您可以執(zhí)行一條“pip install rdbtools python-lz”的命令來(lái)安裝RDB工具。

其用法非常簡(jiǎn)單:

  • 獲取前200個(gè)***鍵:rdb -c memory /var/redis/6379/dump.rdb –largest 200 -f memory.csv
  • 獲取所有大于128字節(jié)的鍵值:rdb -c memory /var/redis/6379/dump.rdb --bytes 128 -f memory.csv
  • 獲取鍵值的大小:redis-memory-for-key -s localhost -p 6379 -a mypassword person:1

RDB Tools的優(yōu)勢(shì):

  • 輸出的CSV文件,可被其他開源工具所使用,從而方便地實(shí)現(xiàn)數(shù)據(jù)可視化,同時(shí)也能導(dǎo)入RDBMS中予以分析。
  • 具有良好的支持文檔。
  • 支持自定義和篩選選項(xiàng),您可以籍此獲得更加有用的報(bào)告。

RDB Tools的劣勢(shì):

  • 不能分析實(shí)時(shí)數(shù)據(jù),而且您必須獲取RDB dump文件。因此,它報(bào)告的是序列化內(nèi)存的使用率,并非精確地顯示RAM上所占用的內(nèi)存。
  • 它并不支持任何內(nèi)置的分組,因此無(wú)法找到***的命名空間。

4.Redis-Audit 

Redis-Audit是一種概率工具,您可以用它來(lái)快速地獲知內(nèi)存的使用情況。它能夠輸出各種有用的鍵組信息,包括:總體內(nèi)存消耗、組內(nèi)***TTL、上一次平均訪問(wèn)時(shí)間、組中過(guò)期鍵的百分比等。如果您想找到應(yīng)用中那些大量消耗內(nèi)存的鍵值組,那么它就是您的***工具。

Redis-Audit安裝和使用: 

您必須事先安裝了Ruby和Bundle(https://bundler.io/)。安裝完成之后,您可以將Redis-Audit的存儲(chǔ)庫(kù)(https://github.com/snmaynard/redis-audit.git)克隆到某個(gè)文件夾,或是下載zip工具(https://github.com/snmaynard/redis-audit/archive/master.zip)并解壓縮到那里。在該文件夾中,您可以運(yùn)行“bundle install”來(lái)完成安裝。

它的用法非常簡(jiǎn)單,你可以直接在命令行中輸入“execute”

redis-audit.rb hostname [port] [password] [dbnum] [sample_size]

Redis-Audit的優(yōu)勢(shì):

  • 允許您為鍵值空間和前綴分組定義自己的正則表達(dá)式(regex)。
  • 適用于Redis的所有版本。 

  • 如果樣本的大小大于鍵的實(shí)際數(shù)量,它將遍歷所有的鍵。在另一方面,此操作會(huì)使用*鍵,而不使用掃描來(lái)阻止其他的操作。

Redis-Audit的劣勢(shì):

  • 由于使用了“DEBUG OBJECT”命令(這在ElastiCache中是不可用的),因此它所報(bào)告的序列化大小與RAM上的實(shí)際占用會(huì)有所不同。
  • 由于不是表格的形式,因此其輸出不容易被快速地解析到。

5.Redis Toolkit  

Redis Toolkit是一種極簡(jiǎn)易的監(jiān)視方案。它可以被用于分析兩類關(guān)鍵指標(biāo):***率和內(nèi)存消耗。雖然該項(xiàng)目會(huì)定期通過(guò)更新來(lái)修復(fù)bug,但并沒有社區(qū)去對(duì)它所提供的工具予以支持。

Redis Toolkit的安裝和使用:

 您的系統(tǒng)上必須先安裝好Docker。然后,克隆它的GitHub存儲(chǔ)庫(kù)(https://github.com/alexdicianu/redis_toolkit.git)或下載并解壓到某個(gè)文件夾中。在該文件夾里,您可以通過(guò)執(zhí)行“./redis-toolkit install.”來(lái)完成簡(jiǎn)單的安裝。

以下是一些純命令行的簡(jiǎn)單操作:

  • 開始監(jiān)視***率:./redis-toolkit monitor
  • 報(bào)告***率:./redis-toolkit report -name NAME -type hitrate
  • 停止監(jiān)視***率:./redis-toolkit stop
  • 在本地系統(tǒng)上創(chuàng)建dump文件:./redis-toolkit dump
  • 報(bào)告內(nèi)存使用情況:./redis-toolkit report -type memory -name NAME

Redis Toolkit的優(yōu)勢(shì):

  • 能夠通過(guò)易用的界面,向您提供準(zhǔn)確的信息。
  • 能夠?qū)⑶熬Y分組為任何適合您的級(jí)別(因此,如果選取a:b:1和a:c:1,那么它既可以算作a:*、也可以單獨(dú)計(jì)算)。
  • 適用于Redis的所有版本,同時(shí)不需要訪問(wèn)諸如DEBUG OBJECT之類的特權(quán)命令。
  • 具有良好的支持文檔。

Redis Toolkit的劣勢(shì):

  • 由于它工作在序列化的dump模式,因此無(wú)法進(jìn)行實(shí)時(shí)的內(nèi)容分析。同樣,它報(bào)告的內(nèi)存使用量也并非完全等同于RAM的實(shí)際消耗量。
  • 在Redis Toolkit運(yùn)行時(shí),計(jì)算機(jī)會(huì)創(chuàng)建一個(gè)dump文件。如果您訪問(wèn)的是一個(gè)Redis的遠(yuǎn)程實(shí)例,那么就可能需要一段時(shí)間才能完成。
  • 使用MONITOR命令來(lái)監(jiān)視***率,以捕獲在服務(wù)器上運(yùn)行的所有命令。那么在生產(chǎn)環(huán)境中,這樣可能會(huì)降低性能,并帶來(lái)安全風(fēng)險(xiǎn)。
  • 由于它是通過(guò)|GET| / (|GET| + |SET|)來(lái)計(jì)算***率的,因此如果某個(gè)數(shù)值經(jīng)常發(fā)生變化,就算沒有錯(cuò)過(guò)任何真實(shí)的緩存,那么它的***率也會(huì)有所降低。

6.Harvest

 這是一款概率采樣的工具,它可以被用于根據(jù)鍵的數(shù)量來(lái)識(shí)別十個(gè)***的命名空間和前綴。由于是一款較新的工具,它在GitHub上的關(guān)注度并不高。然而,如果您是一名想找到自己的實(shí)例中哪些應(yīng)用數(shù)據(jù)有擁塞的Redis新手,那么Harvest對(duì)您來(lái)說(shuō)就非常最容易上手。

Harvest的安裝和使用:

您可以通過(guò)鏈接:https://hub.docker.com/r/31z4/harvest/來(lái)下載它的Docker鏡像。一旦鏡像準(zhǔn)備就緒,您就可以在CLI中使用“docker run --link redis:redis -it --rm 31z4/harvest redis://redis-URL”的命令來(lái)運(yùn)行該工具。

Harvest的優(yōu)勢(shì):

  • •適用于實(shí)時(shí)數(shù)據(jù)。
  • •使用“memory usage”命令來(lái)獲取內(nèi)存信息。因此它既能夠提供精確的數(shù)量信息(而不是序列化大小),又不需要訪問(wèn)DEBUG OBJECT的命令。
  • •您的命名空間不需要用冒號(hào)來(lái)區(qū)分開來(lái)。Harvest能夠識(shí)別常見的前綴,而不是依靠正則表達(dá)式來(lái)進(jìn)行命名空間的識(shí)別。

Harvest的劣勢(shì):

  • 很難適用于任何其他類型的用例。
  • 該工具僅適用于Redis v4.0及以上版本。
  • 其支持文檔非常少。

免費(fèi)工具的局限性

雖然我們?cè)诖肆信e的工具對(duì)于調(diào)試Redis實(shí)例的內(nèi)存問(wèn)題非常實(shí)用,但是您也應(yīng)該知道這些免費(fèi)工具的一些局限性。

付費(fèi)工具一般總能提供某些數(shù)據(jù)的可視化功能,但是我們?cè)诖怂信e的工具卻無(wú)法實(shí)現(xiàn)開箱即用。它們頂多給您輸出CSV文件,以供其他開源軟件進(jìn)一步實(shí)現(xiàn)可視化,當(dāng)然許多工具甚至連此類輸出都不具備。這就給Redis的新手用戶帶來(lái)了“陡峭”的學(xué)習(xí)曲線。因此,如果您需要經(jīng)常進(jìn)行內(nèi)存分析的話,那么您***選用能夠提供良好的可視化功能的付費(fèi)工具。

另一個(gè)局限性是它們存儲(chǔ)歷史信息的能力。和那些*nix的設(shè)計(jì)理念一樣,這些工具只專注于某個(gè)方面并能其做到***,但是它們鮮少涉獵整個(gè)監(jiān)控領(lǐng)域。它們既不能提供一段時(shí)間的內(nèi)存消耗曲線圖,也無(wú)法分析實(shí)時(shí)的數(shù)據(jù)。

選擇的底線

雖然單個(gè)工具的確無(wú)法滿足您的所有需求,但是它們可以作為您的“武器庫(kù)”中的常備“武器”,來(lái)配合諸如:ScaleGrid的Redis hosting(https://scalegrid.io/redis/products.html)之類具有監(jiān)控能力的DBaaS服務(wù),來(lái)聯(lián)合使用。

原文標(biāo)題:The Top 6 Free Redis Memory Analysis Tools ,作者: Aparajita Raychaudhury

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:龐桂玉 來(lái)源: 51CTO
相關(guān)推薦

2023-05-05 18:32:04

React開發(fā)工具

2019-07-26 11:13:53

2014-01-08 10:32:17

網(wǎng)絡(luò)分析工具免費(fèi)

2019-11-25 15:54:54

數(shù)據(jù)可視化可視化工具開發(fā)

2024-10-22 14:42:14

2019-10-23 19:27:38

數(shù)據(jù)分析模型分析

2010-08-05 10:38:10

Flex開源項(xiàng)目

2024-02-02 10:26:26

2021-08-11 14:48:32

數(shù)據(jù)分析大數(shù)據(jù)算法

2017-11-07 08:54:06

云存儲(chǔ)技術(shù)系統(tǒng)

2024-10-09 17:22:20

Python庫(kù)

2011-03-16 10:44:19

2013-08-23 10:18:06

Hadoop

2016-07-06 11:16:47

2023-05-11 11:36:56

云計(jì)算云供應(yīng)商

2010-09-09 10:54:58

2023-07-24 11:01:32

2013-07-26 10:54:40

BaaS后端即服務(wù)云存儲(chǔ)

2020-12-31 09:00:00

服務(wù)器工具數(shù)據(jù)分析

2013-08-23 10:42:03

Hadoop
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美日韩精品免费 | 亚洲综合日韩精品欧美综合区 | 国产精品久久久av | 久久99精品久久久久久 | 亚洲欧美视频 | 亚洲欧美精品在线 | 成人午夜在线 | 久久久久中文字幕 | 人人干97| 污污的网站在线观看 | 欧美综合一区 | 欧美综合久久久 | 欧美日韩综合 | 免费在线观看成人av | 中文字幕免费中文 | 成人av高清在线观看 | 亚洲天堂中文字幕 | 成人毛片视频免费 | 国产精品视频网 | 久久精品黄色 | 午夜视频在线 | a视频在线观看 | 在线一级片 | 成人网av | 天天成人综合网 | 精品中文在线 | 日日操日日舔 | 国产成人一区二区 | 成人精品一区二区三区中文字幕 | 国产成人福利视频 | 中文字幕中文字幕 | 在线91 | 日韩欧美视频在线 | 91在线精品一区二区 | a毛片视频网站 | 国产精品中文字幕在线观看 | 免费成人高清在线视频 | 国产精品久久久久无码av | xxx国产精品视频 | 欧美一级二级视频 | 欧美国产在线一区 |