`

memcached优化使用

阅读更多

1、memcached开始支持多线程

 

2、使用自己的内存分配策略,而不是系统的malloc方法。目的减少内存碎片。

    系统的malloc分配等尺寸的内存片,必将导致内存浪费,从而出现碎片。(题外话,这个分配方案可以作为操作系统的磁盘空间分配方案,现在windows系统使用等尺寸的最小单元存储,经常性产生碎片,磁盘利用率低)。

      将内存切割为大小相等的slab,每个slab中划分大小不等的trunk,当客户端请求save数据时,系统会从这些trunk中找一个尺寸与其最接近的trunk保存。

 

3、memcached存储的一个Item的最尺寸有上限,超过这个上限不是不能存储,而是将导致性能打折扣严重。读取一个数据需要搜索两个trunk。

 

4、存储ByteCode还是序列化对象?

      在java体系同,可以将基本类型的信息用bytecode形式保存在cache中,也可以用java的对象形式保存在cache中。int i=4 需要4个字节,而其对象需要64个字节,节约16倍内存。为什么有这样的差别呢?因为cache保存对象时,首先要调用Java系统的序列话过程,它将整个对象信息用bytecode表示,显然其占用空间比只有表达值的bytecode多很多。

    实现上面逻辑的方法就是实现对象的外部序列化,只需要用bytecode表示值。不使用系统自己的序列化方法(序列化对象)。

     有一个minix项目使用该技术优化前占用memcached内存为1.152G,优化后,空间只需要144M,可见这样的优化效果非常的理想,节约了宝贵的资源(虽然内存已经很便宜,但是在高并发系统中,内存还是非常珍贵的)。

 

5、memcached的进程监控

    我们经常会发现有些时候memcached会因为一些原因停止工作工具可以监控进程,当进程将死、意外退出,他会即时重新启动memcached进程,从而减少应用中断时间,减少系统性能抖动,减少故障恢复时间。

 

 

分享到:
评论

相关推荐

    Memcached使用--使用

    **Memcached 使用详解** Memcached 是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库负载,提高网站性能。它通过在内存中存储数据,为应用程序提供快速的数据访问,避免了频繁读取...

    MemCached Cache Java Client封装优化历程.docx

    4. **Socket 通信**:Memcached 使用 TCP 或 UDP 通信协议,客户端可以选择使用同步或异步的网络 I/O 模型。数据传输前需要序列化,为了降低开销,建议存储较小的数据,如字符串。 5. **特殊的内存分配机制**:...

    memcached缓存使用演示

    **Memcached缓存系统详解与应用实践** ...无论是快速响应高并发请求,还是优化数据库性能,Memcached都能提供有力的支持。在实践中,结合具体业务场景,合理运用缓存策略,能显著提升系统的整体性能。

    Memcached 原理和使用详解

    Memcached是一款高效、轻量级的分布式内存缓存系统,由Danga Interactive公司的开发团队为LiveJournal设计并实现。它的主要目标是减轻数据库的负载,通过缓存...理解其原理和正确使用方法,对于优化Web应用至关重要。

    Memcached缓存机制 用好Cache,优化应用

    **三、使用Memcached优化应用** 1. **减少数据库查询**:将经常访问但更新不频繁的数据存储到Memcached中,避免每次请求都去数据库查找,显著提升性能。 2. **缓存预热**:在应用启动时,可以预先加载常用数据到...

    java使用memcached demo

    Java 使用 Memcached 演示 Memcached 是一个高性能、分布式的内存对象缓存系统,广泛应用于减轻数据库负载,提高Web应用的响应速度。在Java中,我们可以借助各种客户端库来与Memcached进行交互。本篇文章将深入探讨...

    memcached使用说明.doc

    总的来说,Memcached 是一个强大而高效的缓存工具,对于需要优化数据库性能和实现分布式数据共享的系统,它是理想的选择。不过,在选择是否使用 Memcached 时,应根据实际应用的需求和架构来决定,避免不必要的系统...

    danga memcached使用

    **标题:“danga memcached使用”** memcached是一款高性能、分布式内存对象缓存系统,它广泛应用于...理解其工作原理,掌握安装、配置和使用方法,以及通过源码学习,能帮助开发者更好地利用这一工具优化应用性能。

    查看、分析memcached使用状态

    本文将深入探讨 Memcached 的使用及其状态分析。 首先,Memcached 以其内存存储机制著称,这使得它在读取速度上远超于传统的硬盘存储,比如使用哈希散列存储数据到硬盘。在内存价格日益降低的今天,使用内存作为...

    java使用Memcached简单教程

    ### Java使用Memcached简单教程 #### 一、简介 Memcached是一个高性能的分布式内存对象缓存系统,通过减轻数据库负载来加速动态Web应用,提高网站的浏览速度。它通过在内存中缓存数据和对象来减少读取数据库的次数...

    Memcached java的使用实例

    **Memcached** 是一款高性能、分布式内存对象缓存系统,常用于减轻数据库的负载,提高Web应用的响应...同时,了解如何在大型分布式系统中优化Memcached的配置和使用,以充分发挥其性能优势,是提高整体系统效率的关键。

    memcached 64位 window

    **标题与描述解析** 标题"memcached 64位 window"指的是在Windows操作系统上运行的64位版本的Memcached缓存系统。Memcached是一种分布式内存对象...正确配置和使用Memcached,能显著改善用户体验,降低服务器压力。

    Memcached基本使用

    至于标签“源码”和“工具”,意味着我们可以从源代码级别理解Memcached的内部工作原理,也可以将Memcached作为开发中的辅助工具,优化应用性能。虽然这里没有提供源代码,但您可以自行前往Memcached的官方仓库获取...

    memcached安装及java应用使用memcached

    **标题解析:** “memcached安装及java应用使用...总结,本文应该涵盖了从安装memcached到在Java应用中使用它的全面指南,包括相关配置、操作、最佳实践和优化技巧,旨在帮助开发者充分利用memcached来提升应用性能。

    memcached安装包以及MemCachedClient

    `commons-pool-1.5.6.jar` 是 Apache Commons Pool 库,它是对象池设计模式的实现,Spymemcached 使用它来管理连接池,以优化资源利用率。 `slf4j-api-1.6.1.jar` 和 `slf4j-simple-1.6.1.jar` 是 Simple Logging ...

    memcached使用最佳实践(英文版)

    本书详细介绍了如何利用Memcached这一高性能、分布式内存对象缓存系统来优化网站性能,解决大规模网络应用中的数据存储与访问瓶颈问题。以下是对该书部分关键知识点的深入解读。 ### 一、Memcached概述 #### 1.1 ...

    Memcached的原理及应用

    当内存容量达到上限时,Memcached会使用LRU(Least Recently Used)算法自动清除最近最少使用的缓存项。 4. **分布式特性**:虽然名为“分布式”缓存,但Memcached服务器本身并不具备分布式功能。实现分布式缓存...

    memcached服务器端memcached.exe 下载

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

Global site tag (gtag.js) - Google Analytics