日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转载]Memcache内存临界测试

發布時間:2024/4/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载]Memcache内存临界测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:馬江濤

時間:2010-08-19

前言

此文檔幫助您了解 memcache 在保存數據時,假如要保存的數據量接近 memcache 指定的最大內存時,memcache 是怎樣進行數據存儲的,以及怎樣盡可能的提高 memcache 的命中率。

關鍵詞:memcache 、臨界、內存、memcache.php、LRU、監控

?

1 測試目的

探究 memcache 保存數據時,在保存的數據量接近 memcache 指定內存臨界時,保存規律是怎樣的?

?

2 測試環境

?

軟件

版本號

說明

php

php-5.3.3

?

memcache

memcached Server 1.2.1

最大內存設置為 128M

apache

2.2.16

?

memcache.php

?

一個開源的 php腳本

?

3 測試用例

定義變量 i 0 3853628增加(一個 key value占據的空間約 50 bytes
設置 Key為:hello+i
設置 Value為:第 i個我

循環插入鍵值數

4 測試結果

1) 幾個截圖及說明如下

1》放入第 1986718 個對象后,內存消耗 77.8M(占 memcache 指定最大內存 60.8%)

?

?

2》放入2880657 個對象后,內存消耗78.1m(占memcache 指定最大內存61.0%)

?

3》放入3853630 個對象后,內存消耗78.1m(占memcache 指定最大內存61.0%)

以上三個圖示說明,插入的數據如果大小變化不是很大時,memcache 中的數據存儲到一定的時候(占總內存60%左右時),不再消耗內存

?

3) 此時獲取緩存中的數據


獲取hello1 得到 null


獲取hello1926814 得到 null 4/8 位置的數據


獲取hello2408518 得到 null 5/8 位置的數據


獲取hello2890221 得到 第2890221 個我 6/8 位置的數據


獲取hello3853628 得到 第3853628 個我

?

以上數據說明,在上述情況下,內存消耗到60%左右時,memcache 就開始執行LRU 機制了。

?

原因分析:


1 memcached 中新的value 過來存放的地址是該value 的大小決定的,value 總是會被選擇存放到chunk 與其最接近的一個slab 中,假如已經沒有合適的chunk 了,那就開始LRU 了。所以,可見memcached 的LRU 不是全局
的,而是針對slab 的,是區域性的。


2 memcached 的內存分配采用的是預分配方式,為了獲得更快的速度,不得不以空間換時間。所以在如上情況下(插入的數據大小變化不是很大時),在內存消耗耗到60%左右時開始啟用LRU 機制。其余的40%在這種場合,基本等于是浪費掉的。

?

3 要提高memcached 的命中率,可以通過預估我們的value 大小,然后適當的調整增長因子來實現。(通過調整增長因子 –f 1.1 表示chunk 按照1.1 倍的速度增長,可以盡可能多的擁有某種大小的chunk)


注:
memcache 的數據存儲時有3 個概念:1》 slab, 2》 page, 3》 chunk


一個memcahced 進程會預先將自己劃分為若干個slab,每個slab 下又有若干個page,每個page 下又有多個chunk。Slab 的數量是有限的,幾個,十幾個,或者幾十個,這個跟進程配置的內存有關。而每個slab 下得page 默認情況是1m,也就是說如果一個slab 占用100m 得內存得話,那么默認情況下這個slab 所擁有得page 的個數就是100,而chunk 就是數據存放的最終地方。

?

?

轉載于:https://www.cnblogs.com/jiunadianshi/articles/2429125.html

總結

以上是生活随笔為你收集整理的[转载]Memcache内存临界测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。