我在一个amd x4,4gb ram,2x seagate sata 1 tb磁盘上安装了一个ubuntu(服务器内核),用于testing虚拟机,写入性能非常慢。 这两个磁盘在一个软件raid1arrays,一个小引导ext3分区,10GB系统分区,其余的是一个xfs分区(约980)gb的数据(虚拟机)。
如果我使用rsync或scp将文件从虚拟机复制到主机,复制频繁停顿或以大约1mb / s的速度运行。 怎么了?
我已经尝试禁用xfs的障碍,增加了logbufs,allocsize,但似乎没有什么帮助。
奇怪的是,等待(例如在复制过程中)sda通常在100以下,而sdb则在400左右。
任何想法可能是错误的/我能做些什么来改善这个设置?
您是否遇到类似的性能问题,将文件从主机文件系统上的一个位置同步到同一arrays上的另一个位置? 如果是这样的话,我怀疑从驱动器的一部分读取驱动器磁头移动的延迟,并写入到同一驱动器的另一部分(在这种情况下是驱动器,因为任何写入都需要在RAID1数组)。 RAID1的写入性能与arrays中最慢的单个驱动器基本相同。 尽pipe使用现代驱动器,但我不希望它慢到〜1Mbyte / s,除非您正在复制大量的小文件(在这种情况下,由于目录条目被创build/更新,所以每个文件都有大量的延迟)低速可能不会令人惊讶)。
您在主机和虚拟机中select的文件系统和相关选项也可以有所作为。 如果你在虚拟机上打开日志,会增加开销,特别是在日志满载的情况下,而不仅仅是元数据日志。 我不确定XFS,但ext3默认为元数据日志(日志选项通常不是,元和全)。 如果在虚拟机和文件系统上的文件系统上有完整的日志,则虚拟机的虚拟磁盘文件将存储在主机上,那么虚拟机中的每个写入操作将至less成为四次物理写入操作(“写入日志”和“写入在主机操作系统的文件系统中操作成为“写入日志”和“写入主存储区”的VM中的“主存储器”。
如果这是一台testing机器,并且您不关心由于磁盘故障而死亡的虚拟机,因为您可以轻松地重新创build这些虚拟机(或将它们完全备份到别处),那么您会发现RAID0的性能更好,但显然通常的RAID0风险适用(如果你失去一个驱动器,整个arrays已经死了)。 您也可以将这两个驱动器分别作为独立的卷 – 将虚拟机(和主机操作系统中的任务)智能地分散在不同的主轴上,可以提供良好的性能提升,因为虚拟机(和主机任务)在I / O操作时相互竞争较less带宽。 您也可以使用四个驱动器并使用RAID10(这实际上可以让您获得RAID0和RAID1的好处,换来一点额外的复杂性和更多的驱动器)。 尽pipe如此,在考虑重新安排磁盘子系统之前,请确保您目前看到的性能问题不是由于当前某个驱动器出现问题所致。 您是否检查过驱动器上的SMART日志是否有任何警告标志?