다음과 같이 Synology NAS에 연결된 두 개의 서로 다른 Linux 데스크톱이 있습니다.
10.0.0.20:/volume1/chronicle /chronicle nfs rw,hard,intr 0 0
컴퓨터가 완전히 작동 중지되고 시스템 모니터에 IOWait가 확실히 차단된 것으로 표시되는 경우가 자주 있습니다. 예를 들어, 영화 재생이 정지되지만 (대부분의 경우) 여전히 VLC를 종료하고 다시 시작할 수 있습니다. 또한 영화 파일을 로컬 SSD에 복사할 수도 있는데, 이 방법은 IOWait 작업을 수행할 때 전송 도중에 일시 중지됩니다. NAS 공유와 관련되지 않은 작업을 수행하는 경우 일반적으로 정지 현상이 발생하지 않습니다.
이유를 찾으려고 노력하고 있지만 , 및 에 대한 매뉴얼 페이지와 IOWait
기타 poll
리소스를 이해할 수 없습니다 epoll
.
이 문제를 식별하고 해결하려면 어떻게 해야 합니까?
답변1
IOWait가 반드시 차단할 필요는 없지만 프로세스는 I/O를 기다리는 것 외에는 할 일이 없습니다. 일반적인 코드 패턴은 비차단 방식으로 파일 I/O를 수행한 다음 해당 작업이 발생할 때까지 기다리는 동안 다른 처리를 수행하는 것입니다. 하지만 결국에는 당신이 원하는 것이 부족해질 것입니다.할 수 있는이렇게 하면 poll(2)을 실행하여 요청한 비차단 I/O를 찾을 수 있으며, 이는 상단 출력에 SyS_poll로 표시됩니다. 또는 더 복잡한 설정을 사용하여 다른 인터페이스를 가지고 있지만 더 집중된 출력을 제공하는 epoll(2)을 호출할 수 있습니다. 또는 개념의 오래된 구현이지만 감시 중인 파일 설명자를 선택하기 위해 다른 구조를 사용하는 select(2)를 호출할 수 있습니다. 모니터링할 파일 설명자의 수가 상대적으로 적다면 선택 호출이 폴링보다 더 효율적일 수 있습니다. 그러나 모니터링하도록 설정한 파일 설명자가 드물거나 선택하기 어려울 만큼 큰 파일 설명자가 몇 개 포함되어 있는 경우 작업 설정이 가치가 있을 만큼 모니터링하고 있는지 여부에 따라 폴링 또는 epoll이 더 좋습니다. 에폴.
기본적으로 이는 요청된 작업 부하에 비해 NAS 활동이 느리다는 것을 의미합니다. 이 모든 것이 집과 같은 특정 지역에 있다고 가정할 때, 가장 먼저 생각나는 것은 NAS에 일종의 드라이브 오류가 발생하고 있는 것일까요? 드라이브 중 하나에 오류가 발생하면 RAID2부터 RAID 7까지의 성능이 저하되는 것으로 알려져 있습니다. 두 개의 드라이브에 장애가 발생하면 RAID 6 및 RAID 7의 성능이 심각하게 저하될 수 있는 것으로 알려져 있습니다.
일부 네트워크 구성 오류가 있을 수도 있습니다. 네트워크 포트 불일치가 여전히 문제인지는 모르겠지만 실제로 네트워크 문제를 살펴보면 한 장치는 반이중으로 설정되고 다른 장치는 전이중으로 설정되는 등 자동 협상이 실패하는 경우가 많습니다. 그 결과 충돌 및 네트워크 전송 오류가 발생할 수 있습니다.
ifconfig -a
UNIX 또는 Linux 시스템에서 발생한 네트워크 오류 수를 표시합니다. Linux에서는 이것이 각 인터페이스에 대한 출력의 마지막 줄입니다. 이 줄의 모든 숫자는 0이어야 합니다. 이 줄의 숫자가 상대적으로 빠르게 증가하면 심각한 네트워크 문제가 있음을 나타냅니다.
또한 모든 장치가 네트워크의 최대 속도로 통신하고 있습니까? 유선 네트워크라면 패스트 이더넷은 더 이상 우리가 생각하는 패스트 이더넷이 아닙니다. 오늘날 대부분의 장치는 기가비트 이상의 속도로 전송하기를 원합니다. 무선이라면https://en.wikipedia.org/wiki/IEEE_802.11이제 최대 802.11ax를 사용할 수 있다고 말해 주세요. 내 네트워크가 몇 가지 버전보다 뒤처진 것 같지만 콘텐츠를 스트리밍하지 않기 때문에 눈치 채지 못할 만큼 여전히 빠릅니다. 하지만 그렇습니다. 따라서 모든 장치의 통화 속도가 동일한지 확인하는 것이 좋습니다. 여기에는 라우터가 포함되지만 무선 네트워크에서는 종종 간과되는 장치입니다. (적어도 내 경험으로는 내 대가족은 라우터를 연결하지 않으므로 그것에 대해 생각하지 않습니다.)