- 现在我使用的是XMemcached。
统计信息
可以通过nc命令向Memcached服务端发送消息来获取统计信息,例如:
1
|
echo "stats settings" | nc localhost 20200 | sort
|
但是,我更需要客户端的统计信息,尤其是缓存命中率,set操作成功率等等。所以在客户端添加了一个简单的统计模块。每次处理用户请求的过程中,通 常有两次向Cache服务端的提交get请求,很多情况下还有两次set请求,合计消耗17ms,在把set请求改成NOREPLY模式以后,这个数减少 到10ms以内。因此,对于实时性要求比较高的情形,请打开这个模式,或者干脆使用异步的set。
服务端参数
- 可以使用-U来使用UDP传输,但是收效不大。
- -k参数可以阻止换页操作发生,在内存足够的情况下对提高性能有益。
- -C参数可以禁用CAS。
- -t指定使用的线程数,如果你是多CPU、多核CPU,可以把这个值配成和总CPU核数一致。
- -f参数,增长因子,存储大对象把它配大一点可以提高效率,配小一点可以减少浪费。
客户端参数
- 在使用Memcached Java Client的时候:
- 由于它会使用direct memory,一定不能加上DisableExplicitGC这个参数,否则就等着OOM吧;
- 配置大一些的heap size可以提高L1 cache的命中率;
- 把alive check置为false。
- 对于实时性和响应性要求比较高的项目,需要做GC调优,主要是GC时延,比如配置MaxGCPauseMillis参数到一个可以接受的值,但是不是越小越好,减低时延的同时会降低吞吐量。
- 有同事提了个建议,在客户端存放一个cache key的集合,可以在去cache server查询之前,先在本地查看一下是否有缓存记录(比如用Bloom filter来 实现),如果有,再去cache server查询。这个集合可以和实际的cache key有出入,也许一个小时同步一次就可以。但是实际上实现起来比较困难,本身key set的总量非常大,而且Memcached最初提供获取key iterator的接口返回的是一个限定大小key set的iterator,缺乏实际意义(这个接口在后来Memcached的版本中已经被废弃)。至于stats方法,它会把所有cache对象 dump出来,只能小规模调试的时候使用。
- 关于Nagle算法:Nagle的好处是可以批量处理请求,提高TCP包有效部分的大小,从而提高网络利用率,但是如果对每个请求处理时延要求很高的话请关闭。
- 一定要指定socket timeout或者get/set timeout。
最后,有人做了一个几个Memcached客户端的综合的性能试验:链接。
文章系本人原创,转载请保持完整性并注明出自《四火的唠叨》
相关推荐
### Memcached内存分析、调优、集群:深入理解与实践 #### 1. Memcached背景与概述 Memcached是一款高性能的分布式内存缓存服务器,它最初由LiveJournal的运营人员开发,现已成为开源社区中不可或缺的一部分。其...
### Memcached内存分析、调优、集群 #### 1. Memcached背景 Memcached是一款高性能的分布式内存对象缓存系统,旨在通过减轻数据库负载来加速动态Web应用的响应速度。它通过在内存中缓存数据和对象来减少读取数据库...
Memcached内存分析、调优、集群 Memcached是一个高性能的分布式内存缓存服务器,开源、协议简单、基于libevent时间处理机制,内置内存存储方式为slab/LRU。Memcached支持多种语言,如C/C++、PHP、Java、Python、...
【Memcached内存调优】 内存调优主要包括以下几个方面: 1. `-m`参数:用于设置Memcached的数据内存大小,例如`-m 1024`表示分配1GB内存。应根据实际需求和服务器资源进行调整。 2. `-n`参数:定义每个chunk的...
### Memcached内存分析、调优、集群 #### 一、Memcached背景介绍 Memcached是一款高性能的分布式内存对象缓存系统,它通过减轻数据库负担来加速动态Web应用程序的速度。最初由LiveJournal的开发者Brad Fitzpatrick...
六、Memcached的调优 调优主要包括:内存分配优化,根据业务需求合理设置内存大小;调整 slab 分配策略,避免内存浪费;监控和调整超时时间,确保高并发下系统的响应速度。 七、Memcached与Linux的关系 在Linux环境...
此外,memcached允许用户通过配置GrowthFactor来进行性能调优。 memcached的删除机制包括Lazy Expiration和LRU(Least Recently Used,最近最少使用算法)。Lazy Expiration意味着memcached在内部记录每个数据项的...
5. **监控与调优**: 使用监控工具(如Nagios、Zabbix)定期检查Memcached的性能指标,根据实际情况进行调优。 总结,Memcached 是一款高效、灵活的内存缓存系统,适用于缓解数据库压力,提升Web应用性能。通过深入...
**memcached** 是一个高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高数据访问速度。这个压缩包“memcached-1.6.12.tar.gz”包含了memcached的源代码版本1.6.12,用户可以编译安装...
3.3 监控与调优 定期监控memcached的内存使用、命中率等指标,根据实际情况调整参数。 总结,memcached-1.5.16作为一款强大的缓存工具,提供了高效、灵活的内存存储方案。正确地理解和运用它,能显著提升Web应用的...
2. "memcached权威指南.pdf":这是一份全面介绍Memcached的参考资料,可能包括了Memcached的工作原理、配置选项、API接口、性能调优、故障排查等方面的内容,适合初学者和进阶用户阅读。 3. ...
3. **性能调优**:通过MemCacheD Manager,用户可以进行性能调优,例如调整过期策略、优化内存分配,以提高系统整体效率。 4. **统计分析**:提供详细的统计报告,包括缓存命中和未命中的数据、请求频率等,帮助...
《Memcached内存分析、调优、集群.pptx》 《NET版分布式缓存Memcached测试实例.docx》 《Memcached管理及_.NET_开发.doc》 《memcached-win32-1.4.4-14.zip》 《安装Memcached及Memcached配置.doc》 《Linux...
3. **性能监控**:可以使用`stats`命令查看服务器状态,包括内存使用、命中率、连接数等,以便进行性能调优。 4. **集群扩展**:当单个Memcached实例无法满足需求时,可以通过增加更多服务器构成集群。 **六、与...
- **统计信息**: 工具类可能包含收集和记录Memcached操作统计信息的功能,如操作次数、平均耗时等,便于分析和调优。 - **日志输出**: 提供日志记录功能,帮助调试和追踪潜在问题。 在提供的`testMemcached`文件...
4. **监控与调优**:持续监控Memcached的性能,如命中率、内存使用情况等,适时进行参数调整以优化系统性能。 在提供的压缩包中,可能包含了一些关于如何使用或测试Memcached的资源,如`MemcachedTest`可能是用于...
- **使用GrowthFactor进行调优**:可以通过调整增长因子来优化slab的大小分布,减少内存浪费。 - **查看memcached的内部状态**:可以使用`stats`命令查看memcached的当前状态信息,包括内存使用情况等。 - **查看...
2. 调优Memcached:根据应用需求调整内存分配、超时时间等参数,以优化性能。 通过以上步骤,你已经在WAMP服务器上的PHP 5.5.12环境中成功安装了Memcached。现在,你可以利用这个强大的缓存工具来提升你的Web应用...