Làm cách nào tôi có thể thấy băng thông mà mỗi Ứng dụng hoặc quy trình đang sử dụng?


12

Tôi đột nhiên thấy rằng băng thông hạ lưu của tôi là 400 KBps, đây là mức tối đa mà ISP cung cấp cho tôi, vì vậy có một ứng dụng tải xuống với công suất cao nhất.
Có điều là tôi đã không bắt đầu bất kỳ tải xuống nào, vì vậy nó đang thực hiện ở chế độ nền mà không cần nói.
Làm thế nào tôi có thể biết ứng dụng hoặc quy trình nào đang sử dụng nó?
Hoặc, về cơ bản, làm thế nào tôi có thể xác định được bao nhiêu băng thông mỗi quy trình mở hoặc ứng dụng đang sử dụng?


Tôi đã tình cờ thấy một ứng dụng tường lửa trước đó có thể vẽ biểu đồ sử dụng mạng cho mỗi ứng dụng và mỗi người dùng ... nhưng dường như tôi không thể tìm thấy nó nữa. : /
Jason Salaz

HandsPack hiển thị mức độ sử dụng cho mỗi ứng dụng
hsmiths

là bản cập nhật phần mềm tự động?
jm666

@ jm666: Đó là nghi phạm đầu tiên của tôi, nhưng không phải
Petruza

Câu trả lời:



12

Trích dẫn: "Làm thế nào tôi có thể biết ứng dụng hoặc quy trình nào đang sử dụng nó?"

Bạn có thể thử nettop (1) trong Terminal. Nó được cài đặt sẵn và làm mới cứ sau vài giây để cung cấp bảng điều khiển của tất cả các kết nối mạng mở (theo quy trình) với việc sử dụng chúng. Tốt hơn so với lsofnó cho thấy dữ liệu sử dụng quá.

$ nettop

Sau đó nhấn 'd' và tìm các mục hoặc mục trông có vẻ kỳ quặc với lưu lượng truy cập lớn liên tục trong cột 'byte in' hoặc 'byte out'. 'D' hướng dẫn nettop chỉ hiển thị sự khác biệt trong mỗi lần làm mới màn hình.

Ghi chú sử dụng thực tế:

Nếu bạn không nhận ra tên quy trình, Google nó.

Nếu bạn không muốn tiến trình xung quanh, hãy lấy pid (số bên cạnh tên tiến trình trong nettop) và giết nó với kill -9 <pid>. Nếu điều đó không giải quyết được, hãy tìm hiểu xem bạn có thể gỡ cài đặt quy trình không.

Nếu bạn quan tâm đến quá trình truyền qua mạng, hãy sử dụng số cổng máy khách cho kết nối cụ thể đó (ví dụ: '53133' từ 10.0.0.1:53133->74.125.68.100:80) để chạy tcpdump (1) để xem dữ liệu trong các gói được trao đổi:sudo tcpdump -nnvvXSs 1514 port 53133

Nếu bạn quan tâm đến đích mà quá trình đang nói đến, nhưng địa chỉ IP đích không có tên máy chủ DNS ngược (như trong ví dụ trước), thì hãy thử truy cập địa chỉ IP đó trong trình duyệt web dưới dạng https: // IP , nhấp vào biểu tượng khóa bị hỏng trong thanh địa chỉ và xem chi tiết chứng chỉ để tìm ra tên miền nào được phục vụ ở đó (* .google.com trong trường hợp này). Điều này sẽ không hoạt động nếu cổng SSL 443 không mở trên đích.


Tôi không hiểu lý do bỏ phiếu tiêu cực. AFAICT, câu trả lời chính xác là những gì OP đang tìm kiếm (cách theo dõi quá trình nào đang sử dụng hết băng thông).
2rdmc

Thoạt nhìn nettopcó vẻ khó hiểu hơn top. Chẳng hạn, tôi không thể thấy làm thế nào để có được các quy trình tích cực nhất ở trên cùng.
hà mã

