云应用程序的容量测试

项目越大越应该进行容量测试。2008年,英国西斯罗机场开放了新修建的航站楼,即5号航站楼。该航站楼项目耗资43亿英镑,但是没有比这个项目更庞大的项目了。但是5号航站楼开放首日的效果并不理想,包括人为因素和技术因素在内的多种状况导致了当天34架航班被取消,这成了接下来几日英国媒体竞相炒作的热门话题。容量不足的行李处理系统、痛苦等待的旅客等各种问题都是媒体关注的焦点。

云计算庞大的资源能否帮助我们在面对向西斯罗机场5号航站楼这样的大项目上实现更精确的容量需求模型设计呢?造成34架航班取消以及数千旅客痛苦愤怒的原因很多,但这对西斯罗机场的整体影响并不大,这也算是它的成功之处吧。而企业能否在云计算中要求拥有更好的容量管理工具呢?

检查容量

我希望在应用程序真正公开运行前就能知道程序所需的容量。就好像在飞机飞行前都要进行测试,避免飞上天空突然翅膀折断一样。因此我要在容量测试中搞清楚以下三个问题:

系统属性:在我的应用程序为客户服务前,应该列出所有可用资源,并找到系统负载的最大值。 产生综合负载:通过一个模拟器来模拟客户使用情况,模拟出日常客户对系统的使用负载。 监控系统变化:.当应用程序服务的客户量增加时,监控系统的负载变化情况。

此类工具除了可以测试系统容量,还可以测试其它任务,比如压力测试、性能监控,以及容量管理等。有些公司利用开源工具如multi-mechanize, Selenium以及JMeter 开发了适合自己的容量测试工具,其它公司则直接从云测试工具供应商,如Soasta, Loadstorm以及Cloudsleuth处购买相应的产品。而我当初曾使用过很多命令行工具,如lshw, top, tcpdump, df和ab。

检查整个技术堆栈

任何云应用都是建立在多个技术层之上的。

最顶层的是我们定制的业务应用程序和购置的办公应用程序。 虚拟机和操作系统支持程序。 运行在物理主机上的云供应商的操作系统和监管程序。 云供应商所拥有的最底层的硬件设备和网络设备。

云供应商所能控制的层级,即硬件、网络和超级监管程序等,是对用户隐藏以及用户无法测量的。一条锁链的强度,取决于锁链中最薄弱的那个环节,而在云架构中,这个链条很长环节很多,比如光纤、PDU、路由器、交换机、负载平衡、代理服务器等等。

AWS 控制台可以帮助我们监控CPU使用率,磁盘读写情况,网络流量情况等,而且这些功能都是免费的。虽然对于更高级的监控,这款免费工具无法提供,但是对于新手来说,这个工具已经够用了。对于更复杂的监控需求,AWS提供了Cloudwatch服务可以实现。

AWS监控窗口

技术堆栈的虚拟机层包括了磁盘、CPU和内存。而通过操作系统,这些设备都可以被监控,并且监控数据可以被系统监控工具获取并进行分析处理。而顶层,即应用层也是一样的。

云服务容量测量中存在的问题

我相信云服务供应商肯定会提供足够的冗余容量。不过这方面的具体数据我无法提供,因为没有哪个供应商会将自己的系统架构数据细节拿出来与大家分享。但是我相信未来两年,这些数据将会逐步透明,因为未来将会有越来越多的云服务供应商出现,企业向云平台迁移的速度也会达到高峰,服务水平将成为关键因素。未来云服务的价格将出现下滑,虚拟机与物理主机的比例将进一步提升。

对于虚拟机的测量方法,可能不如云供应商的物理主机测试的那么精准,因为虚拟机背后还有各种监管机制。这些监管程序会根据需求随时调整各个虚拟机的资源分配情况。这就好像是空管中心面对大量的飞机和数量有限的跑到所作的工作一样。

如果我的应用程序经常闲置,而另一个呼叫中心服务相当繁忙,那么CPU资源和网络带宽资源,肯定不会分配给我。如果我的存储需求极低,而某个用户需要存储几十个G的数据,那么物理磁盘空间肯定也是分配给那个用户的更多。而由于系统时钟是在虚拟的时间中工作,并不是实时的,因此由于监管程序导致的延迟、错误读取或其它小问题都会影响到我上述的对于云服务的测量方案。

时间: 2024-09-27 02:19:06

云应用程序的容量测试的相关文章

为Windows Azure设计强大的云应用程序

当我向http://www.aliyun.com/zixun/aggregation/7155.html">开发人员谈及将应用程序作为产品开发与作为服务开发之间的区别时,他们纷纷投来异样的目光.您在本地编写的应用程序将写入您所购买且已在您个人所有的计算机硬件上安装和配置的软件中.而在云中编写的应用程序将写入一系列可供您和公众使用的服务中.现在我们来探讨一下这两者之间有何不同. 当您为本地服务器编写应用程序时,您对此硬件和软件集满怀期待.您期望每次登录都能成功连接.您掌控着此服务器上运行的应

盒装软件向云应用程序和服务转变的六个关键

