커널 모듈이 의심스러울 때 높은 부하 문제를 해결하는 방법은 무엇입니까?

커널 모듈이 의심스러울 때 높은 부하 문제를 해결하는 방법은 무엇입니까?

Ubuntu 14.04.4 LTS에서 버그를 발견했습니다. NFS 클라이언트가 NFS 서버에 대한 연결이 끊어지면 시스템의 로드가 30 이상으로 급증합니다.

로드를 줄이는 유일한 방법은 NFS 공유의 마운트 해제를 지연하는 것입니다.umount -l /path/to/share

문제는 시스템 리소스 사용량을 알려주는 모든 일반 도구가 도움 top이 되지 htop않는다는 것 iotop입니다 perf top. 높은.sarmpstat

내 가정은 NFS가 Linux 커널에서 구현되었기 때문에 이러한 도구는 무슨 일이 일어나고 있는지 단순히 볼 수 없다는 것입니다. 이 문제를 해결하는 더 좋은 방법이 있습니까? 전통적인 도구는 작동하지 않는 것 같기 때문입니다. Linux에서 실행 대기열을 모니터링하는 방법이 있습니까?

답변1

다음 프로세스의 수를 계산하여 로드 평균을 계산합니다.

  1. 현재 실행 중
  2. 실행할 준비가 되었지만 스케줄링을 기다리는 중(다른 프로세스가 CPU를 점유함)
  3. I/O 대기 차단(무중단 절전, top/ 에서 "D"로 표시됨 ps)

그리고 가중 평균(시간 경과에 따라 1분, 5분, 15분 값 획득)을 기준으로 합니다.

따라서 높은 로드 평균은 CPU가 과부하되었음을 의미하지 않습니다(%Cpu top등을 확인하여 확인). NFS 서버에 액세스하려고 시도하는 동안 여러 프로세스가 차단되었음을 의미할 수 있습니다.

관련 정보