Nethogs가 일부 NFS 트래픽을 생성하는 프로세스의 PID를 볼 수 없는 이유는 무엇입니까?

Nethogs가 일부 NFS 트래픽을 생성하는 프로세스의 PID를 볼 수 없는 이유는 무엇입니까?

나는 보통 프로세스당 네트워크 대역폭을 보기 위해 Nethogs를 사용합니다. 그러나 Nethogs는 일부 NFS 트래픽을 생성하는 프로세스의 PID를 볼 수 없으므로 ?다음 PID를 사용하여 단일 라인에 집계됩니다.

여기에 이미지 설명을 입력하세요.

왜 이런 일이 발생합니까? PID당 NFS 대역폭을 볼 수 있도록 이를 우회할 수 있는 방법이 있습니까?

Ubuntu 12.04(클라이언트)에서 NFSv3을 사용하고 있습니다.

답변1

NFS는 이름에서 알 수 있듯이 파일 시스템입니다. NFS 마운트 디렉토리에서 파일을 열고/읽고/찾고, 쓰고/닫는 사용자 프로세스는 커널이 NFS를 다른 파일 시스템처럼 보이게 만들기 때문에 그것이 NFS 파일 시스템인지 알지 못합니다.

따라서 NFS 마운트 파일을 읽는 사용자 프로세스는 read(2)시스템 호출을 생성하여 궁극적으로 일부 커널 코드가 실행되도록 합니다. 모든 NFS 트래픽은 사용자 수준 프로세스가 아닌 Linux/Unix 커널 자체에서 발생합니다. 따라서 "?"는 PID입니다.

관련 정보