我有一台运行 Fedora 14 - Linux-2.6.35 的服务器,配有 1Gbps NIC。它具有由 Isilon 服务器提供的 NFSv3 挂载。
每当任何用户使用 NFS 服务器上存在的大型文件(grep 或类似文件)时,它都会冻结。我可以清楚地看到,就在服务器冻结之前,
- 网络使用量接近 1 Gbps,
- 来自 NET_RX 的中断使 CPU 核心不堪重负,并且
- 大量的 soft_irqs。
有什么办法可以解决这些摊位的问题吗?
NIC 上的 ifconfig 显示
[root@interactive ~]# ifconfig eth1 <redacted>
eth1 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:xx.yy.zz.aa Bcast:A.B.C.255 Mask:255.255.252.0
inet6 addr: aaaa::bbb:ccc:ddd:eee/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:685902495 errors:6256 dropped:28226 overruns:0 frame:6256
TX packets:661268729 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:973006411081 (906.1 GiB) TX bytes:146154890021 (136.1 GiB)
Interrupt:19 Memory:d8000000-d8012800
错误是否太高了?
有没有办法可以限制 SSH 用户饱和网络接口的能力?
答案1
建议的解决方案是增加服务器可用的带宽。您可以升级到 10G 连接,也可以在服务器上添加其他 NIC 并将它们组合在一起(以太通道)。
此外,正如 Sven 上面的评论,您需要确保您拥有最新的 NIC 驱动程序,并在需要时升级操作系统。
要限制 ssh 用户的能力,你可以尝试服务质量(流量控制)。你可以搜索“tc”命令了解更多信息。
答案2
网络将会启动,因为无论什么(grep 等)都必须读取该文件。我会尝试以下方法:
升级到以下版本这十年- 我知道,你陷入困境了。
通过控制台尝试同样的事情 - 我敢打赌这不是 SSH
日志(即 /var/log/messages、dmesg)中是否有任何内容,例如 CPU 卡住或 NFS 服务器无响应?
Wireshark 用于碎片数据包等
更改 nfs 客户端挂载选项:hard vs soft、wsize、rsize、timeo 和 retrans、UDP vs TCP
降低两台设备的 MTU