2009-11-04 09:32:59 来源:至顶网
虚拟化这股潮流大行其道已经有好几年了。由于众多企业越来越需要节省成本,其增长势头在最近两三年来得尤为迅猛。
虚拟化技术的工作原理如下:把多台机器整合到单单一个硬件上,每个版本的操作系统在各自的虚拟机里面运行。大家经常提到的一个问题是:“这会给以数据库为中心的应用程序的总体性能带来怎样的影响?”回答是,我们从事了大量的基准测试工作,发现确实会带来重大影响。为了明白其中原因,我们就要首先分析一下为什么大家需要进行虚拟化。行业调研公司Gartner和IDC公司一致认为,服务器只有在10%到20%的时间里得到了利用;在80%到90% 的时间里,除了只会增加机房温度外,服务器毫无作为。
虚拟化技术许下的承诺是,可以把这些闲置的计算资源重新利用起来,发挥实际作用,又能让该硬件方面的投资带来回报。我们见过一些公司把数量多达 120个的虚拟机放到单单一个硬件上。不过,知道虚拟化技术对数据访问有什么影响很重要。访问任何应用程序的数据(或者更具体地说,从数据库检索数据)可能会占用很多的CPU和内存资源,在用于数据型应用程序的所有时间中占了多达75%到95%的比重。
当CPU在80%的时间里没有使用时,你拥有闲置的CPU周期,这可以抵消拙劣的算法、拙劣的数据访问代码或拙劣的数据库连接性(JDBC)驱动程序等不足。不过,如果利用率增加到80%或 90%,这可能会成为问题。尽管虚拟化技术具有诸多优点,但它也面临自身的限制,尤其是扩展性问题。一旦硬件遇到自身的限制,效率低下的驱动程序或代码就会带来瓶颈,扩展性就会随之急剧下降。
比方说,某家企业可能有一个应用程序在使用应用服务器,该应用程序执行数据访问操作,连接到甲骨文 (Oracle)数据库;在100个用户的环境下运行顺畅。我们多次见过这种情况:一旦这个环境进行了虚拟化处理,再也没有剩余的CPU和内存可供使用,这个应用程序会突然开始运行不畅。究其原因,结果通常不是数据访问代码(Hibernate、JDBC、。NET和OBDC等)没有得到高效编写,就是某个中间件(某种驱动程序)编得不够高效,占用了太多的CPU或太多的内存。结果是,在虚拟化环境里面,内存、CPU和磁盘(有时还有网络)的过度使用确实成了一大问题。
10年或15年前,当时硬件速度比较慢、价格又比较贵,代码必须编得更好,或者至少编得更高效。当硬件成本大大降低、速度大大提高后,这个要求却不复存在了。对虚拟化技术而言,同样这些问题再度变得很重要:代码必须更好;算法必须更好;数据库中间件必须更好。实际上,如果要获得虚拟化带来的种种优点,每一个方面都必须做得更好。如果考虑一下扩展性降低问题,缺乏效率的编写方法带来的成本就一目了然。《数据访问手册》(Data Access Handbook)里面讨论的最佳实践对虚拟化取得成功而言甚至更有必要。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。