服务器虚拟化:如何避免,定位和修复瓶颈?

时间:2008-09-23 15:28:52

标签: performance virtualization system-administration

服务器虚拟化现在是一件大事,所以我的任务是在虚拟化服务器上​​安装我们的一些软件,看看会发生什么。长话短说:rsync传输会立即使虚拟化服务器陷入困境。虚拟化主机是一台功能强大的机器,没有其他负载;我不认为这应该发生。 Top显示高负载平均值,cpu iowait接近100%。某处有一个巨大的瓶颈。

我不是一个程序员而不是一个系统管理员,我缺乏如何在随机谷歌搜索之外修复这个问题的知识。我怀疑我并不孤单。

我想在这里看到的是关于虚拟化的一般建议,以及指向优秀文章和其他资源的指示,我和其他人可以用来教育自己。

  • 可以使用哪些工具(甚至标准的unix工具)来查明瓶颈?
  • 应遵循哪些指标以确保顺利进行?
  • 什么样的东西可以有效地虚拟化?
  • 什么样的设置注定要失败?

我为问题的广泛性道歉。我只是没有知识就这个提出有用的具体问题。

编辑:更多关于我的具体问题:

  • XAN半虚拟化,3 x访客CentOS
  • 本地SCSI磁盘上的所有guest虚拟机,都有一个完全硬件raid控制器
  • rsyncd在1个guest虚拟机操作系统上运行,从远程非虚拟化服务器通过100mbps LAN启动传输
像我之前说过的那样,我真的无法提供大量有用的数据。我真的不希望直接解决这个问题,我很高兴能够指出从哪里开始构建更好地理解这些问题所需的技能组合。

3 个答案:

答案 0 :(得分:2)

我使用rsync来保持我们(非常新的)虚拟环境的某些部分同步而没有任何问题。我不认为这是一个虚拟化问题,因为它是一个I / O问题,你似乎已经确定了它。

我发现虚拟化在硬盘上非常非常非常繁重,而且只有在主机盒上拥有的客户越多,这种情况就越糟糕。对于I / O密集型的计算机,请考虑将其磁盘访问权限从其他主机分段。您使用的是任何类型的SAN技术吗?我们发现在我的工作场所非常有用(我们使用两个8核Sun Intel服务器和一个1TB 12磁盘iSCSI阵列)。

虚拟化软件提供商是否完全支持您的硬件?如果您尝试在不受支持的硬件上运行,那么您的磁盘控制器很可能不会使用最好的驱动程序,这可以解释您的磁盘访问速度慢。

您可以在Linux / Unix上使用iostat来获取有关I / O的一些反馈,并且iotop也有{{1}},但它还没有打包在许多发行版中。

答案 1 :(得分:2)

我打算将其放在评论中,但我认为它在开放时更有用:

您可以添加有关设置的更多详细信息:

  • 哪个VM服务器?
    (VMware Server,VMware ESX,MS VirtualServer,MS Hyper-V,还有什么?)
  • 来宾的哪个操作系统?
    (Windows,Linux,32位,64位?)
  • 客人在哪里存放?
    (本地磁盘,还是NAS或SAN?)
  • 您是在同一个VM服务器上的guest虚拟机之间,还是在guest虚拟机和物理服务器之间进行搜索?
  • 如果是通过网络,网络有多快?

在任何环境中进行性能调整都是90%收集数据和10%分析。与物理环境相比,虚拟化环境需要考虑更多变量,但更重要的是,它们具有与物理环境不同的响应曲线。某些应用程序在虚拟化环境中的性能优于物理环境;别人不会。您必须了解应用程序的要求以及实现的约束。

如果您注意细节,我不认为有任何软件专用应用程序无法在虚拟服务器上成功部署。 (需要无法成功虚拟化的自定义硬件的应用程序是另一个问题。)

答案 2 :(得分:0)

副手我会说这是I / O问题。在虚拟环境中,影响性能的最大因素是主机磁盘的状态。我们为优化性能所做的事情是:

  1. 修复了磁盘分配问题。这样,您就可以获得一个连续的驱动器空间块供VM使用。
  2. 安排VM Slice OS和主机服务器驱动器的碎片整理。碎片化是你的敌人。
  3. 确保正在优雅地结束服务器会话。在弹出虚拟操作系统时,不要只关闭VM切片,因为这会导致巨大的磁盘碎片。虚拟操作系统需要执行关闭/重启过程。