Memcached缓存大数据时对服务器内存、CPU的影响及其对硬件的配置需求

简介: 最近公司在进行缓存框架方面的调研,我主要对Memcached在缓存大数据量情况下对系统硬件的影响和需求做了调研,以下是一些测试数据和调研结果:  Memcached缓存不同数据量测试情况:           一、测试环境配置信息    1. 缓存服务器配置信息:一共4台 ,三台是公司服务器,一台是本机         node1
最近公司在进行缓存框架方面的调研,我主要对Memcached在缓存大数据量情况下对系统硬件的影响和需求做了调研,以下是一些测试数据和调研结果:

 Memcached缓存不同数据量测试情况:    

     
一、测试环境配置信息

   1. 缓存服务器配置信息:一共4台 ,三台是公司服务器,一台是本机
          node1: 单核 1G内存
           node2:  单核 1G内存
          node3:  单核 1G内存
          node4: 4核  8G内存

   2.运行在每台服务器上的Memcached实例配置信息:
         工作线程数量:4个
         设置缓存大小:前三个结点是512MB,最后一个结点是4GB,集群总缓存大小时5632MB
          最大并发连接数:1024
         
二、对内存和CPU的影响测试数据及分析:

数据量 5千 1万 10万 100万 1000万 1亿
内存 1.87MB 3.65MB 36.58MB 366.7MB 3.62GB 受测试环境限制,没有测试
CPU CPU影响较小,对于1000万条数据,单线程向Memcached中写,占用CPU比率为0.0%,尝试分别在测试程序中启动20个线程和100个线程同时向Memcached写数据,这两种情况下每台Memcached缓存服务器的CPU占用率都不超过1%
 

  1. 缓存数据量和占用内存大小成简单线性关系,数据量的增加没有对服务器内存造成特殊影响 
  2. 缓存数据量的大小对CPU没有影响,写缓存的请求数量对CPU有影响且影响较小

三、总结
    1.CPU方面:低并发和大数据量下Memcached对CPU要求很低,高并发情况官方说明是其对CPU要求也很低。
    2.内存方面: 只要内存够用(可横向无限扩展),Memcached缓存大数据量没有问题(1GB可缓存约250万条数据)。
    2.Memcached有两个比较重要的限制,一是最大缓存时间为30天,二是一个缓存项目(key-value)的最大容量为1MB,这两个限制可能会对具体项目造成一定影响,一定要注意。
     
附:一个测试场景的截图    


以下是更具体点的描述:

一、对于CPU的需求

     Memcached对CPU的依赖是轻量级的,因为它的设计目标就是能够快速响应。Memcached是多线程的,默认会有4个工作线程。对于一般情形,Memcached在CPU低配的情形下也会是高效的。

二、对于RAM的需求

     Memcached的设计目标就是能够把分布在多个节点上主机的内存缝合在一起,让我们的应用看到的是一个缝合之后的大块内存,因此,可以这么说:“内存越大越好”,具体大小则根据我们的应用场景来设定即可。
     官方建议我们集群各结点的内存大小是一致的,集群的均衡意味着我们可以很容易的增加或删除结点,而不用考虑它们在集群中的权重大小。
     分配内存时,不应占用全部物理内存,因为过度的分配内存可能会引起内存Swap,导致效率降低。
     对于是否需要高速RAM,官方的回答是:not so much。

三、对带宽的需求

     对带宽的需求主要取决于并发量及缓存Item的大小,因此,不同业务情况对带宽的需求差别是比较大的。

四、Memcached在硬件上的部署

1.使用专用服务器:

     能用专用服务器当然是最好的了,好处不必多说,但也有一点需要注意,横向扩展比纵向扩展有个好处,就是单个结点宕掉对总体的影响会更小,比如一个单机32G 、4台机器机器构成的集群可靠性就比1台机器128G内存的可靠性要高。

2.部署在应用服务器:

     可以部署在应用服务器或其它计算结点上,充分利用它们的空闲内存,比如一个web服务器有4GB的RAM,而运行在上面的App和OS已经占用了2GB,我们可以分配1.5GB给我们的Memcached实例。
     但需要注意的是,这样做会有一些风险,如果内存不足时可能会引起Swap,而一个App的内存泄露也会kill掉Memcached实例。

3.部署在Database服务器:

     不建议部署在数据库服务器上,尽量给数据库分配最大的内存。


     
总结:
  • Memcached对CPU的依赖很低
  • 对内存依赖高,可无限扩展内存,具体占用多大内存可以根据实际需求配置
  • 带宽方面可暂不考虑
  • 建议采用专用服务器或有较多空闲内存的应用服务器作为缓存服务器


     

     
     


王厚达 (18764287653)
相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
存储 缓存 芯片
让星星⭐月亮告诉你,当我们在说CPU一级缓存二级缓存三级缓存的时候,我们到底在说什么?
本文介绍了CPU缓存的基本概念和作用,以及不同级别的缓存(L1、L2、L3)的特点和工作原理。CPU缓存是CPU内部的存储器,用于存储RAM中的数据和指令副本,以提高数据访问速度,减少CPU与RAM之间的速度差异。L1缓存位于处理器内部,速度最快;L2缓存容量更大,但速度稍慢;L3缓存容量最大,由所有CPU内核共享。文章还对比了DRAM和SRAM两种内存类型,解释了它们在计算机系统中的应用。
2467 1
|
10月前
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
3122 0
|
7月前
|
弹性计算 定位技术 数据中心
阿里云服务器配置选择方法:付费类型、地域及CPU内存配置全解析
阿里云服务器怎么选?2025最新指南:就近选择地域,降低延迟;长期使用选包年包月,短期灵活选按量付费;企业选2核4G5M仅199元/年,个人选2核2G3M低至99元/年,高性价比爆款推荐,轻松上云。
828 11
|
9月前
|
弹性计算 前端开发 NoSQL
2025最新阿里云服务器配置选择攻略:CPU、内存、带宽与系统盘全解析
本文详解2025年阿里云服务器ECS配置选择策略,涵盖CPU、内存、带宽与系统盘推荐,助你根据业务需求精准选型,提升性能与性价比。
|
缓存 监控 定位技术
|
10月前
|
存储 搜索推荐 算法
Java 大视界 -- Java 大数据在智能金融理财产品风险评估与个性化配置中的应用(195)
本文深入探讨了Java大数据技术在智能金融理财产品风险评估与个性化配置中的关键应用。通过高效的数据采集、存储与分析,Java大数据技术助力金融机构实现精准风险评估与个性化推荐,提升投资收益并降低风险。
Java 大视界 -- Java 大数据在智能金融理财产品风险评估与个性化配置中的应用(195)
|
10月前
|
存储 弹性计算 固态存储
阿里云服务器配置费用整理,支持一万人CPU内存、公网带宽和存储IO性能全解析
要支撑1万人在线流量,需选择阿里云企业级ECS服务器,如通用型g系列、高主频型hf系列或通用算力型u1实例,配置如16核64G及以上,搭配高带宽与SSD/ESSD云盘,费用约数千元每月。
1301 0
|
弹性计算 固态存储 ice
阿里云服务器ECS内存型2核16G、4核32G和8核64G配置实例、费用和性能参数表
本文整理了2025年阿里云服务器租赁价格表,涵盖2核16G、4核32G和8核64G配置收费标准。CPU内存比为1:8,提供多种实例规格如ECS内存型r8i、通用算力型u1等。价格由CPU内存、公网带宽及系统盘组成,支持优惠折扣(年付6.7折起)。文中详细列出各配置参考价格、公网带宽与系统盘收费,并对比不同实例规格性能,如Intel Xeon和AMD EPYC处理器系列,帮助用户选择高性价比方案。具体价格以阿里云官网为准。
1593 4
|
Java
手动修改内存配置
手动修改内存配置
320 12

热门文章

最新文章