私は 1Gbps NIC を搭載した fedora 14 - Linux-2.6.35 を実行しているサーバーを持っています。このサーバーには Isilon サーバーによって提供される NFSv3 マウントがあります。
NFSサーバー上に存在する大きなファイル(grepなど)をユーザーが操作するたびにフリーズします。サーバーがフリーズする直前に、
- ネットワーク使用量は1Gbpsに近づき、
- 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 ユーザーの権限を制限するには、Quality of Service (トラフィック制御) を試すことができます。詳細については、「tc」コマンドを検索してください。
答え2
何らかの手段 (grep など) でファイルを読み込まなければならないため、ネットワークがアップします。私が試すのは次のようになります。
バージョンをアップグレードこの10年間- わかってるよ、君は行き詰まってるんだ。
コンソール経由で同じことを試してください - これはSSHではないと思います
ログ (/var/log/messages、dmesg など) に、CPU がスタックしている、または NFS サーバーが応答していないなどの情報がありますか?
断片化されたパケットなどを検出するWireshark
NFS クライアントのマウント オプションを変更する: ハード vs ソフト、wsize、rsize、timeo および retrans、UDP vs TCP
両方のデバイスのMTUを下げる