5

Bạn có thể dễ dàng xem tất cả hoạt động mạng từ Trình giám sát hoạt động; Nó được tích hợp ngay trong OS X.

  • Mở ứng dụng> Tiện ích> Giám sát hoạt động
  • Bấm vào tab Mạng

Giám sát hoạt động, tab mạng;  Sắp xếp theo gói đã gửi


1
Có cách nào để xem băng thông mỗi giây, trái ngược với tổng số byte không?
Crummy

@Crummy nếu bạn nhấp chuột phải vào tiêu đề cột, bạn có thể sửa đổi những cột nào được hiển thị. Không chắc chắn nếu có cột mỗi giây, nhưng cần có một cái gì đó có thể giúp đỡ.
Michael Thompson

3

Rubbernet là một ứng dụng thực sự tuyệt vời cho phép bạn xem mức độ sử dụng mạng trên mỗi ứng dụng của máy Mac và nó hỗ trợ Giám sát từ xa. Bạn có thể cài đặt plugin Rubbernet bất kỳ máy Mac nào mà bạn có quyền truy cập quản trị và sau đó theo dõi mức độ sử dụng băng thông trên mỗi ứng dụng của tất cả Macintosh trên mạng của bạn từ máy tính của bạn.

Nó tốn tiền (30 Euro trên trang web của họ nhưng vì lý do nào đó, nó có giá 19,99 đô la trên Mac App Store nhưng họ có Bản dùng thử miễn phí đầy đủ chức năng trên trang web của họ. Tôi chưa mua ứng dụng này, vì vậy tôi không thể xác nhận rằng bạn có thể mua một giấy phép cho ứng dụng và sau đó cài đặt plugin trên bất kỳ số lượng máy Mac nào với mức phí bổ sung. Nhưng dường như đó là tình huống.

Các nhà phát triển là những người cùng làm Khách hàng IRC của Linkinus.

liên kết đến Rubbernet bị xóa vì nó dẫn đến một trang web có cảnh báo giả mạo về việc cập nhật Flash lỗi thời


2

lsofiftop (liên kết trực tiếp để cài đặt gói) là những công cụ tốt nhất xuất hiện trong tâm trí.

Ngoài ra, hãy xem câu hỏi này .


Nhưng nó không hiển thị ứng dụng nào đang sử dụng băng thông
Petruza

@Petruza, bạn có thể xác định chương trình được liên kết với một kết nối cụ thể bằng lsof và sau đó theo dõi băng thông của kết nối với iftop. Nó phải là đủ thông tin để kiểm toán các kết nối / chương trình nghi ngờ.
Somantra

@Petruza, trong trường hợp của bạn, có lẽ bạn sẽ bắt đầu với iftop để xác định kết nối bằng cách sử dụng hết băng thông của bạn sau đó theo dõi kết nối đến ứng dụng sở hữu bằng lsof hoặc netstat.
Somantra

1

Một tùy chọn khác không hoàn toàn tốt như nó không có bất kỳ loại kỹ thuật giám sát từ xa nào và dường như không làm tốt công việc đó là OS Track . Nó cũng có sẵn trên Mac App Store miễn phí. Tôi không thực sự thích ứng dụng này vì nó dường như tiêu tốn rất nhiều tài nguyên. Nhưng đó có thể là thứ họ đã sửa trong phiên bản mới hơn.


1

Chỉ để bổ sung cho câu trả lời nettop (tuyệt vời) - một số người phàn nàn rằng đầu ra là khó hiểu. Để có đầu ra sạch, hãy thử:

nettop -P -k state,interface -d

Cờ giải thích:

-P thu gọn các hàng của mỗi tiến trình cha

-k state,interface loại bỏ các cột ít thông tin hơn giữa bạn và các cột vào / ra byte

-dkích hoạt tùy chọn delta (giống như nhấn dnút)

Sử dụng hnút hoặc chạy man nettopcho một số tùy chọn khác.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.