대역폭을 어느 프로세스에서 소비하고 있는지 어떻게 알 수 있습니까?


184

나는 여기서 버그의 희생자가되고 있다고 생각합니다. 때로는 일하는 동안 (아직도 이유를 모르겠습니다), 네트워크 트래픽이 최대 200KB / s로 올라가고 인터넷에 관련된 작업을 수행하지 않는 경우도 있습니다.

이것은 때때로 CPU 사용량으로 발생합니다. top그렇다면 명령을 실행하여 책임이있는 프로세스를 찾은 다음 프로세스를 찾습니다 kill. 문제는 : 높은 네트워크 사용을 담당하는 프로세스를 알 수있는 방법이 없습니다. 리소스 모니터와 top명령 은 모두 내 총 네트워크 사용량 만 알려주며 특정 네트워크 정보를 처리하지 않습니다.

총 대역폭 사용량을 모니터링하는 방법에 대한 질문을 여기에서 찾았지만 언급했듯이 이것이 필요한 것은 아닙니다. 어떤 프로세스가 손을 떼는지 알아 내기 위해 사용할 수있는 다른 명령이 있습니까?

이 명령 iftop은 시스템 모니터가보고 한 정보와 완전히 일치하지 않는 결과를 제공합니다. 후자는 네트워크 트래픽이 높다고 주장하지만, 1KB / s는 거의 없다고 주장합니다.

나는 이미 모든 명백한 것들 (Firefox, 업데이트 관리자, Pidgin 등)을 운없이 죽이려고했습니다. 지금까지 문제를 해결하는 유일한 방법은 컴퓨터를 다시 시작하는 것입니다.

답변:


221

nethogs 로 많은 성공을 거두었습니다 . 루트로 실행해야하지만 통계를 정렬 할 수있는 여러 가지 방법이 있습니다 (예 : nethogs가 시작된 이후 모니터링 된 총 대역폭 또는 KB / s).

또한 무선을 사용하는 경우 장치를 전달해야합니다.

다음 명령으로 설치하십시오 : sudo apt-get install nethogs

예: sudo nethogs wlan0


면밀히 살펴보면 터미널의 길이가 항상 80 자이고 명령이 잘 린다고 가정하는 것이 정말 성가시다.
Li Lo

3
오랜 시간이 지났지만이 대답은 실제로 훨씬 간단합니다.
Malabarba

2
nethogs좋은이지만, 사용하는 것 같다 방식 보다는 컴퓨터에 더 많은 CPU를iftop
에이단

4
askubuntu.com/questions/726601/… 일부 버전을 nethog사용할 수 없게 만드는 버그에 대한 경고
Rmano

3
무선을 사용하는 경우 장치를 전달할 필요가 없습니다. sudo nethogs잘 작동합니다.
Ads20000

55

iftop트래픽이 가장 많은 시스템에서 TCP 포트를 찾는 데 사용하십시오 . 그런 다음 sudo netstat -tup해당 포트를 "소유"하는 프로세스를 찾는 데 사용 하십시오.

그것이 당신이 찾고있는 과정입니다.

추신 : UDP에서도 작동합니다.


감사합니다. 명령이 작동하는 것 같지만 이상한 결과가 나타납니다. 시스템 모니터는 총 약 180KB / s를 iftop청구하는 반면 총 1 킬로바이트를 거의 요구하지 않습니다.
Malabarba

1
원래 질문에 대한 답변이므로 답변을 수락합니다. 그러나 여기서 무슨 일이 일어나고 있는지 알아낼 수 있다면 좋을 것입니다.
Malabarba

iptop은 단일 인터페이스에 대한 통계를 표시합니다. 시스템 모니터가 하나의 인터페이스 또는 모든 인터페이스를 보는지 확실하지 않습니다. 이 경우 시스템 모니터에 의해 표시되지만 iftop에 의해 표시되지 않는 트래픽이있을 것입니다. 어쨌든 인터넷 인터페이스 만보고 싶기 때문에 괜찮습니다. 방금 시스템의 iftop을 테스트했으며 예상 한 결과를 보여주었습니다. iftop은 각각 평균 ​​2, 10, 40 초 이상을 표시합니다. 'sudo iftop -i eth0 -nPB'와 같은 iftop을 실행했는데 어떻게 실행 했습니까?
Li Lo

