Linux에서 대부분의 대역폭을 사용하는 응용 프로그램을 찾는 방법이 있습니까? [닫은] 양을 보여줄 수있는 유틸리티를 찾고

각 프로세스에서 사용중인 대역폭의 양을 보여줄 수있는 유틸리티를 찾고 있습니다. 그 목록을 conky에 공급하려면 데이터를 인쇄하고 종료해야합니다.



답변

NetHogs 시도해 볼 수 있습니다 .

NetHogs는 작은 ‘net top’도구입니다. 대부분의 도구와 마찬가지로 프로토콜 또는 서브넷 당 트래픽을 분류하는 대신 프로세스별로 대역폭을 그룹화합니다 . NetHogs는로드 할 특수 커널 모듈에 의존하지 않습니다. 갑자기 많은 네트워크 트래픽이 발생하면 NetHog를 시작하고 이로 인해 어떤 PID가 발생했는지 즉시 확인할 수 있습니다. 이를 통해 야생에 빠지고 갑자기 대역폭을 차지하는 프로그램을 쉽게 식별 할 수 있습니다.


답변

여기에 몇 가지가 나와 있습니다 .

그러나 내가 좋아하는 것은 iftoptcpdump 입니다. Wireshark 도 매우 좋은 옵션입니다.


답변

시도 atop … 그것의 최대한 활용하기 위해 당신이 몇 가지 추가 커널 패치 (I / O 회계 패치)를 활성화 할 수 있습니다.

atop옵션이 아닌 경우 netstat -anp --inet(루트)를 사용하여 어떤 프로세스에서 사용중인 TCP / UDP 포트 목록을 제공하십시오 (또는 가능한 경우 lsof). 거기에서 단순히 오픈 소켓을 얻고하거나 사용하여에 부착 된 각 과정을 반복 ltrace -S또는 strace(가) 사용, 읽고 쓰기, 전송 및 수신, 또는보고 tcpdump해당 지역의 IP 주소를 지정하는 필터와 TCP / UDP 포트를 그것은 나열되었습니다.

atop이것들 중 가장 편리합니다 … 필요한 커널 지원이 설치되어 있다면. 과거에는 고객과 고용주가을 사용하여 I / O 프로파일 링을 지원하기위한 전용 시스템 (제작 이미지와 다른)을 설정했습니다 atop. 그러나 이러한 다른 기술을 사용하면 도움이됩니다.

SystemTap을 사용하여 무언가를 할 수 있다고 확신합니다 …하지만이 작업을 수행하기위한 쉬운 사전 요리법을 모르겠습니다. SystemTap은 프로그래밍 분석 도구입니다.