九九精品久久久久久久久|亚洲福利精品一区二区三区|国产精品自产拍在线观看免费|日韩在线播放欧美字幕

游客 你可以選擇到 登錄 注冊帳號 忘記密碼?
  • 服務(wù)熱線(xiàn):
    13999268016
haisql_memcache_1.0.35性能測試
來(lái)源:未知 | 發(fā)布時(shí)間:2017-12-27 | 瀏覽次數:

Haisql_memcache性能測試報告
        目前版本的 Haisql_memcache 新功能方面沒(méi)有新增,但是性能優(yōu)化后,有不少提高,版本號1.0.35主要是優(yōu)化了內存分配機制,對于最常見(jiàn)的變量std::string,std::shared_ptr<std:;string>等等都定義了自己的更高效率的內置資源池,實(shí)現更好的內存分配器和內存回收機制,第2個(gè)就是將各變量組合排列,將同時(shí)變化的放到一起,提高CPU cacheline的效率,第3個(gè)就是將網(wǎng)絡(luò )層boost asio中的函數盡量使用更接近底層的調用函數receive/send等,減少調用的層次等等辦法。
        目前查詢(xún)性能已經(jīng)比 memcached 原生版本高64%,測試方法和測試軟件都是官方的 memcslap( ubuntu自帶安裝包 ) 。本機測試的時(shí)候,打開(kāi) top 可以明顯看到服務(wù)器軟件 haisql_memcache 比測試軟件memcslap消耗的CPU資源小得多,說(shuō)明了服務(wù)器端代碼的效率確實(shí)是非常高。
一.與memcached性能對比的測試方法與結果
運行服務(wù)器
1) 運行 memcached, 需要指定8192M內存, 以便可以測試百萬(wàn)以上的數據量, 指定端口號是1983,命令如下:
         memcached -m 8192 -p 1983
2) 我們的程序是動(dòng)態(tài)申請內存,因此,不需要指定預先分配的內存量, 直接運行就可以了,啟動(dòng)運行服務(wù)器命令如下:
        ./haisql_memcache_chinese
我們的軟件默認運行端口是1971
每次測試后需要清理運行環(huán)境, memcached直接ctrl_C退出就可以了.
我們的軟件因為退出時(shí)默認自動(dòng)保存內存數據, 因此,需要在退出程序后,執行 rm *.txt;sync;sync 清理掉自動(dòng)保存的數據, 相當于清空全部數據,這樣下次啟動(dòng)時(shí)就是空數據表了.
2.使用 memcslap的測試情況
1)先測試 讀性能
        測試軟件自動(dòng)寫(xiě)入1萬(wàn)條記錄, 然后測試讀取900萬(wàn)次, 我們的軟件執行時(shí)間是23.631秒, memcache執行時(shí)間是38.828秒, 我們的軟件比memcache快64%.
      我們的軟件讀性能如下: 讀4.1Kbyte的數據包大小, 4核8線(xiàn)程3.4G主頻DDR3內存, 讀900萬(wàn)次數據, 900并發(fā), 花費時(shí)間 23.631秒, 讀性能38萬(wàn)QPS。
讀性能 測試結果:
第1次是memcached的測試結果, 第2次是我們的軟件測試結果
guo@guo-desktop:~$ memcslap --concurrency=900  --servers=127.0.0.1:1983 --test=get
    Threads connecting to servers 900
    Took 38.828 seconds to read data

guo@guo-desktop:~$ memcslap --concurrency=900  --servers=127.0.0.1:1971 --test=get
    Threads connecting to servers 900
    Took 23.631 seconds to read data
2)測試 寫(xiě)性能 
   測試軟件測試寫(xiě)入100萬(wàn)條記錄, 我們的軟件執行時(shí)間是3.136秒, memcache執行時(shí)間是4.078秒, 我們的軟件比memcache快30%.
   我們的軟件寫(xiě)性能如下: 寫(xiě)4.1Kbyte的數據包大小, 4核8線(xiàn)程3.4G主頻DDR3內存, 寫(xiě)100萬(wàn)次數據, 100并發(fā), 花費時(shí)間3.136秒, 寫(xiě)性能32萬(wàn)TPS.
寫(xiě)性能 測試結果:
第1次是memcached的測試結果, 第2次是我們的軟件測試結果
guo@guo-desktop:~$ memcslap --concurrency=100  --servers=127.0.0.1:1983
    Threads connecting to servers 100
    Took 4.078 seconds to load data
 
guo@guo-desktop:~$ memcslap --concurrency=100  --servers=127.0.0.1:1971
    Threads connecting to servers 100
    Took 3.136 seconds to load data
二.redis性能對比的測試方法與結果
     由于redis只支持單核,不支持多核,為了與redis的性能做比較,專(zhuān)門(mén)找了一臺雙核的機器,Intel(R) Pentium(R) CPU G3258 @ 3.20GHz,
     本機127.0.0.1測試,  相當于一個(gè)CPU用于測試,一個(gè)CPU用于服務(wù)器, 以便測試對比一下與Redis的單核性能對比.
     單核查詢(xún)性能還是比redis更快, 先插入10000條記錄,900連接,每連接10000次查詢(xún),總共測試900萬(wàn)次查詢(xún),每次查詢(xún)value包大小4096字節,redis花費93.46秒, 我們的軟件花費63.792秒, 測試方法都是官方的測試軟件,我們的單核性能比redis的單核性能快 46.5%.
測試情況如下:
guo@guo-desktop2:~$ redis-cli 
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> quit
guo@guo-desktop2:~$ 
guo@guo-desktop2:~$ 
guo@guo-desktop2:~$ redis-benchmark -t set -n 10000 -r 10000 -d 4096 -c 100
====== SET ======
  10000 requests completed in 0.08 seconds
  100 parallel clients
  4096 bytes payload
  keep alive: 1

91.61% <= 1 milliseconds
99.99% <= 2 milliseconds
100.00% <= 2 milliseconds
125000.00 requests per second

guo@guo-desktop2:~$ redis-benchmark -t get -n 9000000 -r 10000 -d 4096 -c 900
====== GET ======
  9000000 requests completed in 93.46 seconds
  900 parallel clients
  4096 bytes payload
  keep alive: 1

 0.00% <= 4 milliseconds
 65.86% <= 5 milliseconds
 72.01% <= 6 milliseconds
 72.98% <= 7 milliseconds
 73.56% <= 8 milliseconds
 97.70% <= 9 milliseconds
 99.45% <= 10 milliseconds
 99.72% <= 11 milliseconds
 99.80% <= 12 milliseconds
 99.97% <= 13 milliseconds
 100.00% <= 14 milliseconds
 100.00% <= 14 milliseconds
 96294.80 requests per second

guo@guo-desktop2:~$ memcslap --concurrency=900 --servers=127.0.0.1:1971 --test=get
    Threads connecting to servers 900
    Took 63.792 seconds to read data
?
?
?上一篇:沒(méi)有了
?下一篇:沒(méi)有了
咨詢(xún)熱線(xiàn):13999268016
地址:新疆維吾爾自治區烏魯木齊市水磨溝區南湖東路77號新疆上??萍己献骰匕藢?01室 固話(huà):6583723