内存浪费
根据memcached的内存原理来提高缓存效率,可以看出memcached内存有所浪费,比如:slab的浪费、chunk的浪费。
Slab浪费
比如缓存的数据已经确定每个item的大小在1950左右,那么可以看出按照memcached初始分配内存的方式,将有很多的slab区域被浪费掉,比如下面的1952 区域 有890202个item,但是其他的slab却只有几个item
Chunk的浪费
每个slab包含了等小的chunk,但是某个slab的chunk可能一直都没有数据。
Chunk存储item的浪费
比如定义了chunk的大小为1000,那么每个item都不确定是多大,有的800,有的600,那么可以看出相应的chunk浪费了200byte,400byte。
内存利用建议
当了知道了浪费的内存后,应该采取相应的措施来进行内存优化并通过优化使浪费的内存降到最低。
解决方法
1)规划slab=chunk 规划chunk = item
2)使用合适的factor,减少浪费,通过初始化 –f 参数来调整,值越小,slab中的chunk size差距越小,内存浪费越小,1.25是memcached是默认值
使用了64的操作系统,能分配2GB以上的内存。32位操作系统中,每个进程最多只能使用2GB内存。可以启动多个分配2GB以下内存的进程,但这样一台服务器上的TCP连接数就会成倍增加,管理上也变得复杂,所以尽量统一使用了64位操作系统。
另外,最好分配内存为3GB,是因为内存分配量超过这个值,就有可能导致内存交换(swap),memcached的内存存储“slab”, memcached启动时指定的内存分配量是memcached用于保存数据的量,没有包括“slab”本身占用的内存、以及为了保存数据而设置的管理空间。因此,memcached进程的实际内存分配量要比指定的容量要大。
如果在memcached中的数据大部分都比较小。这样,进程的大小要比指定的容量大很多。因此,改变内存分配量进行验证,确认了3GB的大小不会引发swap。
分享到:
相关推荐
### Memcached内存分配与SLAB机制 #### 第1章 前言 本文将深入探讨Memcached中的内存分配原理及SLAB机制的核心概念。通过详细分析Memcached如何管理内存资源,帮助读者理解其高效内存利用背后的逻辑。 #### 第2章...
同时,合理规划缓存策略,比如LRU(Least Recently Used)或LFU(Least Frequently Used)淘汰策略,能更有效地利用有限的内存资源。 7. **与其他技术的结合** Memcached常与Web框架(如WordPress、Drupal)和...
标题"memcached最新版forlinux"指的是Memcached的最新版本,它是一个专门为Linux操作系统设计的开源高性能、分布式内存对象缓存系统。Memcached的主要作用是通过缓存数据和对象来减少数据库访问,从而提高Web应用的...
Memcached是一种高性能、分布式内存对象缓存系统,用于在分布式环境中加速动态Web应用程序。...通过深入学习提供的实例和文档,无论是Java开发者还是其他平台的程序员,都能更好地利用Memcached提升应用程序的效率。
由于 Fedora 8 中的 memcached rpm 包版本较旧,建议下载最新的 Memcached 源代码进行编译安装。当前最新版本为 1.2.5。 - **下载 Memcached** ```bash wget http://www.danga.com/memcached/download.bml ``` ...
MongoDB适合存储大量数据,但是其对内存的需求较大,建议单独为其分配资源。 可用性(单点问题): Redis通过客户端实现分布式读写,支持主从复制,但每次从节点连接主节点时需要整个数据集的快照,没有增量复制...
3. 内存:由于memcached主要运行在内存中,因此建议至少有1GB可用内存,根据实际缓存需求可适当增加。 4. 权限:安装和运行memcached需要管理员权限。 **安装过程** 1. 解压“memcached-1.4.2_win64_win32.rar”到...
完成上述步骤后,你的Linux系统就已经成功安装并启动了Memcached服务,可以开始在Web应用中利用它进行数据缓存,以提高性能。为了监控和管理Memcached,还可以使用像`telnet`这样的工具进行交互,或者配置日志记录以...
5. **性能对比** - 对比这三种缓存技术在吞吐量、响应时间、内存利用率等方面的性能差异。 6. **使用场景** - 分析每种缓存适合的应用场景,例如Memcached适用于简单快速的键值存储,Ehcache更适合Java应用,而...
3. **安全性**: 考虑到Memcached默认不提供安全机制,建议在生产环境中配置SSL加密或使用网络隔离来保护数据安全。 总结,Windows Server上的Memcached部署和使用与Linux环境有所不同,但核心功能和优势保持不变。...
Memcached 是一种高性能的分布式内存缓存系统,用于减轻数据库负载和提高应用程序的响应速度。在Java开发中,有三种主流的Memcached客户端库供开发者选择:官方的基于传统阻塞IO的客户端、Dustin Sallings实现的基于...
在Linux环境下安装Memcached非常简单,可以利用Yum源快速完成安装过程。 1. **安装Memcached** ```bash yum install -y memcached ``` 使用`-y`选项可以在安装过程中自动确认所有提示,使安装过程更加自动化。 ...
- 通常建议 Memcached 仅在内网环境中运行,以避免外部访问带来的安全风险。 2. **设置防火墙:** - 配置防火墙规则可以进一步增强安全性,只允许特定 IP 或服务访问 Memcached。 #### 十、Danga 的其他技术 - ...
- 优化Memcached的内存管理策略,如使用LRU(Least Recently Used)淘汰算法,以高效利用有限的内存资源。 - 监控Memcached的性能,定期检查缓存命中率、内存使用情况,以便及时调整配置。 总结,这个包含win32和...
Memcached则是一款高性能、分布式内存对象缓存系统,用于在动态应用中减少数据库负载,提高性能。当我们需要在PHP 5.3.10版本上使用Memcached服务时,就需要安装对应的扩展来实现两者之间的交互。 PHP 5.3.10中的...
### Memcached安装与使用详解及优化策略 #### 一、Memcached简介 Memcached是一款高性能、分布式内存对象缓存系统,...掌握上述知识点,将有助于开发者更好地利用Memcached的强大功能,为用户提供更流畅的网页体验。
例如,攻击者可以通过未受保护的Memcached实例获取敏感信息,甚至利用反射放大攻击(DDoS)。 #### 二、安全加固措施 针对Memcached的安全隐患,本文将详细介绍几种有效的安全加固措施: ##### 1. 配置访问控制 - ...
2. **数据持久化**:虽然Memcached主要设计为内存存储,但可以通过第三方工具实现数据的定期备份,或者利用Memcached的SASL认证支持,实现安全性增强。 3. **分布式策略**:在多台服务器上部署Memcached,可以实现...
3. **自主内存管理机制**:Memcached具备自主管理内存的能力,可以根据实际情况动态调整缓存数据的存储空间,以充分利用系统资源,同时避免内存泄露等问题的发生。 4. **客户端端的分布式特性**:Memcached没有内置...