"Tx 장치 정지 감지" 네트워크 오류를 복구할 수 있는 방법이 있습니까?

"Tx 장치 정지 감지" 네트워크 오류를 복구할 수 있는 방법이 있습니까?

일시 중지 상태에서 깨어난 후 Ubuntu 21.04 시스템에 네트워크 문제가 있습니다. IP 소켓의 약 50%가 다운된 것 같습니다. 여기 에는 및 의 ssh오류가 포함됩니다 ping. "실패"란 연결 시도가 차단된 후 결국 시간 초과되었음을 의미합니다. (여담: ping소켓을 사용하지 않을 수도 있나요?) 네트워크 액세스를 시도하는 모든 프로그램은 동일한 실패율을 경험하게 될 것이라고 생각합니다.

나는 몇 주 동안 매일 밤 시스템을 일시 중지했습니다. 오늘은 회복 후 처음으로 문제가 발생한 날이었습니다.

시스템을 다시 시작했는데 문제가 해결된 것 같았습니다(적어도 문제가 다시 발생하기 전까지는).

재부팅 후 다양한 메시지를 발견했습니다 syslog.

일시정지할 때마다 다음 두 줄이 표시됩니다.

Sep  4 09:00:18 hostname kernel: [896165.908582] igc 0000:b0:00.0: no suspend buffer for PTM
Sep  4 09:00:18 hostname kernel: [896165.908589] igc 0000:af:00.0: no suspend buffer for PTM

(여담: 위의 줄은 hang 이전에 발생한 이벤트를 의미하지만 로그 항목은 시스템이 복원된 후에만 생성된 것으로 생각됩니다. 따라서 해당 이벤트는 실제로 지정된 시간보다 몇 시간 전에 발생했습니다.)

모든 이력서에는 두 개의 동일한 줄이 있습니다.

Sep  4 09:00:18 hostname kernel: [896166.257107] igc 0000:af:00.0: no suspend buffer for PTM
Sep  4 09:00:18 hostname kernel: [896166.257177] igc 0000:b0:00.0: no suspend buffer for PTM

(여담: 시스템에 네트워크 카드가 2개 내장되어 있어서 회선이 2개 있을 수도 있나요?)

다음은 네트워크 문제가 시작된 가장 최근 이력서에만 나타난 로그 항목입니다.

Sep  4 09:00:19 hostname kernel: [896168.214463] igc 0000:b0:00.0 enp176s0: Register Dump
Sep  4 09:00:19 hostname kernel: [896168.214467] igc 0000:b0:00.0 enp176s0: Register Name   Value
Sep  4 09:00:19 hostname kernel: [896168.214478] igc 0000:b0:00.0 enp176s0: CTRL            081c0641
Sep  4 09:00:19 hostname kernel: [896168.214481] igc 0000:b0:00.0 enp176s0: STATUS          40380401
Sep  4 09:00:19 hostname kernel: [896168.214483] igc 0000:b0:00.0 enp176s0: CTRL_EXT        10000040
Sep  4 09:00:19 hostname kernel: [896168.214486] igc 0000:b0:00.0 enp176s0: MDIC            18017949
Sep  4 09:00:19 hostname kernel: [896168.214488] igc 0000:b0:00.0 enp176s0: ICR             00000001
Sep  4 09:00:19 hostname kernel: [896168.214490] igc 0000:b0:00.0 enp176s0: RCTL            04408022
Sep  4 09:00:19 hostname kernel: [896168.214497] igc 0000:b0:00.0 enp176s0: RDLEN[0-3]      00001000 00001000 00001000 00001000
Sep  4 09:00:19 hostname kernel: [896168.214504] igc 0000:b0:00.0 enp176s0: RDH[0-3]        00000000 00000000 00000000 00000000
Sep  4 09:00:19 hostname kernel: [896168.214511] igc 0000:b0:00.0 enp176s0: RDT[0-3]        000000ff 000000ff 000000ff 000000ff
Sep  4 09:00:19 hostname kernel: [896168.214518] igc 0000:b0:00.0 enp176s0: RXDCTL[0-3]     02040808 02040808 02040808 02040808
Sep  4 09:00:19 hostname kernel: [896168.214525] igc 0000:b0:00.0 enp176s0: RDBAL[0-3]      2e35d000 51576000 337b2000 29a5b000
Sep  4 09:00:19 hostname kernel: [896168.214532] igc 0000:b0:00.0 enp176s0: RDBAH[0-3]      00000001 00000001 00000002 00000001
Sep  4 09:00:19 hostname kernel: [896168.214534] igc 0000:b0:00.0 enp176s0: TCTL            a50400fa
Sep  4 09:00:19 hostname kernel: [896168.214541] igc 0000:b0:00.0 enp176s0: TDBAL[0-3]      2e35d000 51576000 337b2000 29a5b000
Sep  4 09:00:19 hostname kernel: [896168.214548] igc 0000:b0:00.0 enp176s0: TDBAH[0-3]      00000001 00000002 00000001 00000001
Sep  4 09:00:19 hostname kernel: [896168.214555] igc 0000:b0:00.0 enp176s0: TDLEN[0-3]      00001000 00001000 00001000 00001000
Sep  4 09:00:19 hostname kernel: [896168.214562] igc 0000:b0:00.0 enp176s0: TDH[0-3]        00000007 00000009 00000004 00000000
Sep  4 09:00:19 hostname kernel: [896168.214568] igc 0000:b0:00.0 enp176s0: TDT[0-3]        0000000d 00000011 00000004 00000001
Sep  4 09:00:19 hostname kernel: [896168.214575] igc 0000:b0:00.0 enp176s0: TXDCTL[0-3]     02100108 02100108 02100108 02100108
Sep  4 09:00:19 hostname kernel: [896168.214576] igc 0000:b0:00.0 enp176s0: Reset adapter

