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

【推薦】六大免費的Redis內存分析工具

譯文
數據庫 其他數據庫 Redis
在我們需要分析Redis實例的內存使用情況時,市場上有著許多免費的開源工具,同時也有少量的付費產品。如果您想更深層次地分析內存相關問題的話,就可能需要用到一些更具針對性的“獨門”工具了。

【推薦】六大免費的Redis內存分析工具

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

我們在本文中為您推薦了六種實用工具,它們曾被我們用來分析自己的Redis實例。它們分別是:

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

1.Redis Memory Analyzer  

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

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

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

RMA - 全局模式 

在全局模式下,RMA 提供了一些高級別的統計信息,如鍵數、系統內存、駐留集的大小、鍵值空間的大小等。值得一提的是其特殊功能:“鍵值空間開銷”,這是Redis系統用來存儲與鍵值空間相關信息的內存數量,例如列表數據結構中的指針數量。

RMA - 掃描器模式 

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

RMA - RAM模式 

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

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

RMA的安裝和使用:

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

您可以很容易地通過命令行來使用它,其語法為:“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的優勢:

  • 能夠實時運行。
  • 使用掃描命令來遍歷數據庫,因此它對性能的影響是有限的,但分析的準確度較高。
  • 有很好的支持文檔,很容易找到使用示例。
  • 支持自定義和篩選功能,包括只分析特定的數據類型,或只是考慮與特定模式相匹配的鍵值。
  • 能提供不同級別的詳細信息,包括:命名空間、鍵值或全局值。
  • 相對其他工具,它具有一項特殊的功能:可以顯示數據結構的開銷(即,Redis系統用來存儲與鍵值空間相關信息的內存數量,例如列表數據結構中的指針數量)。

RMA的劣勢:

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

2.Redis Sampler 

