99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋果6袋
6
麥子學(xué)院

詳解MemCache指令

發(fā)布時間:2016-08-20 22:42  回復(fù):0  查看:2987   最后回復(fù):2016-08-20 22:42  

學(xué)習(xí)MemCache的都知道,已知MemCache的某個節(jié)點,直接telnet過去,就可以使用各種命令操作MemCache了,下面學(xué)習(xí)MemCache的幾種命令:

命    令

作    用

get

返回Key對應(yīng)的Value值

add 

添加一個Key值,沒有則添加成功并提示STORED,有則失敗并提示NOT_STORED

set 

 無條件地設(shè)置一個Key值,沒有就增加,有就覆蓋,操作成功提示STORED

replace 

按照相應(yīng)的Key值替換數(shù)據(jù),如果Key值不存在則會操作失敗 

stats

返回MemCache通用統(tǒng)計信息(下面有詳細解讀)

stats items

返回各個slab中item的數(shù)目和最老的item的年齡(最后一次訪問距離現(xiàn)在的秒數(shù))

stats slabs

返回MemCache運行期間創(chuàng)建的每個slab的信息(下面有詳細解讀)

version

返回當(dāng)前MemCache版本號

flush_all

清空所有鍵值,但不會刪除items,所以此時MemCache依舊占用內(nèi)存

quit

關(guān)閉連接

 

stats指令解讀

stats是一個比較重要的指令,用于列出當(dāng)前MemCache服務(wù)器的狀態(tài),拿一組數(shù)據(jù)舉個例子:

 

STAT pid 1023STAT uptime 21069937STAT time 1447235954STAT version 1.4.5STAT pointer_size 64STAT rusage_user 1167.020934STAT rusage_system 3346.933170STAT curr_connections 29STAT total_connections 21STAT connection_structures 49STAT cmd_get 49STAT cmd_set 7458STAT cmd_flush 0STAT get_hits 7401STAT get_misses 57..(delete、incr、decr、cas的hits和misses數(shù),cas還多一個badval)

STAT auth_cmds 0STAT auth_errors 0STAT bytes_read 22026555STAT bytes_written 8930466STAT limit_maxbytes 4134304000STAT accepting_conns 1STAT listen_disabled_num 0STAT threads 4STAT bytes 151255336STAT current_items 57146STAT total_items 580656STAT evicitions 0

 

這些參數(shù)反映著MemCache服務(wù)器的基本信息,它們的意思是:

 

參  數(shù)  名

作      用

pid

MemCache服務(wù)器的進程id 

uptime

服務(wù)器已經(jīng)運行的秒數(shù)

time

服務(wù)器當(dāng)前的UNIX時間戳 

version

MemCache版本 

pointer_size

當(dāng)前操作系統(tǒng)指針大小,反映了操作系統(tǒng)的位數(shù),64意味著MemCache服務(wù)器是64位的 

rusage_user

進程的累計用戶時間 

rusage_system 

進程的累計系統(tǒng)時間 

curr_connections 

 當(dāng)前打開著的連接數(shù)

total_connections 

 當(dāng)服務(wù)器啟動以后曾經(jīng)打開過的連接數(shù)

connection_structures 

服務(wù)器分配的連接構(gòu)造數(shù) 

cmd_get 

get命令總請求次數(shù) 

cmd_set

set命令總請求次數(shù) 

cmd_flush 

flush_all命令總請求次數(shù) 

get_hits 

總命中次數(shù),重要,緩存最重要的參數(shù)就是緩存命中率,以get_hits / (get_hits + get_misses)表示,比如這個緩存命中率就是99.2% 

get_misses 

總未命中次數(shù) 

auth_cmds 

認(rèn)證命令的處理次數(shù) 

auth_errors 

認(rèn)證失敗的處理次數(shù) 

bytes_read 

總讀取的字節(jié)數(shù)

bytes_written 

總發(fā)送的字節(jié)數(shù) 

 limit_maxbytes

分配給MemCache的內(nèi)存大?。▎挝粸樽止?jié)) 

accepting_conns 

是否已經(jīng)達到連接的最大值,1表示達到,0表示未達到

listen_disabled_num 

