游客 你可以选择到 登录 注册帐号 忘记密码?
  • 服务热线:
    13999268016
您现在的位置:首页主页 > 应用案例与测试 > 测试报告 >
haisql_memcache_1.0.35性能测试
来源:未知 | 发布时间:2017-12-27 | 浏览次数:

Haisql_memcache性能测试报告
        目前版本的 Haisql_memcache 新功能方面没有新增,但是性能优化后,有不少提高,版本号1.0.35主要是优化了内存分配机制,对于最常见的变量std::string,std::shared_ptr<std:;string>等等都定义了自己的更高效率的内置资源池,实现更好的内存分配器和内存回收机制,第2个就是将各变量组合排列,将同时变化的放到一起,提高CPU cacheline的效率,第3个就是将网络层boost asio中的函数尽量使用更接近底层的调用函数receive/send等,减少调用的层次等等办法。
        目前查询性能已经比 memcached 原生版本高64%,测试方法和测试软件都是官方的 memcslap( ubuntu自带安装包 ) 。本机测试的时候,打开 top 可以明显看到服务器软件 haisql_memcache 比测试软件memcslap消耗的CPU资源小得多,说明了服务器端代码的效率确实是非常高。
一.与memcached性能对比的测试方法与结果
运行服务器
1) 运行 memcached, 需要指定8192M内存, 以便可以测试百万以上的数据量, 指定端口号是1983,命令如下:
         memcached -m 8192 -p 1983
2) 我们的程序是动态申请内存,因此,不需要指定预先分配的内存量, 直接运行就可以了,启动运行服务器命令如下:
        ./haisql_memcache_chinese
我们的软件默认运行端口是1971
每次测试后需要清理运行环境, memcached直接ctrl_C退出就可以了.
我们的软件因为退出时默认自动保存内存数据, 因此,需要在退出程序后,执行 rm *.txt;sync;sync 清理掉自动保存的数据, 相当于清空全部数据,这样下次启动时就是空数据表了.
2.使用 memcslap的测试情况
1)先测试 读性能
        测试软件自动写入1万条记录, 然后测试读取900万次, 我们的软件执行时间是23.631秒, memcache执行时间是38.828秒, 我们的软件比memcache快64%.
      我们的软件读性能如下: 读4.1Kbyte的数据包大小, 4核8线程3.4G主频DDR3内存, 读900万次数据, 900并发, 花费时间 23.631秒, 读性能38万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)测试 写性能 
   测试软件测试写入100万条记录, 我们的软件执行时间是3.136秒, memcache执行时间是4.078秒, 我们的软件比memcache快30%.
   我们的软件写性能如下: 写4.1Kbyte的数据包大小, 4核8线程3.4G主频DDR3内存, 写100万次数据, 100并发, 花费时间3.136秒, 写性能32万TPS.
写性能 测试结果:
第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的性能做比较,专门找了一台双核的机器,Intel(R) Pentium(R) CPU G3258 @ 3.20GHz,
     本机127.0.0.1测试,  相当于一个CPU用于测试,一个CPU用于服务器, 以便测试对比一下与Redis的单核性能对比.
     单核查询性能还是比redis更快, 先插入10000条记录,900连接,每连接10000次查询,总共测试900万次查询,每次查询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
 
 
 上一篇:没有了
 下一篇:没有了
咨询热线:13999268016
地址:新疆维吾尔自治区乌鲁木齐市水磨沟区南湖东路77号新疆上海科技合作基地八层801室 固话:6583723
返回首页 | 网站地图 | 联系我们
技术支持:创世网络
乌鲁木齐云山云海信息技术有限责任公司 版权所有 备案号:新ICP备17001390号
新公网安备 65010502000200号
网站访问人数: