LINUX / WINDOWS - 传输文件时出现奇怪的行为

LINUX / WINDOWS - 传输文件时出现奇怪的行为

问:为什么文件传输会同时很慢和正常?

传输发起方:VLAN 计算机上的 Windows 7 计算机

来源:VLAN 服务器上的 NSD 共享(IBM GPFS 的 Samba)

目标:VLAN 计算机上的 Windows 7 计算机(用于初始化的计算机)


研究方向:假设这可以与 OSI 模型的主机层相关


我是许多客户的 Linux 系统管理员。我使用远程登录,但我无法测试所有内容。

一个客户端出现了奇怪的行为:在 Windows 7 中,通过打开 explorer.exe 并传输一个文件1Gb(zip、iso、数据、使用 dd 命令创建等等...)来自 LAN 共享(参见下面的配置)使用 UNC 路径,您可以根据文件有 2 种不同的行为。

A)传输速率可能较慢,7-10 Mb/s

B)您可以获得正常的传输速率,50-70 Mb/s

此传输速率对于文件类型而言是永久的。这意味着,如果您在不同的日期和时间尝试,您将获得相同的结果。每次,zip 文件或 iso 文件都有正常的传输速率。当数据文件(由 dd 创建的虚假文件)时,传输速率较低。

从另一台具有相同或其他 Windows 版本(例如 Windows 2012 服务器)的计算机,结果相同。

如果您尝试使用另一个用户帐户,结果相同。

如果您安装 UNC 路径,结果相同。

是否激活防病毒软件


我做了测试并观察到以下情况:

从另一个 VLAN 上的另一个 Linux 传输:两种文件类型的传输速率均为 42 Mb/s

使用 winscp 从另一个 VLAN 上的 Windows 计算机进行传输:两种文件类型的传输速率均为 26 Mb/s

使用 SCP(ssh)从另一个 VLAN 上的 Windows 计算机使用 cygwin 进行传输:两种文件类型的传输速率均为 47-53 Mb/s

使用挂载点从另一个 VLAN 上的 Windows 计算机使用 cygwin 进行传输:A 的传输速率为 7-10 Mb/s,B 的传输速率为 55 Mb/s

客户使用 wireshark 并告诉我他观察到了这一点:Wireshark 显示慢速传输 A 使用 SMB2 协议完成,正常传输 B 使用 NetBios/NBSS 协议完成

由于我的测试显示 SCP(SSH)的传输速率正常(所有文件类型都一样),因此我将搜索定位到 OSI 模型的顶级协议

但我对网络/协议一无所知。

有知识的人可以帮帮我吗?


共享:这是由 NSD 服务器共享的 IBM Spectrum Scale(新 GPFS 名称),在特定 VLAN 服务器上启用 NFS 和 SMB

[root@nsd ~]# mmces service list
 Enabled services: NFS SMB
 NFS is running, SMB is running


# smbstatus -V
Samba version 4.6.16-gpfs-56


# testparm

Load smb config files from /var/mmfs/ces/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Registered MSG_REQ_POOL_USAGE
Registered MSG_REQ_DMALLOC_MARK and LOG_CHANGED
Registered MSG_REQ_POOL_USAGE
Registered MSG_REQ_DMALLOC_MARK and LOG_CHANGED
Can't find include file /var/mmfs/ces/smb.conf.0.0.0.0
Can't find include file /var/mmfs/ces/smb.conf.internal.0.0.0.0
Processing section "[home]"
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER

Press enter to see a dump of your service definitions

