您好,登錄后才能下訂單哦!
Memcache異常超時診斷工具mctop怎么用,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
昨天排查MC連接超時發現,發現同時是一個業務的另一個MC未發現異常,通過監控發現網絡未丟包但兩MC的流量明顯不一致,在連接數基本相同的情況下帶寬出現3倍的差別,可以斷定是業務調用的某個key的value值過大導致的。
好吧,知道原因了該如何定位到哪個key呢?以下是一般的做法:
通過抓包發現調用的頻繁的請求數據包;
通過MC協議分析是否該key值異常過大;
貌似你有點暈了,呵呵,這種方法是很繁瑣,定位原因比較慢,有沒有更好的方法呢?下面就介紹下mctop
mctop是開源的一個檢測工具,依靠ruby的pcap進行抓包分析,該包下載地址 GITHUP https://github.com/etsy/mctop
解壓執行下:
# ./mctop
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- pcap (LoadError)
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from ./../lib/cmdline.rb:2
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from ./mctop:10
通過報錯了解到,需要裝pcap,但發現裝完還是有問題,沒辦法升級下ruby吧,我現在是1.8.7升級至1.9.2下載地址后,需要安裝以下組件
#/usr/local/bin/gem install bundle
#/usr/local/bin/gem install rake
#/usr/local/bin/gem install ruby-pcap
#rm -f /usr/bin/ruby
#ln -s /usr/local/bin/ruby /usr/bin/ruby
再運行下
# ./mctop --help
Usage: mctop [options]
-i, --interface=NIC Network interface to sniff (required)
--host=HOST Network host to sniff on (default all)
-p, --port=PORT Network port to sniff on (default 11211)
-d, --discard=THRESH Discard keys with request/sec rate below THRESH
-r, --refresh=MS Refresh the stats display every MS milliseconds
-h, --help Show usage info
然后趕緊用它監控一下異常的端口:
#./mctop -i eth2 --host=10.x.x.85 -p xxx -r 1000
如下圖
一眼就看到了,是esf-wordfilter__all的值過大占了4m/s的帶寬,通知業務部門優化。
看完上述內容,你們掌握Memcache異常超時診斷工具mctop怎么用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。