开始IO操作前的延迟问题

当通过挂载点地址直接访问SMB服务器,在开始IO操作之前会有几分钟的等待时间。

应该通过什么操作减少访问时的等待时间?

解决方案

产生等待时间主要是NFS Client或WebClient造成的。

  • 如果已安装NFS Client,且用不到NFS服务,请删除NFS Client。
  • 查看注册表配置项。注册表路径:HKEY_LOCAL_MACHINE->System->CurrentControlSet->Control->NetworkProvider->Order-> ProviderOrder

    比如,注册值为LanmanWorkstation,RDPNP,Nfsnp,请删除,Nfsnp,然后重启ECS。

  • 如果存在webclient,也会影响到文件浏览器登录SMB服务,请删除。
说明 客户端初次连接SMB服务器较慢时,可以ping挂载地址查看能否ping通,或者查看延时是否正常。
  • 无法ping通,请检查您的网络设置。
  • 如果延时较长,请ping挂载IP。如果ping IP比ping DNS延时小很多,可能是DNS问题,请检查您的DNS服务器配置。

关于性能问题的解决步骤

  1. 查看修改ProviderOrder的注册表值。初次访问等待时间久时,请先检查该值。
  2. 使用fio进行性能测试,查看有无异常。
    fio.exe --name=./iotest1 --direct=1 --rwmixread=0 --rw=write --bs=4K --numjobs=1 --thread --iodepth=128 --runtime=300 --group_reporting --size=5G --verify=md5 --randrepeat=0 --norandommap --refill_buffers --filename=\\<mount point dns>\myshare\testfio1
    
    fio.exe --name=./iotest1 --direct=1 --rwmixread=0 --rw=write --bs=4K --numjobs=1 --thread --iodepth=128 --runtime=300 --group_reporting --size=5G --verify=md5 --randrepeat=0 --norandommap --refill_buffers --filename=\\<mount point dns>\myshare\testfio1
  3. 查看程序,尽量以大数据块进行IO读写。如果数据块较小,会消耗更多的网络资源。如果不能修改数据块大小,可以使用BufferedOutputStream