应用程序性能的左右手:网络和存储I/O

应用程序的性能表现可能会随着系统管理员做出的决定而发生变化。对于网络、I/O、内存和CPU来说,企业需要根据自身需求作出选择。这篇文章是介绍影响虚拟应用程序性能表现因素系列文章的第二部分。

网络是应用程序之间相互通讯的桥梁,也是用户使用应用程序的前提条件。对于应用程序来说,网络是必要组成部分,但是应该如何在应用程序当中进行配置呢?我们都知道网络对于基础架构十分重要;然而,应用程序和基础架构在网络方面的需求并不完全相同。现在数据中心当中最为常见的网络带宽是1GB,除了网络备份之外,很少有应用程序能够完全占用全部带宽。这主要是因为限制应用程序性能表现的硬件瓶颈主要在于硬盘,而且大多数应用程序都经过良好设计,在通讯方面进行了优化。

如果对30台拥有1GB网络连接的物理服务器进行虚拟化,那么通过简单的数学计算可以得出总共需要30GB的网络带宽。然而,如果每台服务器只占用100MB的带宽,那么30GB的网络带宽需求将会锐减为3GB。尽管并非所有应用程序都拥有相同的网络需求,但是通常应用程序都会受到硬件因素的限制,网络带宽并不能成为性能瓶颈。现在网络连接已经开始超过10GB,并且向25GB和100GB的范围发展,因此大多数应用程序都不会遇到网络方面的限制。对于应用程序领域当中的软件定义网络技术来说,应用程序服务器自身应该并不知道网络基础架构的存在,因为其位于虚拟化的“物理层”之下。所以是否使用SDN需要由业务部门和基础架构部门共同决定。这种技术能否成为未来的发展趋势?很有可能,但是企业选择的时机将会成为关键因素。

管理IOPS以减少性能瓶颈

I/O才是整个环境当中真正的限制性因素。在影响数据中心性能表现的四个硬件因素当中,存储发生了最为剧烈的变化。对于传统服务器来说,受制于天生的机械特性,存储通常会成为服务器性能表现的瓶颈。不同于CPU和内存,存储的物理构造有可能限制应用程序的性能表现。如果在同一个存储系统当中同时运行多个虚拟机,那么这种性能瓶颈将会变得更加明显。然而,更大的RAID组、Meta-LUN和固态磁盘(SSD)已经极大地提升了存储系统能够提供的IOPS。在融合基础架构当中存储拥有和服务器相同的架构,因此IOPS得到了进一步提升。但存储是所有因素当中唯一一种新技术不能简单取单传统技术的因素。SSD并没有完全替代传统机械硬盘,尽管其性能表现已经得到大幅提升,但是随着容量增加其价格也会快速提升,这是一个无法忽略的因素。

如何构建网络和存储基础架构

这种情况通常会产生机械硬盘和SSD两者同时存在的混合环境。从磁盘价格差异方面来说,这不再是一种性能表现问题,而是成本问题。如果让应用程序所有者在性能或者容量方面做出选择,那么通常会得到相同的答案:SSD。采用厂商推荐的解决方案应该更加实际一些,但是这些仍然只停留在理论阶段,而不是实际生产环境当中。监控应用程序I/O是唯一的正确方式,因为其能够反映环境当中用户的真实操作情况。通常使用之后再进行监控当然不能帮助你在购买时做出选择——除了存储。存储在四种因素当中是最为特殊的,因为其通常最容易进行更改和扩展。向大多数存储架构当中添加新磁盘都不会产生中断,并且大多数存储系统都能够支持多种不同级别的存储。

由于管理员能够在不同级别的存储当中移动虚拟负载,并且不会产生中断,因此虚拟环境当中最难决定的问题之一变成了最简单的问题之一。而容量方面则相对简单一些,可以利用薄置备技术来帮助满足需求。借助于厂商提供的指导方案,管理员能够轻松找到部署存储的出发点,根据应用程序需求来扩展存储。分散购买所有设备可以让企业更加灵活地分析性能瓶颈在哪里,随后做出相应调整。由于存储通常是一个共享环境,因此能够深入分析不同应用程序之间会产生哪些相互影响。这种方式能够帮助企业避免一些常见问题,比如VDI启动风暴或者备份等。

对应用程序进行深入分析是判断如何扩展虚拟环境的最佳方式。虚拟化拥有多种特性,这些特性能够对基础架构和企业产生巨大影响。也许基础架构能够吸引大量注意力,但是不要忘记应用程序以及如何使用虚拟化来支持它们才是关键。

作者:Brian Kirsch 翻译:王学强

来源:51CTO

时间: 2024-10-11 13:20:05

应用程序性能的左右手:网络和存储I/O的相关文章

ASP.NET程序性能优化五则

asp.net|程序|性能|优化 一.使用存储过程: 1.性能方面:存储过程提供了许多标准sql语言中所没有的高级特性.其传递参数和执行逻辑表达式的功能,有助于应用程序设计者处理复杂任务.另外,存储过程存储在本地服务器上,减少了执行该过程所需的网络传输宽带和执行时间.(存储过程已经对sql语句进行了预编译,所以其执行速度比在程序里执行sql语句快很多) 2.程序结构方面:从程序的可扩展性看,使用存储过程会对程序以后的修改带来方便.比如数据库的结构改变了,只需修改相对应的存储结构,和程序中的调用部

