繁体   English   中英

Windows Server 2012在Azure VM上的文件写入持续时间

[英]File Write Duration on Azure VM with Windows Server 2012

由于某种原因,我最近不得不记录写入文件所花费的时间。 我是在Windows Server 2012的Azure VM上执行此操作的。 当我查看日志时,大多数时间是0毫秒,只有极少数时间是15毫秒。 我以为自己在测量中做错了什么,并用这段代码进行了测试:

class Program
{
    static void Main(string[] args)
    {
        string dir = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData) + "\\TEST";
        if (!Directory.Exists(dir))
        {
            Directory.CreateDirectory(dir);
        }

        for (int i = 0; i < 10; i++)
        {
            DateTime start = DateTime.Now;
            File.WriteAllText(dir + @"\test.txt", "test");
            DateTime end = DateTime.Now;
            TimeSpan duration = end - start;
            double ms = duration.TotalMilliseconds;
            File.AppendAllText(dir+@"\log.txt", Convert.ToString(ms) + System.Environment.NewLine);
        }
    }
}

在我的PC上输出(操作系统语言环境设置为德语,因此逗号是小数点,而不是千位分隔符,第一个数字为5毫秒):

5,0037 1,001 0,9976 1,001 1,001 2,002 0,9956 2,002 1,0003 0,9996

在远程计算机上的输出:

0 0 0 0 0 0 0 0 0 0

有时(OS语言环境设置为英语,所以点是小数点,因此相关数字为15.5毫秒):

0 0 0 0 0 0 15.4914 0 0 0

是什么原因呢? 这是Windows Server 2012还是Azure VM上的某些写缓存?

附加信息:

  • 我的电脑只有一个SSD,在远程计算机上将操作系统和数据配置在单独的驱动器上(不确定哪种类型)

您正在哪个驱动器上进行测试? 操作系统驱动器/临时驱动器/附加驱动器...很重要。 正如您提到的,缓存设置也很重要,最好从附加驱动器开始,不要设置缓存。

驱动器的ALU格式大小很重要。 例如,如果将文件分成64kb的块,并具有64kb的读/写速度,则速度更快。

存储帐户上的Azure驱动器有一个20分钟的预热阶段,在此阶段可以将它们“缓慢地”统一化或在20分钟内不使用时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM