資源描述:
《Memcached內(nèi)存分析、調(diào)優(yōu)、集群》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Memcached內(nèi)存分析、調(diào)優(yōu)、集群劉中兵搜狐TPCv12010/12/12lzbbox@hotmail.com導(dǎo)航1.Memcached背景2.Memcached使用:安裝、啟動(dòng)、命令、統(tǒng)計(jì)3.深入Memcached內(nèi)部:slab、page、item4.Memcached分布式:一致性Hash5.key-value系統(tǒng)比較:集群、性能對比6.Memcached客戶端1.Memcached背景Memcached是什么memcached由LiveJournal運(yùn)營人員開發(fā)memcached是高性能的分布式內(nèi)存緩存服務(wù)器,開源協(xié)議簡單基于libevent
2、時(shí)間處理:epoll/kqueue內(nèi)置內(nèi)存存儲(chǔ)方式:slab/LRU目前用戶LiveJournalFacebookmixiDiggWikipediaVoxfacebook200memcachedservers16GB四核AMD643TBcachedataMemcached支持語言C/C++libmemcachedlibmemcacheapr_memcachememcaheclientlibketamaPHPPECL/memcachedPECL/memcachePHPlibmemcachedJavaspymemcachedJavamemcachedcli
3、ent/dangamemcache-client-forjava/taobaoPythonRubyPerl.NETMySQLPostgreSQLErlangLuaLisp參考:http://code.google.com/p/memcached/wiki/Clients2.使用Memcached安裝啟動(dòng)命令統(tǒng)計(jì)安裝基于libevent事件處理機(jī)制http://www.monkey.org/~provos/libevent/./configure--prefix=/usr/localmakesudomakeinstallmemcached:http://
4、memcached.org/./configure--with-libevent=/usr/localmakemakeinstall安裝成功memcached-h主要啟動(dòng)參數(shù)啟動(dòng)方式:-d以守護(hù)程序(daemon)方式運(yùn)行-uroot指定用戶,如果當(dāng)前為root,需要使用此參數(shù)指定用戶-P/tmp/a.pid保存PID到指定文件內(nèi)存設(shè)置:-m1024數(shù)據(jù)內(nèi)存數(shù)量,不包含memcached本身占用,單位為MB-M內(nèi)存不夠時(shí)禁止LRU,報(bào)錯(cuò)-n48初始chunk=key+suffix+value+32結(jié)構(gòu)體,默認(rèn)48字節(jié)-f1.25增長因子,默認(rèn)1.25-
5、L啟用大內(nèi)存頁,可以降低內(nèi)存浪費(fèi),改進(jìn)性能連接設(shè)置:-l127.0.0.1監(jiān)聽的IP地址,本機(jī)可以不設(shè)置此參數(shù)-p11211TCP端口,默認(rèn)為11211,可以不設(shè)置-U11211UDP端口,默認(rèn)為11211,0為關(guān)閉并發(fā)設(shè)置:-c1024最大并發(fā)連接數(shù),默認(rèn)1024,最好是200-t4線程數(shù),默認(rèn)4。由于memcached采用NIO,所以更多線程沒有太多作用-R20每個(gè)event連接最大并發(fā)數(shù),默認(rèn)20-C禁用CAS命令(可以禁止版本計(jì)數(shù),減少開銷)例如:/usr/local/bin/memcached-d-unobody-m1024-p11210-l
6、10.11.12.70-P/opt/memcached/pid/m11210.piddaemontools啟動(dòng)工具memcached有可能會(huì)死掉(mixi.jp經(jīng)驗(yàn))監(jiān)視memcached進(jìn)程并自動(dòng)啟動(dòng)啟動(dòng)腳本樣例:run.sh參考:http://cr.yp.to/daemontools.html#!/bin/shif[f/etc/sysconfig/memcached];then./etc/sysconfig/memcachedfiexec2>&1execmemcachedp$PORTu$USERm$CACHESIZEc$MAXCONN$OPTION
7、Smemcached調(diào)試-v+輸出error/warning-vv+輸出命令/響應(yīng)-vvv+輸出內(nèi)部狀態(tài)[@10_10_82_80~]#memcached-d-uroot-m1024-p11210-vvv[@10_10_82_80~]#memcached-d-uroot-m1024-p11211–vvvslabclass1:chunksize96perslab10922slabclass2:chunksize120perslab8738......slabclass42:chunksize1048576perslab1<36serverlistenin
8、g(auto-negotiate)<37sendbufferwas126976,now2684