나는 그것을 sudo iftop -B -i eth0내 인터넷 트래픽 만보고 있음을 의미 하는 것처럼 실행 했습니까? 시스템 모니터가 다른 인터페이스도 확인하고있는 것은 아닙니다. 아이러니하게도 문제는 10 분 전에 (몇 시간 후에) 사라 졌으므로 iftop지금 다시 확인할 수 없습니다 . lo 인터페이스는 무엇을 의미합니까?
Malabarba

3
iftop 화면에 많은 숫자가 있으므로 관심있는 숫자를 강조한 스크린 샷을 만들었습니다. 시스템 모니터와 비교하십시오. 스크린 샷은 imgur.com/2iuiI에 있습니다. "lo"는 localhost를 나타내며, 로컬 프로그램이 서로 통신 할 수있는 인터페이스입니다.
Li Lo

14

ntop프로세스 수준에서 네트워크 활동을 모니터링해야하는 사항 을 살펴볼 수 있습니다 . 당신은 찾을 수 있습니다 ntop소프트웨어 센터 또는 함께sudo apt-get install ntop

설치 지침을 보려면 해당 페이지 http://packages.ntop.org/를 따르십시오 .


2
우분투 17.04 (zesty)와 함께 사용할 수 없습니다
shadi

이후 버전의 우분투 리포지토리에 대해서는 packages.ntop.org/apt-stable 을 참조하십시오 . 또한apt-get install ntopng
dw1

7

또 다른 대안은 iptraf입니다. 프로세스의 PID를 보여주지는 않지만 어느 연결이 얼마나 많은 대역폭을 사용하는지 알려줍니다.


6

늦은 대답이지만 같은 문제가있었습니다. Ubuntuone으로 밝혀졌습니다. tcpdump를 실행하여 찾았습니다. 프로세스 식별에 대해 동일한 학습 곡선을 살펴 보았습니다.

에서 내 노트 :

우분투 박스 연결 정보

오늘 아침 Ubuntu 10.04 데스크탑을 시작하여 몇 분 후 인터넷 연결이 크롤링되고 있음을 확인했습니다. 필자는 이전에 Windows 상자에서 스파이웨어를 사용한 시간의 99 %를 보았습니다. 따라서 명령 줄 스타일을 조사해야했습니다.

tcpdump. Ubuntuone이 미쳐가는 것을 보여줍니다.

시스템> 환경 설정> 우분투 하나. 모든 동기화를 끕니다. 그랬어.

그래서 모든 네트워크 연결과 그들이하는 일을보고 싶습니다. 저 할 수 있어요

netstat -cW (외부 주소가 잘리지 않도록 네트워크 연결을 와이드 형식으로 계속 나열하십시오)

lsof -i |grep -v 'localhost'(localhost와 관련된 열린 파일을 제거하기 위해 grep의 인터넷 주소와 일치하는 열린 파일을 나열하십시오. 여기서는 로컬 서비스가 네트워크 사용률에 영향을 미치지 않기 때문에 로컬 서비스를보고 싶지 않다고 생각합니다).

빼앗아 야 할 것들 :

  1. 문제 해결을 위해 Ubuntu 로그에 대해 알아야합니다.
  2. tcpdump에 대한 자세한 내용이 필요하므로 Daniel Miessler의이 자습서를 시작 하겠습니다 .

편집자 주 : 이 답변은 초대 된 사용자에게만 해당되는 팅커의 blogspot 기사 를 참조했습니다 . 이 답변은 주목할만한 공감을 가지고 있기 때문에 가치가 있습니다. Wayback Machine 에서 기사 사본을 찾았습니다 . 그리고 여기에 포함 시켰습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.