Redis Sampler是一款非常強大的工具,可以讓我們深入了解Redis實例的內存使用情況。它是由Redis背后的開發人員antirez(https://github.com/antirez)所維護。我們能從該工具中看到他對Redis的深入了解。該工具不常被更新,當然也鮮有問題報告被爆出。 

Redis Sampler對數據庫執行的是概率掃描,并能報告以下的信息:

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

Redis Sampler的安裝和使用:

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

Redis Sampler的優勢:

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

Redis Sampler的劣勢:

  • 如果其采樣頻率的設置高于數據庫的本身基數(cardinality),那么它將仍然使用隨機鍵值(RANDOMKEYS)而不是掃描(SCAN)模式。
  • 沒有現成可用的bundle或Docker的圖像。您必須手動安裝其相應的依賴項(好在只有兩個依賴關系項)。
  • 由于數據結構有著不同的存儲開銷,因此報告中的數據大小并不能完全匹配RAM上所占用的空間。
  • 如果您的Redis實例需要身份驗證的話,它無法做到開箱即用(out-of-the-box)。您需要修改腳本以適應密碼的需求。最簡單形式是: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對于任何一位苛刻的Redis管理員來說都是非常實用的工具套件。我們能夠想到的幾乎所有用例,它都有著對應的工具。在此,我們僅關注它的內存分析工具。雖然不像RMA或Redis Sampler那樣全面,但是RDB Tools提供了下面三個方面的重要信息: 

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

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

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

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

RDB Tools的安裝和使用:

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

其用法非常簡單:

  • 獲取前200個***鍵:rdb -c memory /var/redis/6379/dump.rdb –largest 200 -f memory.csv
  • 獲取所有大于128字節的鍵值: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的優勢:

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

RDB Tools的劣勢:

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

4.Redis-Audit 

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

Redis-Audit安裝和使用: 

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

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

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

Redis-Audit的優勢:

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

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

Redis-Audit的劣勢:

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

5.Redis Toolkit  

Redis Toolkit是一種極簡易的監視方案。它可以被用于分析兩類關鍵指標:***率和內存消耗。雖然該項目會定期通過更新來修復bug,但并沒有社區去對它所提供的工具予以支持。

Redis Toolkit的安裝和使用:

 您的系統上必須先安裝好Docker。然后,克隆它的GitHub存儲庫(https://github.com/alexdicianu/redis_toolkit.git)或下載并解壓到某個文件夾中。在該文件夾里,您可以通過執行“./redis-toolkit install.”來完成簡單的安裝。

以下是一些純命令行的簡單操作:

  • 開始監視***率:./redis-toolkit monitor
  • 報告***率:./redis-toolkit report -name NAME -type hitrate
  • 停止監視***率:./redis-toolkit stop
  • 在本地系統上創建dump文件:./redis-toolkit dump
  • 報告內存使用情況:./redis-toolkit report -type memory -name NAME

Redis Toolkit的優勢:

  • 能夠通過易用的界面,向您提供準確的信息。
  • 能夠將前綴分組為任何適合您的級別(因此,如果選取a:b:1和a:c:1,那么它既可以算作a:*、也可以單獨計算)。
  • 適用于Redis的所有版本,同時不需要訪問諸如DEBUG OBJECT之類的特權命令。
  • 具有良好的支持文檔。

Redis Toolkit的劣勢:

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

6.Harvest

 這是一款概率采樣的工具,它可以被用于根據鍵的數量來識別十個***的命名空間和前綴。由于是一款較新的工具,它在GitHub上的關注度并不高。然而,如果您是一名想找到自己的實例中哪些應用數據有擁塞的Redis新手,那么Harvest對您來說就非常最容易上手。

Harvest的安裝和使用:

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

Harvest的優勢:

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

Harvest的劣勢:

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

免費工具的局限性

雖然我們在此列舉的工具對于調試Redis實例的內存問題非常實用,但是您也應該知道這些免費工具的一些局限性。

付費工具一般總能提供某些數據的可視化功能,但是我們在此所列舉的工具卻無法實現開箱即用。它們頂多給您輸出CSV文件,以供其他開源軟件進一步實現可視化,當然許多工具甚至連此類輸出都不具備。這就給Redis的新手用戶帶來了“陡峭”的學習曲線。因此,如果您需要經常進行內存分析的話,那么您***選用能夠提供良好的可視化功能的付費工具。

另一個局限性是它們存儲歷史信息的能力。和那些*nix的設計理念一樣,這些工具只專注于某個方面并能其做到***,但是它們鮮少涉獵整個監控領域。它們既不能提供一段時間的內存消耗曲線圖,也無法分析實時的數據。

選擇的底線

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

原文標題:The Top 6 Free Redis Memory Analysis Tools ,作者: Aparajita Raychaudhury

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2023-05-05 18:32:04

React開發工具

2019-07-26 11:13:53

2014-01-08 10:32:17

網絡分析工具免費

2019-11-25 15:54:54

數據可視化可視化工具開發

2024-10-22 14:42:14

2010-08-05 10:38:10

Flex開源項目

2019-10-23 19:27:38

數據分析模型分析

2024-02-02 10:26:26

2021-08-11 14:48:32

數據分析大數據算法

2017-11-07 08:54:06

云存儲技術系統

2024-10-09 17:22:20

Python

2013-08-23 10:42:03

Hadoop

2022-01-23 10:44:39

零信任網絡安全網絡攻擊

2023-08-31 22:12:51

低代碼隱患技術

2021-08-12 14:31:52

邊緣計算云計算數據

2011-03-16 10:44:19

2013-08-23 10:18:06

Hadoop

2016-07-06 11:16:47

2010-09-09 10:54:58

2023-07-24 11:01:32

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区二区三区乱码在线 | 日本高清在线一区 | 午夜影院操 | 亚洲视频三 | 欧美精品一区三区 | 全部免费毛片在线播放网站 | 久久影院一区 | 成人在线免费网站 | 欧美中文一区 | 国产精品免费看 | 夜夜草天天草 | 亚洲精品久久 | www日韩欧美| 全免费a级毛片免费看视频免 | 成年人在线视频 | 国产精品久久久久久久久动漫 | 欧美视频第三页 | 中文字幕综合在线 | 亚洲网在线 | 一级国产精品一级国产精品片 | 秋霞a级毛片在线看 | 国产精品99久久久久久久vr | 国产一区二区不卡 | 亚洲精选一区 | 99精品视频免费在线观看 | 亚洲人成人一区二区在线观看 | 蜜臀久久99精品久久久久野外 | 男人的天堂久久 | 久久国产亚洲 | 91视频在线网站 | 久久国产精品免费一区二区三区 | 日韩精品1区2区3区 爱爱综合网 | 久久久涩| 在线观看成人 | 亚洲成人av在线播放 | 国产91在线 | 中日 | 全部免费毛片在线播放网站 | 中文字幕在线第二页 | 亚洲精品一区中文字幕乱码 | а√中文在线8 | 亚洲一区三区在线观看 |