服务器虚拟化性能瓶颈怎么办,如何突破虚拟化三大瓶颈

如果你希望在应用虚拟化技术的过程中不出现任何问题的话,那么显然这是不切合实际的期望。虚拟化技术能给你的数据中心带来诸多好处,但是为了可以利用虚拟化的优势,你需要了解可能会面对哪些问题。

即使虚拟化技术已经被应用到了许多企业中,包括数据中心,但它还是一项新兴技术,仍然有很多需要克服的技术难题。

找出性能削弱的原因并非易事,而且这可能在生产环境中引发很多问题。服务虚拟化和存储虚拟化都可能存在问题,但是他们的本质是不同的。如果你知道如何应用的话,其实一些问题是很容易解决的,这样你在虚拟化数据中心的时候就不会碰到那么多挑战。

虚拟化往往取决于你正在运行的应用类型。所幸的是,有很多例如VMware AppSpeed的软件程序,旨在虚拟应用的响应时间内发现是否有性能水平的降低,提供处理解决这个问题的方案或者VKernel Capacity Bottleneck Analyzer Virtual Appliance等工具。

甚至有专门针对某个操作系统的计划--VMWare的Virtual Data Center Operating System--旨在解决虚拟化的瓶颈以及其他性能/管理问题,不过这种操作系统是否能像期望的那样运行现在还无法得知。

解决虚拟化瓶颈的方法有很多。最常见的与CPU或者RAM瓶颈、I/O瓶颈和存储瓶颈有关。虽然如何解决这些瓶颈没有统一的看法,但是可以遵循一些基本的原则。

CPU/RAM瓶颈

CPU/RAM瓶颈是这三个瓶颈中最容易找到并且解决的。正如你所知,虚拟化需要功能更完善的设备--因为虚拟要在一个物理服务器上运行多个逻辑设备,你不能期望一个1GHz的CPU或者一个512MB的RAM完成5台计算机的工作,对吗?这就是为什么你需要增加更多的RAM或者升级CPU。升级RAM或者CPU一般就可以解决CPU/RAM瓶颈,所以这个问题往往很容易解决。然而,你可能会面临一些限制--例如,你不能增加超过主板所能支持的更多RAM或者处理速度更快的CPU。

解决CPU/RAM瓶颈的另一个方法就是配置更少的虚拟服务器。这将减少设备上的工作负载和降低性能。虚拟化技术的理念就是利用未被充分利用的计算能力,同时不会过度应用导致设备崩溃,所以如果你发现主机设备无法处理的话,只要终止其中一些处理负载并且其转移到其他主机上就行了。

当没有足够的RAM空间的时候,系统就将启动向磁盘的交换,这将降低设备运转速度,导致更严重的I/O瓶颈。这甚至消耗了更多有限的CPU资源和I/O能力。在虚拟化环境中I/O瓶颈是本身存在的,那么为什么还要让情况更糟?

I/O瓶颈

I/O瓶颈是虚拟化环境中最常见的问题,它主要依赖于你正在运行的应用,但是大多数虚拟服务器往往需要比服务器更多的连接,而这里是不使用虚拟化的。因此当你计划和架构虚拟解决方案的时候一定要考虑到这一点。

这样,当不采用虚拟化技术的物理服务器运行一个或者几个应用(这些应用需要占用所有I/O资源),虚拟服务器就要运行更多的应用,每个应用需要独立的I/O资源。这反过来就要求有更多的I/O资源--每个设备的6到10个端口,这大约是不采用虚拟化技术的物理服务器的2到3倍。因此,这是解决I/O瓶颈的最好方法--增加更多连接、或者更有针对性的解决方案,这既提供了所需的互连性又不需要更大型的机架设备。虽然现在市场中有这样的解决方案,但是其中增加了虚拟化的成本,它解决了I/O方面的难题。

存储瓶颈

