《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一1.2.2 内存

简介: 本节书摘来华章计算机《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一书中的第1章 ,第1.2.2节,[美] 克里斯托弗·库塞克(Christopher Kusek) 著 吕南德特·施皮斯(Rynardt Spies)姚海鹏 刘韵洁 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

本节书摘来华章计算机《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一书中的第1章 ,第1.2.2节,[美] 克里斯托弗·库塞克(Christopher Kusek) 著 吕南德特·施皮斯(Rynardt Spies)姚海鹏 刘韵洁 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2.2 内存

内存是一个有限的资源。当建立内存基准时,通常会有一个固定的模式。所有事情是平等的,如果你发现应用程序、工作负载以及用例没有明显的变化,你就可以预测内存的消耗量及需求量了。
VMware懂得内存在架构中的重要性,所以VMware多年来进行了大量的投资。不管是内存过量使用、压缩还是膨胀,内存本身就是一种被分配的资源。但值得一提的是,虽然你可以在一个只有64 GB的RAM的系统上分配128 GB的RAM,但这并不意味着你总是应该这样做。对应用来说,建立内存基准是一种微妙的平衡。如果你配置了太少的内存,系统最终将交换到磁盘;如果你配置了太多的内存,最终将给系统过量提供。这种微妙的平衡经常被看作内存分配的最佳点。对大多数人来说,这个过程往往是相当随意的,取决于应用程序和操作系统。当运行32位应用程序时这样做很容易,因为系统无法处理超过3~4GB的RAM,一般建议固定分配4GB的内存。
当涉及64位操作系统和能够使用大量内存的应用程序时,你可能会假设在实际运行它并随意分配资源。结果是,一个可能只需要512MB或768MB的虚拟机被分配了1GB、2GB、4GB或更多的RAM。更进一步,如果过量构建或者过量配置如Exchange 2010这样的应用,最小都有可能是12GB、24GB甚至36GB的RAM。
图1-2显示一个分配4GB内存的Exchange 2003服务器的工作负载样例。

image


我们分析这30天中此应用程序的基准,最低约327MB,最高平均可达到1.6GB的内存分配。如同这个系统一样,所有工作负载都可能经历一个“尖峰”,可用4GB但需求超过了5.6GB,但这可以看成偶然出现的异常情况。
幸运的是,VMware使用的内存增强的方法(第5章)能够使一个意外的尖峰不会对虚拟机的操作系统和应用程序产生破坏性的影响,如6月22日的尖峰(图1-2)。
还有一个方面VMware没有忽视,那就是它可以让你足够了解,你是否为架构做出正确的决定以及这些决定的度量。通过vCenter,你可以深入了解正在运行的应用程序使用内存的细节(图1-3)。
通过图1-3我们能立刻知道,此应用程序在前30天使用低于2GB内存且运行良好,甚至在它的最高点。在虚拟机的vCenter中使用性能选项卡等工具,可以让你方便地建立基准。与物理服务器不同的是,物理服务器内存的获得需要通过虚拟化进行重大更改,而我们可以简单地关闭主机,添加额外内存,或者如果一开始碰巧供应不足我们可以把它重新联机。

image


需要确定的重要一点是,当我们为虚拟机分配内存时,永远不会有“错误的”分配。你可能为一个特定的客户分配了过少或过多的内存,但这些决定不是一成不变的。如果有需要,你可以自由地后退一步,重新增加或减少所分配的内存量。

相关文章
|
23天前
|
监控 JavaScript 算法
如何使用内存监控工具来定位和解决Node.js应用中的性能问题?
总之,利用内存监控工具结合代码分析和业务理解,能够逐步定位和解决 Node.js 应用中的性能问题,提高应用的运行效率和稳定性。需要耐心和细致地进行排查和优化,不断提升应用的性能表现。
172 77
|
25天前
|
存储 缓存 JavaScript
如何优化Node.js应用的内存使用以提高性能?
通过以上多种方法的综合运用,可以有效地优化 Node.js 应用的内存使用,提高性能,提升用户体验。同时,不断关注内存管理的最新技术和最佳实践,持续改进应用的性能表现。
116 62
|
13天前
|
机器学习/深度学习 人工智能 算法
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
94 30
|
21天前
|
存储 缓存 监控
如何使用内存监控工具来优化 Node.js 应用的性能
需要注意的是,不同的内存监控工具可能具有不同的功能和特点,在使用时需要根据具体工具的要求和操作指南进行正确使用和分析。
64 31
|
18天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
51 7
|
15天前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
23天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
76 7
|
19天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
48 1
|
21天前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
|
25天前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
31 4