Python的memcached客户端测试

主要目的是测试python的三个memcached client的性能

分别是python-memcached   1.43 和cmemcache 0.95(libmemcache-1.4.0.rc2 with patch ) 还有 python-libmemcached 0.13.1(libmemcached 0.26)

服务器信息
CPU:Intel(R) Xeon(R) CPU E5405  @ 2.00GHz
内存:4GB

 

Python版本:2.5.3c1

memcached:1.2.6

Linux:RedHat AS 4 (32bit) / 2.6.9-78.ELsmp



测试数据1,000,000条,key & value均是从1到1000000,写入前均重启memcached

启动参数:memcached -u memcached -d -m 128 -p 11211

 

1,000,000条数据占用内存:60777780 bytes

分别用python的单线程和多线程来测试读写memcached的速度

(一)Python单线程:
①python-memcached

write:66.30s

read:74.20s


②cmemcache

write:45.67s

read:42.16s

 

python-libmemcached

write:45.51s

read:42.91s


(二)Python多线程:

 

此处我将100万条数据分给4个线程处理

#threadName是0~3,四个整数
l = [ str(i) for i in xrange(self.threadName * 250000, (self.threadName + 1) * 250000)] 

 

①python-memcached

write:

___Thread(0) Used: 69.513560056686401
___Thread(1) Used: 74.226099967956543
___Thread(2) Used: 75.597586154937744
___Thread(3) Used: 76.586071014404297

 

read:

___Thread(2) Used: 79.42231011390686
___Thread(3) Used: 82.816195011138916
___Thread(1) Used: 83.262571096420288
___Thread(0) Used: 83.155163049697876

 

②cmemcache

write:
___Thread(0) Used: 22.632564783096313
___Thread(1) Used: 22.02928900718689
___Thread(2) Used: 22.382982969284058
___Thread(3) Used: 22.598598957061768

 

read:

___Thread(1) Used: 20.166458129882812
___Thread(2) Used: 20.590478897094727
___Thread(0) Used: 20.807707786560059
___Thread(3) Used: 20.396129846572876

 

python-libmemcached

write:

___Thread(1) Used: 11.283051013946533

___Thread(2) Used: 11.512333869934082

___Thread(0) Used: 10.283640146255493
___Thread(3) Used: 21.939767837524414

 

read:

___Thread(3) Used: 9.5806050300598145
___Thread(0) Used: 9.6075308322906494
___Thread(2) Used: 9.7577638626098633
___Thread(1) Used: 10.605507850646973

 

总结:

    python-memcached奇怪的是,在多线程的时候,效率比它单线程要差很多,cmemcache与python-libmemcached单线程的时候几乎没有差别,但在多线程的时候,使用python-libmemcached编写的测试脚本中的四个线程不是同时执行,造成多线程测试脚本执行时间与单线程脚本的执行时间差不多,不知道为什么。使用cmemcache与python-memcached编写的脚本中的四个线程几乎同时开始,并且同时结束,脚本执行时间就是速度最慢的线程的时间。

 

  • cmemcache是python首选的memcache client,不过它依赖的libmemcache最后更新时间还是2006年,已经很久没更新了。

Django也推荐使用cmemcached,见 http://docs.djangoproject.com/en/dev/topics/cache

 

  • python-libmemcached依靠libmemcached支持更多特性,比如consistent hashing
  • python-memcache明显是速度最慢的,不推荐使用

 

附件:

    使用python-libmemcached的测试脚本,包括单线程和多线程版本

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值