程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 啟用MEMCACHE_COMPRESSED壓縮 “擴容”MemCached

啟用MEMCACHE_COMPRESSED壓縮 “擴容”MemCached

編輯:PHP綜合

嘗試:

啟用了PHPmemcache_set()函數中的 MEMCACHE_COMPRESSED壓縮選項,而memcache_get()可以在後續讀取過程中自動對壓縮的緩存對象進行解壓縮。

效果:

測試了一下,對於博客大巴目前的應用來說,啟用壓縮後,相同的容量(2G)存儲的對象數量增加了約一倍,緩存命中率從50%左右,提高到了60%左右。進一步提高命中率硬件投入還是必須的,又增加了2倍的內存後終於做到了緩存命中率提高到90%;

前提0: 內存緩存有用,且命中率值得提升;

從60%提高到90%,還是從90%提高到95%,要看hit後的性能能夠提升是否值得;

前提1:MemCached已經用滿

先用memcached-tool查看一下memcached的容量統計,看memcached是不是已經用滿了。如果充分運行時MemCached的空間尚未用滿,啟用一下壓縮是沒有意義的; 而且:發現沒有用滿的MemCached,最好減少相應MemCached的容量,空余出更多內存給其他服務做緩存;

前提2:壓縮率

緩存的數據的確有大於幾百字節的,如果都是小於100字節的鍵值對,壓縮可能反而帶來膨脹。由於緩存對象的大小在Memcached中都是按照固定大小分塊存儲的,最小也要88 B。所以對於過小數據帶來的壓縮膨脹並不是太大的問題;

前台應用的CPU損耗:

對數據的額外壓縮CPU損耗遠遠低於緩存命中率提升減少後台數據庫訪問帶來的性能提升,和http的gzip/deflate壓縮類似,壓縮後數據一般為原數據大小的30%左右,節省了70%的傳輸性能消耗所得會大於文件壓縮帶來的性能損耗;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved