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的热门话题分析
目录
相关文章
|
11月前
|
弹性计算 ice
阿里云4核8G云服务器配置价格:热门ECS实例及CPU处理器型号说明
阿里云2025年4核8G服务器配置价格汇总,涵盖经济型e实例、计算型c9i等热门ECS实例,CPU含Intel Xeon及AMD EPYC系列,月费159元起,年付低至1578元,按小时计费0.45元起,实际购买享折扣优惠。
3957 1
|
11月前
|
弹性计算 定位技术 数据中心
阿里云服务器配置选择方法:付费类型、地域及CPU内存配置全解析
阿里云服务器怎么选?2025最新指南:就近选择地域,降低延迟;长期使用选包年包月,短期灵活选按量付费;企业选2核4G5M仅199元/年,个人选2核2G3M低至99元/年,高性价比爆款推荐,轻松上云。
1200 11
|
11月前
|
弹性计算
阿里云ECS云服务器8核16G配置收费价格,多种ECS实例CPU及费用清单
阿里云8核16G云服务器价格因实例类型而异。计算型c9i约743元/月,一年6450元(7折);通用算力型u1仅673元/月,一年4225元(5.1折)。实际价格享时长折扣,详情见ECS官网。
|
12月前
|
存储 缓存 数据挖掘
阿里云轻量应用服务器“CPU优化型”配置介绍、费用价格说明
阿里云轻量应用服务器推出CPU优化型,提供更强计算性能,2核4GB起,最高16核64GB,全系支持200Mbps带宽。适用于企业级应用、数据库、游戏服务器等高算力场景,保障稳定高效运行。
1243 1
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
3639 0
|
存储 缓存 NoSQL
内存管理基础:数据结构的存储方式
数据结构在内存中的存储方式主要包括连续存储、链式存储、索引存储和散列存储。连续存储如数组,数据元素按顺序连续存放,访问速度快但扩展性差;链式存储如链表,通过指针连接分散的节点,便于插入删除但访问效率低;索引存储通过索引表提高查找效率,常用于数据库系统;散列存储如哈希表,通过哈希函数实现快速存取,但需处理冲突。不同场景下应根据访问模式、数据规模和操作频率选择合适的存储结构,甚至结合多种方式以达到最优性能。掌握这些存储机制是构建高效程序和理解高级数据结构的基础。
1215 1
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
1229 0
|
存储 弹性计算 固态存储
阿里云服务器配置费用整理,支持一万人CPU内存、公网带宽和存储IO性能全解析
要支撑1万人在线流量,需选择阿里云企业级ECS服务器,如通用型g系列、高主频型hf系列或通用算力型u1实例,配置如16核64G及以上,搭配高带宽与SSD/ESSD云盘,费用约数千元每月。
1736 0

热门文章

最新文章