특정 프로세스(PID)의 대역폭 소비를 모니터링하는 Linux 도구

특정 프로세스(PID)의 대역폭 소비를 모니터링하는 Linux 도구

시스템 모니터처럼 특정 프로세스(PID)의 대역폭 소비를 캡처하는 데 도움이 되지만 다음 스크린샷에 표시된 것처럼 단일 특정 프로세스에 대해 사용할 수 있는 도구나 명령이 있습니까?여기에 이미지 설명을 입력하세요.

적어도 그러한 기록을 파일로 내보내는 명령줄 도구에 만족할 것입니다. (저는 우분투 16.04를 사용하고 있습니다)

업데이트 1

적어도 이런 도구가 있었으면 좋겠어인터넷돼지파일로 출력 가능(Nethogs는 TCP 연결만 캡처) TCP 및 UDP에 대한 유사한 도구가 유용할 것입니다.

업데이트 2

스크립트와 Wireshark와 같은 다른 도구의 조합도 도움이 될 것입니다.

답변1

위의 도구를 살펴보셨나요? 매뉴얼 페이지에 따르면:

"커널 모듈 'netatop'을 설치하면 프로세스별 네트워크 부하가 표시됩니다."

답변2

따라서 쉽고 명확하며 "즉시 실행 시작" 솔루션을 찾지 못했기 때문에 수정, 리팩토링 및 더 많은 옵션을 포함하는 적당한 솔루션을 만들어야 했습니다.

->https://github.com/AymenDaoudi/NeTraf

답변3

Nethogs가 당신이 찾고 있는 것일 수도 있습니다.

데비안/우분투/등.

apt-get install nethogs

또는 rhel/cent/etc.

yum install nethogs

다음과 같은 네트워크 인터페이스에서 실행합니다.

nethogs eth0

그러나 출력은 각 프로세스에서 보내고 받는 대역폭입니다. 여러 인터페이스를 모니터링할 수도 있습니다.

설명 NetHogs는 작은 "netHogs" 도구입니다. 대부분의 도구처럼 프로토콜이나 서브넷별로 트래픽을 나누는 대신 프로세스별로 대역폭을 그룹화하고 로드되는 특수 커널 모듈에 의존하지 않습니다. 따라서 갑자기 네트워크 트래픽이 많아지면 NetHogs를 시작하고 어떤 PID가 이 문제를 일으키는지 즉시 확인하고 일종의 회전 프로세스인 경우 종료할 수 있습니다.

고쳐 쓰다:OP가 파일로 출력을 요청했습니다. nethogs를 사용하여 이 작업을 수행할 수 있습니다.

nethogs -d 1 eth0 > output.txt

-d는 쓰기 사이의 시간 간격을 지정하므로 위 명령을 실행하고 원하는 결과를 얻을 수 있습니다.

업데이트 2OP는 TCP와 UDP가 필요하다고 말했습니다. 그런 다음 사용해보십시오인터넷 톱. 조금 오래되었지만 TCP와 UDP가 있습니다. 제 생각에는 RHEL 파생 버전인 deb/ubuntu에서 사용할 수 있습니다. 예:

jnettop --display text -t 5 --format CSV

파일로 파이프하는 것이 가능해야 합니다.

답변4

nethogs 도구는 각 프로세스의 네트워크 트래픽을 모니터링하는 데 도움이 됩니다. 당신은 그것을 사용할 수 있습니다 nethogs -t. 여기서 -t는 순회를 의미합니다.

보내고 받은 총 개수를 표시하려면 다음 명령을 사용하십시오. nethogs -t -v3

추가 프로세스 필터링을 위해 출력을 파일로 리디렉션할 수 있습니다.

관련 정보