我有一台運行 fedora 14 - Linux-2.6.35 的伺服器,帶有 1Gbps NIC。它具有由 Isilon 伺服器提供的 NFSv3 安裝。
每當任何使用者使用 NFS 伺服器上存在的大檔案(grep 或類似檔案)時,它都會凍結。我可以清楚地看到,就在伺服器凍結之前,
- 網路使用率接近 1 Gbps,
- 來自 NET_RX 的中斷壓垮了 cpu 核心,並且
- 大量軟中斷。
有什麼想法可以接近這些攤位嗎?
網路卡上的 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 並將它們組合在一起 (etherchannel)。
此外,正如 Sven 上面評論的那樣,您需要確保您的 NIC 擁有最新的驅動程序,並根據需要升級作業系統。
要限制 ssh 使用者的能力,可以嘗試服務品質(流量控制)。您可以透過搜尋“tc”命令找到更多資訊。
答案2
網路將會上升,因為無論什麼(grep 等)都必須讀取檔案。我會嘗試的是:
升級到版本這十年- 我知道,你被困住了。
透過控制台嘗試同樣的事情 - 我打賭這不是 SSH
日誌中是否有任何內容(即 /var/log/messages、dmesg),例如 CPU 卡住或 NFS 伺服器沒有回應?
Wireshark 用於分片資料包等
更改 nfs 用戶端掛載選項:硬與軟、wsize、rsize、timeo 和 retrans、UDP 與 TCP
降低兩台設備上的 MTU