代码之家  ›  专栏  ›  技术社区  ›  Internet Friend

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

  •  4
  • Internet Friend  · 技术社区  · 17 年前

    现在服务器虚拟化是一件大事,所以我的任务是在一台虚拟化服务器上安装一些软件,看看会发生什么。长话短说:A rsync 传输会立即使虚拟服务器屈服。虚拟化主机是一个没有其他负载的结实的机器;我认为这不应该发生。 Top 显示高平均负载,CPU IOWAIT接近100%。某个地方有一个巨大的瓶颈。

    我更像是一个程序员而不是系统管理员,我不知道如何在随机谷歌之外解决这个问题。我怀疑在这件事上我并不孤单。

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

    • 哪些工具(甚至是标准的Unix工具)可以用来精确定位瓶颈?
    • 应该遵循哪些指标来确保事情顺利进行?
    • 什么样的东西可以有效地虚拟化?
    • 什么样的机构注定要失败?

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

    编辑:有关我的特定问题的详细信息:

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

    正如我之前所说,我真的无法提供大量有用的数据。我真的不希望得到这个问题的直接解决方案,我会很高兴有关于从哪里开始构建更好地理解这些问题所需的技能集的指针。

    3 回复  |  直到 11 年前
        1
  •  2
  •   Craig Trader    17 年前

    我本来打算在评论中提到这一点,但我认为它在公开场合更有用:

    您能再详细介绍一下您的设置吗?

    • 哪个虚拟机服务器?
      (vmware服务器、vmware esx、ms virtualserver、ms hyper-v,还有其他功能?)
    • 哪些操作系统供客人使用?
      (Windows、Linux、32位、64位?)
    • 客人存储在哪里?
      (本地磁盘,还是在NAS或SAN上?)
    • 您是在同一虚拟机服务器上的来宾之间进行同步,还是在来宾和物理服务器之间进行同步?
    • 如果通过网络,网络有多快?

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

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

        2
  •  2
  •   mlambie    17 年前

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

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

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

    你可以使用 iostat 在Linux/Unix上获取关于I/O的一些反馈, iotop 同样,虽然它还没有在许多发行版中打包。

        3
  •  0
  •   David Robbins    17 年前

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

    1. 固定磁盘分配。这样,您就可以获得一个连续的驱动器空间块,供虚拟机居住。
    2. 安排VM切片操作系统和主机服务器驱动器的碎片整理。破碎是你的敌人。
    3. 请确保您正在优雅地结束服务器会话。当跳转到虚拟操作系统时,不要仅仅关闭VM切片,因为这会导致巨大的磁盘碎片。虚拟操作系统需要执行关闭/重新启动过程。