태그 보관물: bandwidth

bandwidth

실행중인 프로세스의 네트워크 대역폭 및 파일 액세스를 표시하는 최상위 명령이 있습니까? 100kB/s —

예를 들어 다음과 같은 내용을보고 싶습니다.

PROCESS       IF       TX       RX       FILE(regular) R/W
prog1         eth0     200kB/s  12kB/s   --            --
              wlan0    12kB/s   100kB/s  --            --
              --       --       --       file1         R
              --       --       --       file2         R
              --       --       --       file3         W
prog2         eth0     0kB/s    200kB/s  --            --
              --       --       --       file4         W
              --       --       --       file5         W

이것이 가능한가? nethogs는 TX / RX 만 표시하고 lsof는 파일 액세스 만 표시합니다.

현재 2 단계 프로세스를 수행하고 있습니다.

sudo nethogs
sudo lsof -a -d 1-999 -c hogging_program /

더 좋은 방법이 있습니까?



답변

내가 아는 한 당신이 달성하려고하는 것은 현재하고있는 것처럼 여러 명령을 결합하는 것이 가능하지만 데이터를 더 쉽게 파싱 할 수있는 다른 응용 프로그램을 알지 못합니다. 파이프 가능한 단일 행 텍스트 출력 모드). 영리한 쉘 스크립팅, 파이프 된 데이터 및 약간의 수동 형식을 사용하면 최소한 원하는 출력에 가깝게 얻을 수 있습니다.

운영 체제의 서로 다른 두 부분에서 제공되는 네트워크 및 파일 통계를 모두 보여주는 무언가에 대한 검색은 ‘The UNIX Philosophy :’의 일부 테넌트에 대한 것으로 보입니다.

  • 각 프로그램이 한 가지 일을 잘하게하십시오. 새로운 일을하려면 새로운 기능을 추가하여 기존 프로그램을 복잡하게하지 않고 새로 구축하십시오.
  • 모든 프로그램의 출력이 아직 알려지지 않은 다른 프로그램의 입력이 될 것으로 예상합니다. 불필요한 정보로 출력을 어지럽히 지 마십시오.

이것은 lsof와 같이 텍스트를 출력하는 프로그램에서 특히 분명합니다. 일반적으로 다른 프로그램에 파이프 할 데이터만큼 사용자 인터페이스를 제공하는 * NIX 콘솔 프로그램이나 cut 과 같은 쉘 명령 을 사용하여 자체적으로 맞춤화 된 출력을 작성 하는 스크립트는 표시되지 않습니다.

Doug McIlroy는 몇 년 후 그의 초기 진술을 다음과 같이 요약했습니다.

한 가지 일을 잘 수행하는 프로그램을 작성하십시오. 함께 일할 프로그램을 작성하십시오. 범용 인터페이스이므로 텍스트 스트림을 처리하는 프로그램을 작성하십시오.

원하는 형식의 출력을 얻는 데 도움이되지는 않지만 The Art of UNIX Programming 은 잘 읽었으며 인용문의 출처를 찾았습니다.


답변

sysstat 에서 네트워크 및 pidstat에 대해 iftop 을 시도하십시오 .

둘 다 아마도 선택한 배포판을위한 쉬운 설치 (apt-get 등) 일 것입니다.


답변

atop파일 핸들로 I / O를 분해하는 것만 큼 구체적이지는 않지만 원하는 것을 제공하는 방법이 있습니다. 전체 네트워킹 통계를 얻으려면 커널 패치를 적용해야합니다.


답변

iptraf 는 매우 유용하며 대역폭 호그를 찾을 수 있습니다.


답변