六大关键因素将帮助软件公司实现从销售产品包到提供在线订阅和服务的转变. 云计算正向高管们的战略讨论中心靠拢.虽然有关云计算安全性和决策权的担忧依然存在,但其更快的处理速度.更好的网络连接,伴随着移动设备和大数据等技术进步的普及,越来越受到所有行业公司的青睐--开始购买他们的软件服务(SaaS),而非购买放在盒子里的软件.在SaaS模式下,公司可以直接从异地的中央服务器访问关键应用程序;因为云中的数据量是有弹性的,因此公司可以快速扩大或删减各种应用,并且他们只需购买所需的服务.此外,系统可自动更新

DevOps和IaaS开启云时代的开发和测试

背景 在软件发展的几十年历程中,人们一直在孜孜不倦地追求用更快的速度交付更高质量的软件及服务.无论是不断革新的软件工程思想,还是持续优化的编程语言及工具,亦或是纷纷出现的可复用开发.测试框架,无不大大提高了整个软件开发及交付的效率.但是,与此同时,软件系统复杂度急速上升,可靠性要求越来越高,这让软件快速交付依然非常具有挑战.尤其是进入互联网和云计算时代,市场竞争异常激烈,人们对于软件交付的周期已经从原来的以季度.年度为单位缩短到以天计算,以便在市场中快速试错,找到真正的用户需求.这些都给传统的软

选云服务? 应先对云提供商进行渗透测试

本文讲的是选云服务? 应先对云提供商进行渗透测试,随着企业大数据量的增长,企业对于部署云计算也开始提上了日程.然而,由于企业对于云供应商无法清楚的了解所提供的云服务的安全性,因此,企业有必要在选择云提供商之前对其进行漏洞评估和渗透测试. 了解云应用程序或云服务背后的情况有时候很困难,但也不全然是这样.对云服务提供商的审计通常先要弄清楚:审查.了解和评估的需要,但通常企业不是根据他们面临的风险来选择审查云供应商的. 在对云服务供应商进行审计之前,企业要确定好目标,弄清楚你关心的是什么,你想要保护什

想开发云应用程序?先选择合适的PaaS!

从一个方面来分析,开发云应用程序的平台即服务模式有两种:一种是专用模式,托管在本地或私有云中;另一种是公共模式,由第三方提供商来托管,并采用订阅支付模式.那只是问题的一个方面.还可以以一种全然不同的方式来分析PaaS:这种方式基于与云环境的联系. 据长期的IT和云计算顾问Judith Hurwitz声称,从这种联系的角度来分析PaaS,会发现存在两种不同的模式.其中之一是,PaaS与某个特定的软件即服务(SaaS)环境联系在一起,比如Salesforce的Force.com和Heroku Ent

如何基于Web应用程序安全经验来开发云应用程序?

随着越来越多的企业 寻找可部署在云供应商环境中的应用程序,对于健全的安全措施和技术的需求也变得至关重要. 那么,如何在云环境中开发应用程序以最大限度地提高安全性呢?这些云应用程序是否有别于内部应用程序?在开发周期和质量保证(QA)过程中,需要有哪些变化?在把应用程序迁移到公共云环境之前,上述所有问题都需要解决.在本文中,我们将提供一些指导,如何专为云环境开发安全的应用程序,以抵御如今大部分常见攻击.我们还将探讨一些需要落实到位的控制因素,以确保基于云的应用程序在开发和部署时的安全性.如何安全地开

如何实现云应用程序安全策略自动化部署

安全性是采用云技术所必需的一个要素,缺乏安全性通常会阻碍云技术的采用.然而,随着安全策略和合规复杂性.IT 复杂性和 IT 敏捷性的增加,将安全策略转化为安全实现的任务变得更加耗时.重复.昂贵且容易出错,并且很容易增加最终用户组织的安全工作量.自动化可帮助最终用户组织(和云提供商)减少该工作量,并提高策略实施准确度.本文将重点介绍一个特别有趣的.富有挑战且经常被遗忘的话题:应用程序层的安全策略自动化. 云应用程序安全性自动化 应用程序安全策略自动化主要是一个自动化流程,将人类可理解的安全需求(比

Windows Azure用于构建强大云应用程序的组件块

继发表设计强大的云应用程序博客之后,http://www.aliyun.com/zixun/aggregation/13357.html">Azure CAT 团队计划提供有关 MSDN 代码库上发布的代码项目 Windows Azure 中的云服务基础中的组件的详细信息和技术说明.我们将开始发布一系列博客和技术文章,对这些基础构建块(我们称之为组件)的使用进行说明.在接下来的几个月内,我们将每隔一周在周四发布一系列博客,提供云服务基础的各个组件的详细技术说明. 这些年来,我们一直致力于与

对你的ASP程序作负载测试

程序 J.D. Meier September 27, 1999 内容介绍剧情测试需求介绍测试工具WAS 分析测试结果影响表现和可测性的因素模拟多用户运行需要登录认证的测试WAS的应用技巧资源 介绍当我们从传统的CS结构的应用程序转到当前流行的Web空间的程序时,我们发现我们在尝试跟上不断增长的可测性需求和性能要求.其中一个最大的挑战在于如何确定你的程序能最多支持多少个用户的访问.你如何面对这一挑战?设定清晰的性能目标并使用Web压力测试工具会是一个好的开始. 这篇文章将会介绍如何对你的ASP程