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

时间:2020-03-06 14:36:20  来源:igfitidea点击:

如今,服务器虚拟化是一件大事,所以我要负责在虚拟服务器上安装一些软件,然后看看会发生什么。简而言之:" rsync"传输会迅速将虚拟服务器带到它的膝盖上。虚拟化主机是一台功能强大的机器,没有其他负载。我不认为这应该发生。 "顶部"显示了较高的平均负载,而CPU等待量接近100%。某个地方存在巨大的瓶颈。

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

我在这里想看到的是有关虚拟化的一般建议,以及指向好的文章和其他资源的指针,我和其他人可以用来指导自己。

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

我对这个问题的广泛性表示歉意。我只是不知道要问一些有用的具体问题。

编辑:关于我的特定问题的更多信息:

  • XAN半虚拟化,3个客户CentOS
  • 本地SCSI磁盘上的所有guest虚拟机都有一个完整的硬件RAID控制器
  • rsyncd在1个来宾操作系统上运行,通过100mbps LAN从远程非虚拟服务器启动传输

就像我之前说过的,我真的无法提供大量有用的数据。我并不是真的希望直接解决这个问题,我很乐意为从哪里开始建立更好地理解这类问题所需的技能提供了指导。

解决方案

我使用rsync使我们(全新)虚拟环境的某些部分保持同步,而没有任何问题。我认为这不是虚拟化问题,也不是我们似乎已经发现的I / O问题。

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

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

我们可以在Linux / Unix上使用iostat来获取有关I / O的反馈,而且还有iotop,尽管许多发行版中都没有打包。

我打算对此发表评论,但我认为它在公开场合会更加有用:

我们能否添加有关设置的更多详细信息:

  • 哪个VM服务器? (VMware Server,VMware ESX,MS VirtualServer,MS Hyper-V,还有其他功能吗?)
  • 来宾使用哪个操作系统? (Windows,Linux,32位,64位?)
  • 访客存储在哪里? (是本地磁盘,还是在NAS或者SAN上?)
  • 我们是在同一VM服务器上的来宾之间,还是在来宾和物理服务器之间进行同步?
  • 如果跨网络,网络速度有多快?

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

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

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

  • 固定磁盘分配。这样,我们可以获得连续的驱动器空间供VM驻留。
  • 计划对VM Slice OS和主机服务器驱动器进行碎片整理。碎片化是你的敌人。
  • 确保正在正常结束服务器会话。在启动虚拟OS时,请勿仅关闭VM Slice,否则会导致巨大的磁盘碎片。虚拟操作系统需要执行关闭/重新启动过程。