我有 2 台服务器(Windows 2008 R2),每台都有一个 x710-DA2 NIC,通过 10Gbps 线路交叉连接。
我可以以每秒 250 兆字节的速度从另一台机器读取一台机器的硬盘,但写入速度只有每秒 20 兆字节。
如果我从另一台服务器尝试该实验,情况也是如此。
是什么原因导致写入速度这么慢?
额外的
这是我用来测试的代码。只需更改 fileURL 以指向不同的驱动器即可。
public void Go()
{
List<string> lines = new List<string>();
for (int i = 0; i < 10000; i++)
{
lines.Add( "a whole line of text");
}
Stopwatch sw = new Stopwatch();
sw.Start();
string fileURL = @"C:\test.txt";
//string fileURL = @"\\xxx.xxx.xxx.xxx\ShareName\test.txt";
textBox1.AppendText("\nTest file URL: " + fileURL + "\n");
int n = 5000;
for (int j = 0; j < n; j++)
{
File.WriteAllLines(fileURL, lines.ToArray<string>());
}
sw.Stop();
FileInfo fi = new FileInfo(fileURL);
double speed = (fi.Length * n) / (sw.Elapsed.TotalSeconds * 1000000);
textBox1.AppendText("Write test Elapsed: " + sw.Elapsed.TotalSeconds.ToString("f2") + " MegaBytes/Second: " + speed.ToString("f2") + "\n");
sw.Restart();
for (int j = 0; j < n; j++)
{
var inLines = File.ReadAllLines(fileURL);
}
sw.Stop();
speed = (fi.Length * n) / (sw.Elapsed.TotalSeconds * 1000000);
textBox1.AppendText("Read test Elapsed: " + sw.Elapsed.TotalSeconds.ToString("f2") + " MegaBytes/Second: " + speed.ToString("f2") + "\n");
//Console.WriteLine("");
}
}