热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

别想当然之虚拟机的内存(1)

定制计算型服务器典型配置完全可以

    推出“别想当然”系列就是想引导大家再多想一步,特别是和我一样的“甲方”兄弟们,很多概念其实我们都知道,多思考一些,就少一些“上当”,别被人牵着鼻子走。

    1年半来陆陆续续写了一些文章,主要是想告诉大家什么是云,怎么用云,怎么用好云。在我的公众号的二维码下面,我一直写着一句话“致力于云计算的普及和应用”。可以在本公众号里一起分享你的经验,我的联系邮箱:gj.zj@chinatelecom.cn



    中国电信定制的计算型服务器的典型配置是28128G内存。很多人反映说内存配小了。他们在实际配置中觉得内存不够分配,因为申请者往往认为内存越多系统运行越稳定越快,所以往往会提出很大的内存需求。其实在现有的服务器上,并不是配置cpu、内存越多就会越好。(关于CPU的按需使用可以参考以前的文章《基础知识:虚拟机的构成和CPU虚拟化》和《基础知识——  虚拟机CPU分配原则》。)

 

    原来的CPU和通过北桥模块和内存相连,是一个典型的SMP架构,如图1。在SMP架构上的CPU都是通过总线来访问内存,每个CPU到内存的路径是一样长的。但是这种架构下总线的带宽就成为瓶颈了,这样CPU的横向扩容就会遇到困难。


图1

    当CPU的主频发展到了一定阶段,遇到了天花板,再想增加能力,就只有采取新的“NUMA”架构,如图2。在这个架构中CPU是通过内存控制器和内存相连,同时CPU之间互联。比如28128G内存的服务器,每个CPU核直接管理8G内存,访问自己控制的内存速度是很快的,也可以访问到别的CPU管理的内存,但需要通过控制这个内存的CPU


图2

好比一件衣服掉在自己的院子里,马上可以捡回来,但是如果掉到别人家的院子里了,不翻墙进入别人家院子直接去捡,而是需要先去敲门,主人听到了,才会开门,你还要说明来意,才会让你进到院子去捡衣服。


    一般情况,CPU访问本地内存的速度比访问其他CPU控制的内存快34倍。所以,从NUMA架构的角度来说,最佳的性能是只从自己管理的内存中获取信息。

 

    正常的应用需要的计算能力和内存是成正比的。经过实践,在虚拟化的“小人国”内,1CPU核配置8G内存是完全够用的。觉得物理机配置128G内存不够,其实是内存不够分配,但是CPU资源还有多余。看看内存利用率,特别看看活动内存利用率,就知道其实大部分情况是内存分太大了。实际应用中CPU核很多应用是用不完的,于是有了虚拟机的“超配”。在超配下,实际配置的vCPU个数大于实际物理机CPU个数。内存也可以超配,只是大家用的不像CPU超配用的普遍,担心内存超配会导致虚拟机崩溃。(其实内存的超配也是安全可行的,结合下周的内容来讲。)如果内存不想超配,那就按需来分配内存,不要人家要多少就给多少。别忘记云计算的本质是按需分配NUMA架构下一个CPU核配置小余等于8G内存,效率最高。

 

    NUMA架构带来的问题在物理机上或虚拟机上都是差不多的。比如运行在NUMA架构服务器上的“很忙的数据库就会遇到问题,有些数据库对NUMA的特殊支持和优化可以解决。但是虚拟机实现的原理来看,NUMA带来的问题会更放大一些,这块内容下周展开。




推荐阅读
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • 探讨如何通过编程技术实现100个并发连接,解决线程创建顺序问题,并提供高效的并发测试方案。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
author-avatar
书友70030711
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有