`
wbj0110
  • 浏览: 1602468 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Memcached内存利用建议(转载)

阅读更多

内存浪费 
根据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内存分析、调优、集群

    ### Memcached内存分析、调优、集群:深入理解与实践 #### 1. Memcached背景与概述 Memcached是一款高性能的分布式内存缓存服务器,它最初由LiveJournal的运营人员开发,现已成为开源社区中不可或缺的一部分。其...

    Memcached 内存分析、调优、集群

    ### Memcached内存分析、调优、集群 #### 1. Memcached背景 Memcached是一款高性能的分布式内存对象缓存系统,旨在通过减轻数据库负载来加速动态Web应用的响应速度。它通过在内存中缓存数据和对象来减少读取数据库...

    Memcached内存分配与SLAB机制

    ### Memcached内存分配与SLAB机制 #### 第1章 前言 本文将深入探讨Memcached中的内存分配原理及SLAB机制的核心概念。通过详细分析Memcached如何管理内存资源,帮助读者理解其高效内存利用背后的逻辑。 #### 第2章...

    Memcached内存对象缓存

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...

    Memcached内存分析、调优、集群.ppt

    这种设计减少了内存碎片,提高了内存利用率。Memcached在内存不足时,会根据LRU(Least Recently Used)策略淘汰最近最少使用的数据。 【Memcached内存调优】 内存调优主要包括以下几个方面: 1. `-m`参数:用于...

    Memcached内存分析、调优、集群.pptx

    Memcached内存分析、调优、集群 Memcached是一个高性能的分布式内存缓存服务器,开源、协议简单、基于libevent时间处理机制,内置内存存储方式为slab/LRU。Memcached支持多种语言,如C/C++、PHP、Java、Python、...

    Memcached源码分析之内存管理

    Memcached源码分析之内存管理Memcached源码分析之内存管理

    memcached的内存分配代码

    memcached采用了一种特殊的内存分配策略,名为Slab Allocation,以避免频繁的内存碎片和提高内存利用率。 1. Slab Allocation原理: Slab Allocation的核心思想是将内存分为多个大小不等的chunk(块),每个chunk...

    计算机后端-PHP视频教程. Memcached12 memcached内存管理机制.wmv

    计算机后端-PHP视频教程. Memcached12 memcached内存管理机制.wmv

    Memcached内存分析、调优、集群.pdf

    ### Memcached内存分析、调优、集群 #### 一、Memcached背景介绍 Memcached是一款高性能的分布式内存对象缓存系统,它通过减轻数据库负担来加速动态Web应用程序的速度。最初由LiveJournal的开发者Brad Fitzpatrick...

    04-memcached内存分配机制.wmv

    04-memcached内存分配机制.wmv

    Memcached内存分配与SLAB机制[借鉴].pdf

    此外,由于chunk大小固定,SLAB机制减少了内存碎片,从而提高了内存利用率。 总的来说,Memcached的SLAB机制是其高效运行的关键,它通过精细的内存管理,确保了在高并发场景下的快速响应和低延迟。理解和掌握这一...

    memcached 64位 window

    Memcached是一种分布式内存对象缓存系统,广泛用于减轻数据库负载,提高Web应用的性能。由于是64位版本,这意味着它可以利用64位系统的内存优势,处理更大的数据量。 **Memcached简介** Memcached是一款高性能、轻...

    基于内存的K-V数据平台(Memcached)

    **基于内存的K-V数据平台——Memcached** Memcached是一款高性能、分布式内存对象缓存系统,主要用于加速动态Web应用,通过将数据存储在内存中,减少数据库的访问次数,从而提高应用性能。它是一个轻量级的服务,...

    PHP内存缓存技术memcached 的安装和工作原理介绍

    4. **内存管理**:memcached管理内存空间,当内存不足时,会使用LRU(Least Recently Used)策略自动删除最近最少使用的数据。 5. **非持久化存储**:由于数据存储在内存中,一旦服务器重启,所有数据将丢失。因此,...

    memcached服务器端memcached.exe 下载

    Memcached是一款高性能、分布式内存对象缓存系统,常用于减轻数据库负载,提高Web应用的性能。它通过在内存中存储数据来快速...通过合理地利用memcached,开发者可以优化Web应用性能,减少数据库压力,提高用户体验。

    网上收集最新的Memcached学习资料

    这种方式避免了内存碎片,提高了内存利用率。 四、Memcached的过期策略 Memcached支持为每个键值对设置过期时间,一旦超过这个时间,数据会被自动删除。同时,它也使用LRU(Least Recently Used)算法,当内存满时...

Global site tag (gtag.js) - Google Analytics