我的设置:
源服务器和目标服务器(安装在 M1000e Dell 机箱中):
- Dell Poweredge M620(刀片服务器)
- 2 个 Intel E5-2650 @ 2GHz 处理器
- 192GB 内存 (DDR3,1333Mhz)
- Perc H310 Raid 控制器(每个插槽 6Gbe)
- 2x 1.7TB SSD(Sata)驱动器(RAID-0)
2x 10Gbe NIC(MS-Team、交换机独立、动态、所有适配器均处于活动状态)
Windows 2012 R2(默认安装)
系统管理页面文件
服务器连接到内部机柜的 Force10 MXL 10Gb 交换机
已配置巨型数据包(NIC 和交换机端口)
用例:
当在源服务器和目标服务器之间复制(Windows 复制)一个大文件(超过 200GB)时(无论在哪个方向 - 都会发生),复制开始时的传输速率稳定在 ~1GB/s(尽管我预计 ~2GB/s),然而,在传输的剩余时间里,传输速率在某个地方下降到几 MB/s(!)。
请参阅下图以获得更清晰的视图
看起来 RAM 正在影响我的复制操作。
它如何影响以及为什么会影响它?
答案1
- 服务器之间的带宽为10Gbit/s。
- SSD 的带宽为 6Gbit/s,其中约 4Gbit 是净写入速度
因此在第一阶段,文件数据以接近 10Gbit/s 的速度传入,其中 4Gbit/s 被移动到磁盘,而 4Gbit/s 留在缓存中。
大约 100 秒后,一半的缓存已填满,因此 Windows 开始限制传输,但传入数据加上缓存刷新仍然超出 SSD 的处理能力。这会导致更多的缓存填满。
当可用 RAM 最终达到下限(或脏缓存大小达到上限)时,Windows 会将传输限制到接近零,以允许缓存刷新跟上。
当所有脏数据都已移动后,传输速度将再次加快并达到平衡(除非传输结束)。
要移动大文件,最好使用使用文件写入的软件O_DIRECT
,当然 Explorer 不会这样做。