最优化ASP程序性能

 Active Server Pages可以让动态页面很快地执行,但是,在代码中和数据库的连接上加入一些技巧,就能让程序更快地执行.这是一篇关于如何精制脚本程序以及ASP特征来达到最大速度的文章.任何在用户点击按钮到在屏幕上出现结果间延迟都会让用户茫然,对于一个商业站点,这就意味着潜在的用户损失. ASP脚本的尺寸 我们也许不能控制用户的带宽,但是通过优化ASP站点,我们的确能够使应用达到最佳性能.许多潜在的性能收获可以通过系统调整,而不是改变代码. 因素 首先,有哪些因素可能影响ASP程序的性

ASP.NET应用程序性能优化

asp.net|程序|性能|优化 [把前一段时间给单位项目所做性能优化的一些想法整理了以下,分享交流] ASP.NET 应用程序性能优化 1 前言性能优化的主要目标是提高"并发用户数量","吞吐量","可靠性"这样几个指标. 本质上说,性能优化的工作应该是多方面的,要做到"点面结合.由表及里".比如:从代价的角度来考虑,应尽量做到改动量小,易实施:从用户角度看,应做到快速响应或快速提示:从软件结构的角度看,又要兼顾到系统结构的

如何增强ASP程序性能

程序|性能 性能是一个很重要的特征.你需要事先设计好性能指标,否则日后就要为此重新编写程序.就是说:要设想好怎样最佳化地执行ASP程序? 本文提出了一些优化ASP应用和VBScript的技巧,许多技巧和缺陷都经过了研讨.这里列出的建议已经在http://www.microsoft.com 和其他站点上进行了测试,都工作得非常好.本文假设你具备ASP开发的基本知识,包括VBScript或者JScript,ASP应用程序,ASP Session,以及其他ASP内置对象(Request,Respons

优化ASP.NET应用程序性能研究与探讨

asp.net|程序|性能|优化 摘 要 本文从页面.数据访问.字符串操作三方面探讨如何提高ASP.NET应用程序的性能,并提供了几种测试工具用于检测ASP.NET网站性能. 关键词 ASP.NET 应用程序 性能 优化 网站的性能对于ASP.NET程序开发人员来说非常重要.一个优秀的网站虽然有美观的页面设计,完善的服务功能,但是打开网页时有长时间的延迟,用户最终将会无法忍受.尤其对于大型的电子商务网站而言,每秒钟有数万用户同时访问,没有良好的网站性能,根本无法满足庞大的需求. ASP.NET作

NETGEAR解析NAS网络附加存储技术

NAS的中文名称是网络附加存储,是基于硬盘的专业存储技术.它可以直接接入计算机网络,为各种操作系统的客户端提供集中式的数据存取服务. NAS的优势 NAS的专业存储设计和为多种客户端服务的特点,让数据更加安全和便于访问.不像一般的存储设备,如U盘.1394接口存储或者CD / DVD,NAS拥有嵌入式操作系统.操作系统赋予NAS内置的智能,支持它独立的在网络上为各种客户端提供服务.NAS不需要依靠任何其他主机设备,不会出现当其他设备停机,NAS就不能访问的问题.另外,NAS包括了RAID技术,数

Web 应用程序性能优化

技巧 1 - 返回多个结果集   仔细查看您的数据库代码,看是否存在多次进入数据库的请求路径.每个这样的往返都会降低应用程序可以提供的每秒请求数量.通过在一个数据库请求中返回多个结果集,可以节省与数据库进行通信所需的总时间长度.同时因为减少了数据库服务器管理请求的工作,还会使得系统伸缩性更强. 虽然可以使用动态 SQL 返回多个结果集,但是我首选使用存储过程.关于业务逻辑是否应该驻留于存储过程的问题还存在一些争议,但是我认为,如果存储过程中的逻辑可以约束返回数据的话(缩小数据集的大小.缩短网络上

处理海量数据:网络规模存储设计的好处

考虑到这种前所未有的海量存储需求增长的预期,大型企业正在开始部署网络规模的架构:从而能够实现大规模的虚拟化.计算和存储功能.   增加存储的灵活性 网络规模的存储设计的一个基本特征是消除存储架构的瓶颈.一个单一入口点可能成为一个单点故障点,尤其是在云计算的存储需求方面.添加冗余的.昂贵的.高性能的组件,以改善这些瓶颈问题,是目前大多数服务提供商正在努力的方向,但这会非常迅速地增加成本和系统的复杂性.另一方面,一个横向扩展的网络规模系统设计能够使得在更便宜的.低能耗的硬件的所有节点之间分配数据.

Hibernate程序性能优化的考虑要点

程序|性能|优化 本文依照HIBERNATE帮助文档,一些网络书籍及项目经验整理而成,只提供要点和思路,具体做法可以留言探讨,或是找一些更详细更有针对性的资料. 初用HIBERNATE的人也许都遇到过性能问题,实现同一功能,用HIBERNATE与用JDBC性能相差十几倍很正常,如果不及早调整,很可能影响整个项目的进度. 大体上,对于HIBERNATE性能调优的主要考虑点如下: Ø 数据库设计调整 Ø HQL优化 Ø API的正确使用(如根据不同的业务类型选用不同的集合及查询API) Ø 主配置参