微吼云上線多路互動直播服務 加速多場景互動直播落地
1190
2025-04-03
本文主要介紹Memcached,Libmemcached和memaslap,然后利用測試工具memaslap對Memcached進行性能測試。
Memcached
Memcached是一種基于libevent的通用的高性能分布式內存對象緩存系統。 它通常用于通過在內存中緩存數據和對象來加速對以動態數據庫驅動的網站的訪問。?Memcached是基于修訂的BSD許可證授權的開源軟件。
memcached是一個高性能的內存緩存對象系統,其實質為一個鍵值對的hashmap索引,其事件處理和網絡通信均是基于libevent。memcached區別于libevent,因為memcached是一個運行程序,不需要編譯成動態連接庫,供其他程序調用。memcached通常作為C/S模型中的S,也就是服務器端,客戶端通過命令緩存數據。
基本特點:
a.?? 協議簡單:使用基于文本行的協議,二進制協議使用比較少。
b.?? 基于內存存儲:數據存儲在內存中,所以讀取速度很快。
c.?? 事件處理:基于libevent開發,所以可以應對C10問題。
d.?? 不互相通信的分布式:多臺memcached服務器之間不互相通信,由客戶端實現分布式算法,所以通常客戶端使用一致性hash策略,通常擁有快隔離,慢恢復的特性。
Libmemcached
memcached通常以服務器的形式運行,雖然稱memcached是分布式數據庫,但是其服務端本身不支持分布式業務,這就需要客戶端自己實現分布管理以及內存池功能。Libmemcached是一個開源的Memcached客戶端庫,其內部實現了分布式管理、內存池等功能。通過API的形式提供出來,使用程序員可以專心上層業務邏輯,避免底層與memcached交互的細節,所以Libmemcached編譯,安裝之后就會以動態庫的方式提供出來給程序員調用。注意鏈表的時候必須指定-lmemcached。
Libmemcached特性:
a.?? 異步和同步傳輸支持。
b.?? 支持一致性hash分布式算法。
c.?? 可調哈希算法來匹配密鑰。
d.?? 訪問大對象支持。
e.?? 本地復制。
f.?? 提供了一些管理memcached服務器的工具命令
memaslap
memaslap是memcache自帶的memslap工具功能更強大的測試工具。memaslap是libmemcached的一個組件,因此需要編譯安裝。首先需要下載libmemcached
利用memaslap對Memcached進行性能測試
1、? 安裝準備
華為云購買一臺鯤鵬服務器(wrk和Tomcat部署在同一臺鯤鵬服務器上,當然也可以部署在不同的服務器上)
本文以云服務器KC1實例搭建,云服務器配置如表1-1所示。
表1-1?云服務器配置
項目
說明
規格
kc1.large.2 | 2vCPUs | 4GB
磁盤
系統盤:高IO(40GB)
操作系統要求如表1-2所示。
表1-2?操作系統要求
項目
說明
-
CentOS
7.6
在公共鏡像中已提供。
Kernel
4.14.0-115
在公共鏡像中已提供。
2、? 部署memcached服務器
鯤鵬社區軟件棧已經有部署文檔,請參考
https://www.huaweicloud.com/kunpeng/software/memcached.html
3、? 啟動memcached服務
./memcached?-d?-m?1024?-u?root ps?–ef?|?grep?memcached
說明:
相關解釋如下:
-d選項是啟動一個守護進程,
-m是分配給Memcache使用的內存數量,單位是MB,這里是1024MB
-u是運行Memcache的用戶,如果當前為 root 的話,需要使用此參數指定用戶。
4、? 安裝memaslap
memaslap是memcache自帶的memslap工具功能更強大的測試工具。memaslap是 libmemcached的一個組件,因此需要編譯安裝。首先需要下載libmemcached。
1)???????? 安裝步驟如下:
wget?https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz tar?-zxvf?libmemcached-1.0.18.tar.gz cd?libmemcached-1.0.18 ./configure?-prefix=/usr/local/libmemcached?--with-memcached?--enable-memaslap make?? make?install
2)???????? 如果安裝過程中會報錯,則通過如下解決
解決辦法:
Try going into the Makefile and adding '-L/lib64 -lpthread' to the variable LDFLAGS.
LDFLAGS變量位于Makefile文件2937行
然后make & make install即可
5、? memaslap測試memcached
輸入如下命令進行測試:
/usr/local/libmemcached/bin/memaslap?-s?127.0.0.1:11211?-t?60s?-T?8
說明:
-s: Server為127.0.0.1:11211? memcached部署在本地,端口為11211
-t: 執行60s
-T: 8個線程
返回結果:
云性能測試服務 CPTS Memcached
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。