- 浏览: 2652329 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
线上发现memcached偶发超过100ms的情况,刚开始以为是memcached server连接数过多的问题,后台测试发现本地也存在这个问题,应该是memcached-client实现导致大并发下,性能太差:
ab -n1000 -c20 http://127.0.0.1:7299/category/life/
测试pylibmc性能很好,同样并发下面很少有耗时超过1毫秒的:
pylibmc的连接数也很稳定:
# -*- coding: utf-8 -*- import time import pylibmc mc = pylibmc.Client(["127.0.0.1"]) class Client(): def __init__(self, servers): ''' 忽略掉memcached的server配置,使用cache_server ''' def get(self,key): starttime = time.time() val = mc.get(key) endtime = time.time() exe_time = (endtime - starttime)*1000 if exe_time>100: print "memcache3 get %s cost:%s"%(key,exe_time) return val def set(self, key, val, time=0, min_compress_len=100): return mc.set(key,val,time) def delete(self,key, time=0): return mc.delete(key) def incr(self, key, delta=1): return mc.incr(key,delta)
由于dboss-client是模仿python memcached client实现的,也很慢,通过打点发现,瓶颈在:
def readline(self): buf = self.buffer recv = self.socket.recv while True: index = buf.find('\r\n') if index >= 0: break data = recv(4096) if not data: self.mark_dead('Connection closed while reading from %s' % repr(self)) self.buffer = '' return '' buf += data self.buffer = buf[index+2:] return buf[:index]
dboss测试对比了性能,和原来的差别不大:
AB:
memcached:
Percentage of the requests served within a certain time (ms)
50% 785
66% 931
75% 1041
80% 1102
90% 1266
95% 1428
98% 1595
99% 1682
100% 1811 (longest request)
dboss:
Percentage of the requests served within a certain time (ms)
50% 799
66% 918
75% 992
80% 1038
90% 1228
95% 1382
98% 1689
99% 1998
100% 2432 (longest request)
统计get的执行时间(20个并发)
dboss :
total: 75243
0.014% 10ms - 563ms(count:1100)
99.986% <10ms
memcached :
total: 77508
0.014% 10ms - 660ms(count:1100)
99.986% <10ms
redis :
total: 2400
10% 4.2ms~127ms
90% <4.2ms
最后看看恐怖的pylibmc:
发表评论
-
spring-cloud问题排查
2019-11-18 14:58 513### 问题1报错,应用无法启动 org.springfra ... -
log4j 和slf4j的 类冲突解决
2018-07-14 16:11 19781. 检查 log4j 和slf4j的冲突 pub ... -
HikariPool-1 - Connection is not available, request timed out after
2018-05-07 19:13 6673在开发中遇到 HikariPool-1 - Conn ... -
java.io.StreamCorruptedException: invalid stream header: EFBFBDEF
2018-05-03 16:54 2403Java代码 publi ... -
log4j问题总结-加载配置文件
2014-08-20 16:34 1063今天遇到log4j的log4j.properties没有生效 ... -
一个诡异的类冲突错误排查记录
2014-08-13 10:44 815今天遇到一个问题排查了很久,记录一下。 问题原因,日常环境 ... -
tomcat7.0.26的连接数控制bug的问题排查
2014-04-23 19:51 1709今儿线上一台机器,监控一直在告警, mtophost[CM ... -
tomcat,jboss,jetty访问出现404错误问题记录
2014-04-21 19:51 1690原因是WEB-INF下面缺少jboss-web.xml ... -
记录Hadoop native libraries无法load的问题
2014-04-10 19:45 2297今天遇到一个错误,在本地往Hadoop写文件的时候报了一个错 ... -
Exception性能问题
2014-01-24 22:25 13071.从Exception往上介绍相关结构、代码 ... -
spring加载xml去远程获取dtd验证xml的问题
2014-01-24 11:57 899最近遇到spring 加载xml去远程获取dtd,但外网不 ... -
hbase查询超时导致的错误
2013-12-25 19:53 2714今天上线跑一个hbase程序出现如下错误: org.ap ... -
hbase无法启动问题
2013-12-24 23:53 927今天遇到hbase无法启动,找了很久,才发现可能是data ... -
web.xml配置注意点
2013-12-19 20:29 6391. servlet启动初始化 servlet默认只有访 ... -
Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决
2013-12-17 23:22 3909作者: 大圆那些事 | 文章可以转载,请以超链接形式标明文章 ... -
linger close用法
2013-12-13 14:18 963Linux下tcp连接断开的时候调用close()函数,有 ... -
log4j-over-slf4的log4j Loger加载问题
2013-12-11 00:19 5780log4j-over-slf4是通过定义和log4j同包名 ... -
log4j,slf4j,logback问题总结
2013-12-10 18:12 6527ls4j初始化过程参考:l ... -
maven 小结(打包和单元测试)
2013-12-04 11:53 6841. 如何把一个jar和他依赖的包打包成一个 使用mave ... -
solr load比较高
2013-12-02 09:50 1069最近solr的load比较高,通过jstack查看: 写 ...
相关推荐
10. **性能优化**:Python-memcached库设计得非常轻量级,它使用最少的网络通信开销,以提高与Memcached服务器之间的通信效率。 Python-memcached库的使用方法相对简单,通常需要导入库,创建客户端,然后通过...
Python-Memcached是一个Python接口,用于与Memcached内存缓存系统进行交互。Memcached是一种高性能、分布式内存对象缓存系统,用于减少数据库负载,通过在内存中存储数据来加速网络应用。这个`python-memcached-...
7. **预加载机制**:Python-Memcached库还包含了预加载功能,可以在程序启动时预先加载一部分常用数据到缓存中,提升应用性能。 8. **持久化**:虽然Memcached不支持数据持久化,但可以通过配合其他工具(如Redis或...
memcachedClient = memcached_client.MemcachedClient(secret_id, secret_key, region, clientProfile) # 示例:创建实例 req = models.CreateInstanceRequest.CreateInstanceRequest() # 设置请求参数 # ... resp ...
client = memcached_client.MemcachedClient(cred, "ap-guangzhou") # 示例:设置键值 request = models.SetItemRequest() request.InstanceId = "your-instance-id" request.Key = "key" request.Value = "value" ...
10. 性能优化:Python3-memcached-master利用多线程,允许并行执行多个操作,以提高性能。此外,它使用了有效的序列化和反序列化策略,如使用pickle模块,来转换Python对象。 总之,Python3-memcached-master是...
python-ceilometerclient-1.0.8-1.el6.noarch.rpm python-chardet-2.0.1-1.el6.rf.noarch.rpm python-cheetah-2.4.1-1.el6.x86_64.rpm python-cinderclient-1.0.7-2.el6.noarch.rpm python-cliff-1.4.4-1.el6.noarch...
本文将围绕标题“Memcached-Java-Client-release_2.6.1.zip”展开,详细讲解如何在Java项目中整合并使用Memcached客户端库。 1. **Memcached简介** - Memcached是一种轻量级、基于内存的键值对存储系统,用于存储...
本文将深入探讨标题中的"Python-所有ApolloClient20cache实现的简单持久化",以及与之相关的标签"Python开发-数据缓存"。 Apollo是一个配置中心,它允许应用程序动态地获取和更新配置,而无需重启服务。在Python中...
CollabNetSubversion-client-1.6.12-1.win32 httpd-2.2.19-win32-x86-openssl-0.9.8r memcached-1.2.6-win32-bin mod_python-3.3.1.win32-py2.5-Apache2.2 MySQL-python-1.2.2.win32-py2.5 patch-2.5.9-7-setup PIL-...
python-ceilometerclient-1.0.8-1.el6.noarch.rpm python-chardet-2.0.1-1.el6.rf.noarch.rpm python-cheetah-2.4.1-1.el6.x86_64.rpm python-cinderclient-1.0.7-2.el6.noarch.rpm python-cliff-1.4.4-1.el6.noarch...
一个纯python模块(线程安全),可以通过具有SASL auth支持的二进制文件访问memcached。 该模块的主要目的是能够与使用二进制协议的memcached通信并支持身份验证,因此它可以与Heroku一起使用。 有关在阅读文档的...
5. **Node.js** - `node-memcached` 和 `memcached-client`:Node.js的 `node-memcached` 是一个稳定且广泛使用的客户端,而 `memcached-client` 提供了更现代的API和更好的错误处理。 6. **Go** - `go-memcache`:...
5 CollabNetSubversion-client-1.6.16-1.win32.exe 6 GetGnuWin32-0.6.3.exe 7 mod_python-3.3.1.win32-py2.5-Apache2.2.exe 8 MySQL-python-1.2.2.win32-py2.5.exe 9 patch-2.5.9-7-setup.exe 10 PIL-1.1.7.win32-...
- `1.5.4`版本是一个稳定版,修复了前一版本中的已知问题,提高了系统的稳定性和性能。 2. **源码结构** - `memcached-1.5.4`源码包含多个主要目录:`src`存放核心代码,`doc`包含文档,`test`有测试用例,`...
- 如果一切顺利,现在 memcached 已经在后台运行,可以使用 `telnet` 或 `memcached-client` 工具测试连接和存储数据。 4. **使用 memcached**: - 在应用程序中集成 memcached,需要选择合适的客户端库,如 PHP ...
MemcachedClient client = new MemcachedClient(AddrUtil.getAddresses("127.0.0.1:11211")); client.set("key", 0, "value"); String retrievedValue = (String) client.get("key"); ``` 3. **PHP**: PHP内...
Memcached是一款高性能、分布式内存对象缓存系统,它广泛应用于Web应用中,用于减轻数据库的负载,提升数据访问速度。本资源“memcached资源demo(已调试通过)”是一个经过实际测试和验证的Memcached应用示例,下面将...
在命令行部分,我们看到了如何通过`yum -y install python-memcached`安装Python的Memcache客户端库,确保Python可以与Memcache服务器通信。然后运行`m.py`脚本,可以看到所有设置的键值对被正确地存储和检索。 ...