从技术上来讲,存储瓶颈是I/O瓶颈的衍生物,但是因为他们是最常见的虚拟化瓶颈,所有我们要分开讨论这个问题。一般来说从NAS到SAN存储的连接是最常见的问题根源。大多数虚拟化解决方案支持NAS、SAN和iSCSI,但并非所有虚拟机可以直接与之相连接。如果虚拟化不能直接与存储连接的话,这就意味着需要更长的响应时间,或者可能导致存储操作发生故障。

主要存在4种与存储相关的瓶颈--虚拟服务器中资源的超额分配磁盘驱动器和目标存储系统中资源的超额分配、SAN架构资源的超额分配以及目标存储端口资源的超额分配。超额分配的情况很常见,它导致存储利用率的提高,但如果你估计错误的话,存储就会成为瓶颈所在。你需要对每个应用的存储需求进行监控并以此来分配资源,而不是采用通常的分配原则。虚拟应用需要存储路径,它的数量是决定最优化分配率的标准之一,但是每个应用的操作数和特性更加重要。增加更多的存储容量并不是一个解决方案,因为你实际上需要的是更好的互连性,而不是存储容量。

如果虚拟化技术所带来的问题仅仅局限于我们上述的这些那就是万幸了。实际上,往往会有2个甚至更多与虚拟化相关的因素导致某个问题,除非你将所有这些问题检测出来,否则他们将一直存在。但是这与非虚拟化设备是不同的吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2017-2018-1 20155229 《信息安全系统设计基础》第十四周学习总结

2017-2018-1 20155229 《信息安全系统设计基础》第十四周学习总结 对“第三章 程序机器级表示”的深入学习 我选择这章的理由是第一次学的时候还是不太理解,老师也有说这章建议在认真学习,所以本周的学习任务是认真再次学习这一章c语言、汇编代码以及机器…

python中为什么推荐使用with_Python中的with关键字使用详解

这篇文章主要介绍了Python 中的with关键字使用详解的相关资料,在Python中,with关键字是一个替你管理实现上下文协议对象的好东西,需要的朋友可以参考下">在 Python 2.5 中, with 关键字被加入。它将常用的 try ... except ... finally ... 模式很方便的被复…

create table as select性能测试

转载自:http://blog.csdn.net/yangzhijun_cau/article/details/7396088 --------------------------------------------------------------------------------- 原表270W数据,无照片,字段比较多,有50个左右 测试机是一个虚拟机&a…

类似索引Model套Model之 iOS模型闲聊二