# Global parameters
[global]
        netbios name = SPECSCALE
        realm = xxxxxxxxxx.COM
        server string = IBM NAS
        workgroup = xxxxx
        preferred master = No
        ldap ssl = no
        logging = syslog@0 file
        max log size = 100000
        add share command = /usr/lpp/mmfs/bin/mmcesmmccrexport
        allow insecure wide links = Yes
        change share command = /usr/lpp/mmfs/bin/mmcesmmcchexport
        clustering = Yes
        ctdb locktime warn threshold = 5000
        delete share command = /usr/lpp/mmfs/bin/mmcesmmcdelexport
        lock directory = /run/gpfs-samba/lock
        log writeable files on exit = Yes
        registry shares = Yes
        smbd exit on ip drop = Yes
        smbd profiling level = on
        disable spoolss = Yes
        printcap cache time = 0
        disable netbios = Yes
        server max protocol = SMB3_02
        server min protocol = SMB2_02
        unix extensions = No
        auth methods = guest sam winbind
        restrict anonymous = 2
        security = ADS
        max open files = 20000
        socket options = TCP_NODELAY SO_KEEPALIVE TCP_KEEPCNT=4 TCP_KEEPIDLE=240 TCP_KEEPINTVL=15
        include system krb5 conf = No
        winbind max clients = 10000
        winbind max domain connections = 5
        winbind use default domain = Yes
        gencache:stabilize_interval = 3600
        winbind:request profile threshold = 10
        idmap config sbm : range = 1000-500000
        idmap config sbm : ldap_user_dn = cn=connect,ou=Special Users,dc=xxxxx,dc=local
        idmap config sbm : ldap_url = ldap://master.local
        idmap config sbm : ldap_server = stand-alone
        idmap config sbm : bind_path_user = ou=People,dc=xxxxx,dc=local
        idmap config sbm : bind_path_group = ou=Groups,dc=xxxxx,dc=local
        idmap config sbm : backend = rfc2307
        nfs4:acedup = merge
        nfs4:chown = yes
        nfs4:mode = simple
        idmap config * : rangesize = 1000000
        idmap config * : range = 10000000-299999999
        idmap config * : read only = no
        idmap:cache = no
        shadow:sort = desc
        shadow:snapdirseverywhere = yes
        shadow:fixinodes = yes
        shadow:snapdir = .snapshots
        readdir_attr:aapl_max_access = false
        fruit:veto_appledouble = no
        fruit:nfs_aces = no
        fruit:metadata = stream
        fruit:copyfile = yes
        gpfs:merge_writeappend = no
        gpfs:winattr = yes
        gpfs:hsm = yes
        gpfs:prealloc = yes
        gpfs:dfreequota = yes
        gpfs:leases = yes
        gpfs:sharemodes = yes
        smbd:async search ask sharemode = yes
        ctdb:smbxsrv_open_global.tdb = false
        gencache:stabilize_count = 100000
        time_audit:timeout = 5000
        aio_pthread:aio open = yes
        tdbsam:map builtin = no
        winbind:online check timeout = 30
        groupdb:backend = tdb
        smbd:backgroundqueue = False
        notify:inotify = yes
        syncops:onmeta = no
        fileid:fstype allow = gpfs
        fileid:algorithm = fsname
        dbwrap_tdb_mutexes:* = true
        ctdb:registry.tdb = yes
        idmap config * : backend = autorid
        mangled names = illegal
        map hidden = Yes
        map system = Yes
        store dos attributes = Yes
        posix locking = No
        dfree cache time = 100
        include = /var/mmfs/ces/smb.conf.internal.0.0.0.0
        durable handles = No
        ea support = Yes
        force unknown acl user = Yes
        read only = No
        aio read size = 1
        aio write size = 1
        strict allocate = Yes
        vfs objects = shadow_copy2 syncops gpfs fileid time_audit


[home]
        path = /gpfsxxxxx/home
        wide links = Yes
        smb encrypt = if_required

答案1

根据症状,这可能是由 Windows 的 TCP自动调节(TCP 窗口大小自动协商)或烟囱卸载(将工作负载卸载到网络适配器)技术未按预期工作(可能是因为一端或中间的一些旧网络设备通常不支持 TCP 自动调整)

您可以在 Windows 7 客户端上测试这些设置:

以管理员身份打开命令提示符,并写入以下命令:

netsh int tcp set global autotuninglevel=disabled
netsh int tcp set global chimney=disabled

然后重启电脑再试一次。传输速度应该会大大提高。

如果不起作用,您可以使用以下命令恢复默认设置:

netsh int tcp set global autotuninglevel=normal
netsh int tcp set global chimney=enabled

答案2

不幸的是,它现在运行正常,没有人告诉我们从它无法运行到现在发生了什么。

我认为它与网络有关。QoS 或 IDS,诸如此类。

我们永远不会知道:(

这篇文章可能已经结束

相关内容