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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介:
最近公司在进行缓存框架方面的调研,我主要对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的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
2月前
|
存储 设计模式 监控
快速定位并优化CPU 与 JVM 内存性能瓶颈
本文介绍了 Java 应用常见的 CPU & JVM 内存热点原因及优化思路。
608 166
|
21小时前
|
存储 设计模式 监控
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
|
17天前
|
人工智能 运维 监控
2025年阿里云服务器配置选择全攻略:CPU、内存、带宽与系统盘详解
在2025年,阿里云服务器以高性能、灵活扩展和稳定服务助力数字化转型,提供轻量应用服务器、通用型g8i实例等多样化配置,满足个人博客至企业级业务需求。针对不同场景(如计算密集型、内存密集型),推荐相应实例类型与带宽规划,强调成本优化策略,包括包年包月节省成本、ESSD云盘选择及地域部署建议。文中还提及安全设置、监控备份的重要性,并指出未来可关注第九代实例g9i支持的新技术。整体而言,阿里云致力于帮助用户实现性能与成本的最优平衡。 以上简介共计238个字符。
|
2月前
|
存储 缓存 Java
Java中的分布式缓存与Memcached集成实战
通过在Java项目中集成Memcached,可以显著提升系统的性能和响应速度。合理的缓存策略、分布式架构设计和异常处理机制是实现高效缓存的关键。希望本文提供的实战示例和优化建议能够帮助开发者更好地应用Memcached,实现高性能的分布式缓存解决方案。
45 9
|
3月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
281 7
|
3月前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
4月前
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
566 1
|
4月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
1525 2
|
5月前
|
运维 JavaScript Linux
容器内的Nodejs应用如何获取宿主机的基础信息-系统、内存、cpu、启动时间,以及一个df -h的坑
本文介绍了如何在Docker容器内的Node.js应用中获取宿主机的基础信息,包括系统信息、内存使用情况、磁盘空间和启动时间等。核心思路是将宿主机的根目录挂载到容器,但需注意权限和安全问题。文章还提到了使用`df -P`替代`df -h`以获得一致性输出,避免解析错误。
132 0
|
17天前
|
存储 机器学习/深度学习 人工智能
2025年阿里云GPU服务器租用价格、选型策略与应用场景详解
随着AI与高性能计算需求的增长,阿里云提供了多种GPU实例,如NVIDIA V100、A10、T4等,适配不同场景。2025年重点实例中,V100实例GN6v单月3830元起,适合大规模训练;A10实例GN7i单月3213.99元起,适用于混合负载。计费模式有按量付费和包年包月,后者成本更低。针对AI训练、图形渲染及轻量级推理等场景,推荐不同配置以优化成本和性能。阿里云还提供抢占式实例、ESSD云盘等资源优化策略,支持eRDMA网络加速和倚天ARM架构,助力企业在2025年实现智能计算的效率与成本最优平衡。 (该简介为原文内容的高度概括,符合要求的字符限制。)

热门文章

最新文章