内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Redis如何采用不同內(nèi)存分配器碎片率對(duì)比

今天小編給大家分享一下redis如何采用不同內(nèi)存分配器碎片率對(duì)比的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

在宿豫等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),營(yíng)銷型網(wǎng)站,成都外貿(mào)網(wǎng)站制作,宿豫網(wǎng)站建設(shè)費(fèi)用合理。

在Redis的 zmalloc.c 源碼中,我們可以看到如下代碼:

/* Explicitly override malloc/free etc when using tcmalloc. */

#if defined(USE_TCMALLOC)

#define malloc(size) tc_malloc(size)

#define calloc(count,size) tc_calloc(count,size)

#define realloc(ptr,size) tc_realloc(ptr,size)

#define free(ptr) tc_free(ptr)

#elif defined(USE_JEMALLOC)

#define malloc(size) je_malloc(size)

#define calloc(count,size) je_calloc(count,size)

#define realloc(ptr,size) je_realloc(ptr,size)

#define free(ptr) je_free(ptr)

#endif

從上面的代碼中我們可以看到,Redis在編譯時(shí),會(huì)先判斷是否使用tcmalloc,如果是,會(huì)用tcmalloc對(duì)應(yīng)的函數(shù)替換掉標(biāo)準(zhǔn)的libc中的函數(shù)實(shí)現(xiàn)。其次會(huì)判斷jemalloc是否使得,最后如果都沒(méi)有使用才會(huì)用標(biāo)準(zhǔn)的libc中的內(nèi)存管理函數(shù)。

而在最新的2.4.4版本中,jemalloc已經(jīng)作為源碼包的一部分包含在源碼包中,所以可以直接被使用。而如果你要使用tcmalloc的話,是需要自己安裝的。

下面簡(jiǎn)單說(shuō)一下如何安裝tcmalloc包,tcmalloc是google-proftools中的一部分,所以我們實(shí)際上需要安裝google-proftools。如果你是在64位機(jī)器上進(jìn)行安裝,需要先安裝其依賴的libunwind庫(kù)。

wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-alpha.tar.gz

tar zxvf libunwind-0.99-alpha.tar.gz

cd libunwind-0.99-alpha/

CFLAGS=-fPIC ./configure

make CFLAGS=-fPIC

make CFLAGS=-fPIC install

Redis怎樣采用不同內(nèi)存分配器碎片率對(duì)比

然后再進(jìn)行g(shù)oogle-preftools的安裝:

wget http://google-perftools.googlecode.com/files/google-perftools-1.8.1.tar.gz

tar zxvf google-perftools-1.8.1.tar.gz

cd google-perftools-1.8.1/

./configure --disable-cpu-profiler --disable-heap-profiler --disable-heap-checker --disable-debugalloc --enable-minimal

make && make install

sudo echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf #如果沒(méi)有這個(gè)文件,自己建一個(gè)

sudo /sbin/ldconfig

然后再進(jìn)行Redis的安裝,在make時(shí)指定相應(yīng)的參數(shù)以啟用tcmalloc

$ curl -O http://redis.googlecode.com/files/redis-2.4.4.tar.gz

$ tar xzvf redis-2.4.4.tar.gz

$ cd redis-2.4.4

$ make USE_TCMALLOC=yes FORCE_LIBC_MALLOC=yes

$ sudo make install

再啟動(dòng)Redis后通過(guò)info命令就能看到使用的內(nèi)存分配器了。

下面回到本文的主題,對(duì)于tcmalloc,jemalloc和libc對(duì)應(yīng)的三個(gè)內(nèi)存分配器。其性能和碎片率如何呢?下面是一個(gè)簡(jiǎn)單測(cè)試結(jié)果,數(shù)據(jù)摘自采用不同分配器時(shí)Redis info信息。我們可以看到,采用tcmalloc時(shí)碎片率是最低的,為1.01,jemalloc為1.02,而libc的分配器碎片率為1.31,如下所未:

used_memory:708391440

used_menory_human:675.57M

used_memory_rss:715169792

used_memory_peak:708814040

used_memory_peak_human:675.98M

mem_fragmentation_ratio:1.01

mem_allocator:tcmalloc-1.7

used_memory:708381168

used_menory_human:675.56M

used_memory_rss:723587072

used_memory_peak:708803768

used_memory_peak_human:675.97M

mem_fragmentation_ratio:1.02

mem_allocator:jemalloc-2.2.1

used_memory:869000400

used_menory_human:828.74M

used_memory_rss:1136689152

used_memory_peak:868992208

used_memory_peak_human:828.74M

mem_fragmentation_ratio:1.31

mem_allocator:libc

以上就是“Redis如何采用不同內(nèi)存分配器碎片率對(duì)比”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁(yè)題目:Redis如何采用不同內(nèi)存分配器碎片率對(duì)比
本文URL:http://www.rwnh.cn/article0/gdohoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、外貿(mào)建站、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
呼伦贝尔市| 闸北区| 巴林右旗| 建德市| 昌邑市| 淮南市| 克什克腾旗| 思南县| 宽甸| 鹤岗市| 沁水县| 崇明县| 简阳市| 永川市| 泰兴市| 仁怀市| 阳新县| 衡水市| 蒙城县| 东安县| 新源县| 遵义县| 河南省| 喀喇| 娱乐| 通江县| 淅川县| 额尔古纳市| 桦川县| 绥滨县| 益阳市| 太仆寺旗| 稻城县| 太原市| 旬阳县| 富宁县| 开封县| 石河子市| 沙洋县| 绥阳县| 九龙坡区|