統(tǒng)計當(dāng)前服務(wù)器連接數(shù)曾經(jīng)達到最大連接的次數(shù),這個次數(shù)應(yīng)該為0或者接近于0,如果這個數(shù)字不斷增長, 就要小心我們的服務(wù)了

threads 

當(dāng)前MemCache總線程數(shù),由于MemCache的線程是基于事件驅(qū)動機制的,因此不會一個線程對應(yīng)一個用戶請求 

bytes 

當(dāng)前服務(wù)器存儲的items總字節(jié)數(shù)

current_items 

當(dāng)前服務(wù)器存儲的items總數(shù)量 

total_items 

自服務(wù)器啟動以后存儲的items總數(shù)量 

 

stats slab指令解讀

 

如果對上面的MemCache存儲機制比較理解了,那么我們來看一下各個slab中的信息,還是拿一組數(shù)據(jù)舉個例子:

 

 STAT1:chunk_size 96 
 ... 
 STAT 2:chunk_size 144 
 STAT 2:chunks_per_page 7281 
 STAT 2:total_pages 7 
 STAT 2:total_chunks 50967 
 STAT 2:used_chunks 45197 
 STAT 2:free_chunks 1 
 STAT 2:free_chunks_end 5769
 STAT 2:mem_requested 6084638
 STAT 2:get_hits 48084
 STAT 2:cmd_set 59588271
 STAT 2:delete_hits 0
 STAT 2:incr_hits 0
 STAT 2:decr_hits 0
 STAT 2:cas_hits 0
 STAT 2:cas_badval 0
 ...
 STAT 3:chunk_size 216
 ...

 

首先看到,第二個slab的chunk_size(144)/第一個slab的chunk_size(96)=1.5,第三個slab的chunk_size(216)/第二個slab的chunk_size(144)=1.5,可以確定這個MemCache的增長因子是1.5,chunk_size以1.5倍增長。然后解釋下字段的含義:

 

參  數(shù)  名

作      用

chunk_size

當(dāng)前slab每個chunk的大小,單位為字節(jié)

chunks_per_page

每個page可以存放的chunk數(shù)目,由于每個page固定為1M即1024*1024字節(jié),所以這個值就是(1024*1024/chunk_size)

total_pages

分配給當(dāng)前slab的page總數(shù)

total_chunks

當(dāng)前slab最多能夠存放的chunk數(shù),這個值是total_pages*chunks_per_page

used_chunks

已經(jīng)被分配給存儲對象的chunks數(shù)目

free_chunks

曾經(jīng)被使用過但是因為過期而被回收的chunk數(shù)

free_chunks_end

新分配但還沒有被使用的chunk數(shù),這個值不為0則說明當(dāng)前slab從來沒有出現(xiàn)過容量不夠的時候

mem_requested

當(dāng)前slab中被請求用來存儲數(shù)據(jù)的內(nèi)存空間字節(jié)總數(shù),(total_chunks*chunk_size)-mem_requested表示有多少內(nèi)存在當(dāng)前slab中是被閑置的,這包括未用的slab+使用的slab中浪費的內(nèi)存

get_hits

當(dāng)前slab中命中的get請求數(shù)

cmd_set

當(dāng)前slab中接收的所有set命令請求數(shù)

delete_hits

當(dāng)前slab中命中的delete請求數(shù)

incr_hits

當(dāng)前slab中命中的incr請求數(shù)

decr_hits

當(dāng)前slab中命中的decr請求數(shù)

cas_hits

當(dāng)前slab中命中的cas請求數(shù)

cas_badval

當(dāng)前slab中命中但是更新失敗的cas請求數(shù)

看到這個命令的輸出量很大,所有信息都很有作用。舉個例子吧,比如第一個slab中使用的chunks很少,第二個slab中使用的chunks很多,這時就可以考慮適當(dāng)增大MemCache的增長因子了,讓一部分?jǐn)?shù)據(jù)落到第一個slab中去,適當(dāng)平衡兩個slab中的內(nèi)存,避免空間浪費。

 

 

文章來自:五月的倉頡

您還未登錄,請先登錄

熱門帖子

最新帖子

?