看下界面, 这是类似于索引的页面, 只不过木有右侧索引条的布局. 如果想了解通讯录索引的,请移步iOS - 高仿通讯录之商品索引排序搜索. 提供思路如下: 分析界面及接口用 MVC 设计模式来实现(其实核心点都在下面5)创建内外层 Model 并绑定两者 Model两者 Cell 布局的实现 (便于后…

输入法画面_搜狗输入法:用AI技术谱写诗意生活

十九世纪著名的思想家斯宾塞曾说:科学本身就富有诗意。这里应该包含两种意思,字面上,科学是饱含文字之美的,比如原理和规律的推演,仅通过文字符号的简单排列,便有了生机。但深层次上科学又不止于文字&#…

hadoop伪分布式(单机版)安装,Linux

一、下载 1、hadoop官网下载:https://archive.apache.org/dist/hadoop/common/ 进入stable文件夹里下载,这是稳定版本。 stable/ 本文的版本是 hadoop-2.7.2.tar.gz 2、jdk下载,JDK7及以上,本文用jdk8-64位 二、版本区别 2.…

c++-add two numbers 两个链表相加

题目描述 You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. Input: (2 -> 4 -> 3) (5 -> 6…

城轨的两类时钟系统均同步于_基于两台SDS3000示波器同步产生“8通道”示波器...

在很多应用场合需要4通道以上的示波器,但是市面上极大部分示波器最多只有四通道,而且没有外部输入的同步时钟接口。 有什么快捷的方法获得更多通道功能的示波器? 最简便的方法是:将两台示波器的辅助输入信号作为触发源,同时连接到…

Linux设置ssh免密码登录

一、SSH来源 对于需要远程管理其它机器,一般使用远程桌面或者telnet。linux一般只能是telnet。但是telnet的缺点是通信不加密,存在不安全因素,只适合内网访问。 为解决这个问题,推出了通信加密通信协议,即SSH&#x…

解析json数据_Retrofit同时解析JSON和XML数据格式

前言Android开发中,我们会经常遇到前端需要解析两种数据格式(json和xml),比如自己服务器返回的是json格式的数据,我们做微信登录的时候,微信返回的格式又是xml格式的。我们可以通过自己编写Retrofit的ConverterFactory来做到可以同时解析两种…

ORACLE 小时值必须介于1和12之间 解决方法

ORACLE数据库查询语句: "select * from dual where time>to_date(2012-10-29 19:45:34,yyyy-mm-dd HH:mi:ss)"当执行时,会抛出错误:ORA-01849: 小时值必须介于 1 和 12 之间 01849. 00000 - "hour must be between 1 and 1…

jenkins+svn+maven+ssh 部署配置详细记录

2019独角兽企业重金招聘Python工程师标准>>> 先简单记录一下,后面再慢慢完善。 1、环境 jdk 1.7.0_45 maven 3.1.1 jenkins 2.3.21 jdk和maven的安装就不必多说了,主要是jenkins的安装需要说下,jenkins有war包和yum还有rpm等安装方…

k8s安装sqlite3_kubernetes环境部署单节点redis数据库的方法

kubernetes部署redis数据库(单节点)redis简介Redis 是我们常用的非关系型数据库,在项目开发、测试、部署到生成环境时,经常需要部署一套 Redis 来对数据进行缓存。这里介绍下如何在 Kubernetes 环境中部署用于开发、测试的环境的 Redis 数据库&#xff0…

oracle 都是parallel惹的祸【1-2分钟出结果变1-2秒】

原文:http://blog.csdn.net/shushugood/article/details/9000628 -------------------------------------------------------- 该项目是中国联通xxxx话务系统,我的架构设计需求设计,运维保障数据库开发,全套服务。 在今天开发完毕…

二叉搜索树(BST树)的简单实现

#include <stdlib.h>template<typename T>class CBinSTree;template <typename T>class CTreeNode{//树节点类public:CTreeNode(const T& item,CTreeNode<T>* lptr NULL,CTreeNode<T>* rptr NULL):data(item),left(lptr),right(rptr){}CTr…

Oracle 创建 DBLink 的方法

原文出处&#xff1a;http://blog.csdn.net/davidhsing/article/details/6408770 ------------------- 1、如果需要创建全局 DBLink&#xff0c;则需要先确定用户有创建 dblink 的权限&#xff1a; [c-sharp] view plaincopy print?select * from user_sys_privs where privi…

eclipse init 配置

--设置最大的堆和最小堆大小.两者一样表示固定大小.这样可以防止老年代内存扩展造成额外的gc.当然也会多占一些内存.系统内存不足的慎用 -Xms512m -Xmx512m --加大年轻代内存.减少minor gc -Xmn164m --这个是永久代大小.默认是64M,增加到96M.固定大小,减少扩展造成的gc -XX:Per…

Oracle对表空间操作的sql

管理员给用户增加不限制表空间权限 grant unlimited tablespace to 用户; 查看表空间使用情况 SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小", (total - free) "表空间使用大小", total / (…

IPKISS Tutorials------线路仿真

IPKISS------线路仿真 推荐阅读引言正文示例1------PDK中集成好的器件示例2------使用 i3.Circuit 框架示例3------i3.PCell 框架推荐阅读 Matplotlib ------ 纵坐标科学计数法含义 引言 我们知道,想要在 IPKISS 中进行仿真,首先需要对线路进行定义,但是我们知道,在 IPK…

Oracle Database 11g Express Edition使用限制,与其他版本的区别

Oracle Database 11g Express Edition是 Oracle 数据库的免费版本&#xff0c;支持标准版的大部分功能&#xff0c;11g Express Edition 提供 Windows 和 Linux 版本。 做为免费的 Oracle 数据库版本&#xff0c;Express Edition的限制是&#xff1a; 1&#xff09;最大数据库大…