그러면 다음과 같은 항목이 많이(19,000개 이상) 있습니다.

Sep  4 09:01:22 hostname kernel: [896231.189109] igc 0000:b0:00.0 enp176s0: Detected Tx Unit Hang
Sep  4 09:01:22 hostname kernel: [896231.189109]   Tx Queue             <1>
Sep  4 09:01:22 hostname kernel: [896231.189109]   TDH                  <9>
Sep  4 09:01:22 hostname kernel: [896231.189109]   TDT                  <9>
Sep  4 09:01:22 hostname kernel: [896231.189109]   next_to_use          <9>
Sep  4 09:01:22 hostname kernel: [896231.189109]   next_to_clean        <9>
Sep  4 09:01:22 hostname kernel: [896231.189109] buffer_info[next_to_clean]
Sep  4 09:01:22 hostname kernel: [896231.189109]   time_stamp           <10d596f4c>
Sep  4 09:01:22 hostname kernel: [896231.189109]   next_to_watch        <000000002b25478e>
Sep  4 09:01:22 hostname kernel: [896231.189109]   jiffies              <10d59ad90>
Sep  4 09:01:22 hostname kernel: [896231.189109]   desc.status          <0>

내 질문은 전체 시스템을 재부팅하는 것 외에 명령줄에서 네트워크 인터페이스를 수동으로 재설정/다시 시작할 수 있는 방법이 있습니까?입니다.

시스템은 데스크탑 워크스테이션이므로 키보드에 액세스할 수 있습니다.

재부팅한 후 시스템을 다시 일시 중지하고 다시 깨워야 한다는 것을 깨달았습니다. 하지만 완전히 재부팅한 후에야 이 사실을 알게 되었습니다.

답변1

절전 모드에서 깨어난 후 다시 네트워크 오류가 발생했습니다. 이번에는 재부팅하는 대신 다음과 같은 (다소 분명한) 해결 방법을 시도했습니다.

sudo  ifconfig  enp176s0  down
sudo  systemctl  stop   systemd-networkd
sudo  systemctl  start  systemd-networkd

내 네트워크가 다시 정상으로 돌아왔습니다!

문제가 있는 경우:

enp176s0네트워크 인터페이스의 이름으로 바꾸십시오 .

네트워크 관리자가 아닐 수도 있습니다 systemd-networkd.

그래픽 데스크탑 환경을 사용하는 경우 위의 작업을 수행하는 대신 데스크탑 도구 모음의 메뉴를 통해 네트워킹을 비활성화했다가 다시 활성화할 수 있습니다.

관련 정보