锁定老帖子 主题:Python的memcached客户端测试
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-02
最后修改:2009-03-02
主要目的是测试python的三个memcached client的性能
Python版本:2.5.3c1 memcached:1.2.6 Linux:RedHat AS 4 (32bit) / 2.6.9-78.ELsmp
启动参数:memcached -u memcached -d -m 128 -p 11211
1,000,000条数据占用内存:60777780 bytes write:66.30s read:74.20s
write:45.67s read:42.16s
write:45.51s read:42.91s
此处我将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
read: ___Thread(2) Used: 79.42231011390686
②cmemcache write:
read: ___Thread(1) Used: 20.166458129882812
write: ___Thread(1) Used: 11.283051013946533 ___Thread(2) Used: 11.512333869934082 ___Thread(0) Used: 10.283640146255493
read: ___Thread(3) Used: 9.5806050300598145
总结: python-memcached奇怪的是,在多线程的时候,效率比它单线程要差很多,cmemcache与python-libmemcached单线程的时候几乎没有差别,但在多线程的时候,使用python-libmemcached编写的测试脚本中的四个线程不是同时执行,造成多线程测试脚本执行时间与单线程脚本的执行时间差不多,不知道为什么。使用cmemcache与python-memcached编写的脚本中的四个线程几乎同时开始,并且同时结束,脚本执行时间就是速度最慢的线程的时间。
Django也推荐使用cmemcached,见 http://docs.djangoproject.com/en/dev/topics/cache
附件: 使用python-libmemcached的测试脚本,包括单线程和多线程版本
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-03-03
对这个感兴趣,可能马上会有基于Python memcached项目要做,正好需要
谢谢lz |
|
返回顶楼 | |
发表时间:2009-04-07
django的memcahced后端和别的开发用的后端比如locmem不同,它不支持有空格的key,有时用对象的str形式作为key就会出空格,所以有时候开发时好好的,一上线就出问题了。所以要用urlquote之类的转一下的。
|
|
返回顶楼 | |
发表时间:2009-04-07
怎么看lz的头像这么眼熟,好像我以前同事 哈哈
|
|
返回顶楼 | |
发表时间:2009-04-07
lw223 写道 怎么看lz的头像这么眼熟,好像我以前同事 哈哈
请问你是谁啊? |
|
返回顶楼 | |
浏览 6230 次