我们经常需要在两台主机之间传输大文件(超过 50 GB),并且传输速率似乎永远无法达到网络的预期吞吐量。有几个点,这可能是瓶颈,但他们的每一个中的理论上限是办法在实际的传输速率。这是一个典型的设置:
笔记本电脑 --> 802.11n --> AP --> CAT 6 电缆 --> 10/100 Mbits 路由器 --> 台式机
在这方面,瓶颈显然是路由器,它将传输速率限制在 100 Mbits/sec。即便如此,我也很少看到超过 9.5 MB/s 的传输速率(使用 scp),这代表 76 Mbits/sec,或仅理论最大限制的 76%。
接入点是否真的有 24% 的开销,或者是否有其他因素限制了速度?它可能是磁盘 I/O(尽管 SATA 的额定值为 1.5 Gbps),或者是磁盘和 NIC 之间主板上的任何东西(我如何测量?)。
有没有办法确定(*)知道瓶颈在哪里?如果我无法从 100 Mbps 路由器获得超过 76 Mbps 的速度,将网络升级到千兆位会增加吞吐量还是我仍会获得 76 Mbps,因为瓶颈在其他地方?
(*) 或至少以一种足以令人信服的方式让老板同意投资升级网络的一部分
我有一个 Ubuntu 8.04 LTS(服务器版),我需要编写一个 udev 规则让它在插入 USB 拇指驱动器时起作用。但是,根据驱动器的文件系统,我需要不同的操作。我知道我可以使用 ID_FS_TYPE 环境变量来检查驱动器上的文件系统。
按照此处找到的说明,我尝试使用一个虚拟的 udev 规则:
KERNEL!="sd[a-z][0-9]", GOTO="my_udev_rule_end"
ACTION=="add", RUN+="/usr/bin/touch /tmp/test_udev_%E{ID_FS_TYPE}"
ACTION=="add", ENV{ID_FS_TYPE}=="vfat", RUN+="/usr/bin/touch /tmp/test_udev_it_works"
LABEL="my_udev_rule_end"
Run Code Online (Sandbox Code Playgroud)
但是,当我插入带有 vfat 文件系统(应该触发两个规则)的拇指驱动器时,我最终得到一个名为 的文件/tmp/test_udev_vfat
,这意味着第一个规则已成功触发,并且ID_FS_TYPE 环境变量是“vfat”,但是我没有其他文件,这意味着虽然我知道 ID_FS_TYPE env 变量是“vfat”,但我似乎无法检查它是否匹配。
我试着用谷歌搜索这个东西,但几乎每个结果似乎都假设ENV{ID_FS_TYPE}=="vfat"
有效。我还在 Ubuntu 10.04 LTS 服务器上测试了完全相同的 udev 规则,结果相同。
我可能遗漏了一些非常简单的东西,但我就是不明白。有没有人看到我的 udev 规则有什么问题会阻止它在 ENV{ID_FS_TYPE} 上匹配?
谢谢。