사용자가 대용량 파일을 grep할 때 SSH 서버가 정지됩니다 - 높은 NET_RX 및 높은 Softirqs - 제한하는 방법은 무엇입니까?

사용자가 대용량 파일을 grep할 때 SSH 서버가 정지됩니다 - 높은 NET_RX 및 높은 Softirqs - 제한하는 방법은 무엇입니까?

1Gbps NIC를 갖춘 fedora 14 - Linux-2.6.35를 실행하는 서버가 있습니다. Isilon 서버에서 제공하는 NFSv3 마운트가 있습니다.

사용자가 NFS 서버에 존재하는 대용량 파일(grep 또는 유사한 파일)로 작업할 때마다 정지됩니다. 서버가 정지되기 직전에 확실히 알 수 있었는데,

  1. 네트워크 사용량은 1Gbps에 가깝습니다.
  2. NET_RX의 인터럽트는 CPU 코어를 압도하며,
  3. Soft_irq의 양이 많습니다.

이 노점에 접근할 수 있는 아이디어가 있나요?

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 등) 파일을 읽어야 하기 때문에 네트워크가 작동하게 됩니다. 내가 시도할 것은 다음과 같습니다:

다음 버전으로 업그레이드하세요.이번 10년- 알아요, 당신은 갇혀 있어요.

콘솔을 통해 동일한 작업을 시도해 보십시오. 이는 SSH가 아닐 것입니다.

로그(예: /var/log/messages, dmesg)에 CPU가 멈췄거나 NFS 서버가 응답하지 않는 등의 내용이 있습니까?

단편화된 패킷 등에 대한 Wireshark

nfs 클라이언트 마운트 옵션 변경: 하드 vs 소프트, wsize, rsize, timeo 및 retrans, UDP vs TCP

두 장치 모두에서 MTU를 낮추세요

관련 정보