Có cách nào để tìm ra ứng dụng nào sử dụng hầu hết băng thông trong Linux không? [đóng cửa]


56

Tôi đang tìm kiếm một tiện ích có thể cho tôi biết mỗi băng thông đang sử dụng bao nhiêu băng thông. Nó chỉ nên in dữ liệu và thoát khi tôi muốn đưa danh sách đó vào conky.

Câu trả lời:


71

Bạn có thể thử NetHogs .

NetHogs là một công cụ 'net top' nhỏ. Thay vì phá vỡ lưu lượng trên mỗi giao thức hoặc trên mỗi mạng con, giống như hầu hết các công cụ khác, nó nhóm băng thông theo quy trình . NetHogs không dựa vào một mô-đun hạt nhân đặc biệt để được tải. Nếu đột nhiên có rất nhiều lưu lượng truy cập mạng, bạn có thể kích hoạt NetHogs và ngay lập tức xem PID nào đang gây ra điều này. Điều này giúp dễ dàng xác định các chương trình đã bị lỗi và đột nhiên chiếm băng thông của bạn.

NetHogs_Sc mãi


Gần như chính xác những gì tôi cần nhưng nó không hoạt động :(
vava

Chà, cái gì không hiệu quả? Có lỗi gì không? Nó không bắt đầu chút nào sao? Bảng điều khiển đầu ra?
Milde

nó không hoạt động với ipv6
zb '

Bạn phải chạy nó như root. Chế độ lăng nhăng được khuyến khích. sudo nethogs -p eth2. Bạn phải chỉ định ethernet của bạn nếu nó không phải là eth0 theo mặc định.
Anandu M Das

@vava Có một vấn đề với cái trong repo, nó đã được sửa trong 0.8.1 nhưng bạn phải xây dựng từ nguồn (cực kỳ dễ). Xem bài đăng này: askubfox.com/questions/726601/ Kẻ
Matthew

6

Có khá nhiều liệt kê ở đây .

Tuy nhiên, mục yêu thích của tôi vẫn là iftoptcpdump . Wireshark cũng là một lựa chọn rất tốt.


Tôi có vấn đề về đạo đức với Wireshark, nếu không phải một mình trên mạng ... Trừ khi bạn có cách để làm cho nó chỉ thăm dò localhost, trong trường hợp đó tôi quan tâm.
Gnoupi

5
Nếu bạn không bật chế độ lăng nhăng, nó chỉ nên nắm bắt lưu lượng truy cập được hướng đến máy chủ của bạn.
Amok

Huh, không phải một trong những tiện ích đó có thể cho tôi biết quá trình nào đang sử dụng hầu hết băng thông và đó là những gì tôi đang theo đuổi.
vava

5

Hãy thử atop ... để tận dụng tối đa nó, bạn có thể phải kích hoạt một số bản vá nhân bổ sung (bản vá kế toán I / O).

Nếu atopkhông phải là một tùy chọn thì hãy sử dụng netstat -anp --inet(với quyền root) để cung cấp danh sách các cổng TCP / UDP đang được sử dụng theo quy trình nào (hoặc có thể sử dụng lsofcho việc đó). Từ đó chỉ cần lặp lại qua từng quy trình có một ổ cắm mở và gắn vào nó bằng cách sử dụng ltrace -Shoặc straceđể xem các lần đọc, ghi, gửi và nhận hoặc sử dụng tcpdumpvới bộ lọc chỉ định (các) địa chỉ IP cục bộ của bạn và các cổng TCP / UDP đã được liệt kê.

atopchắc chắn là tiện lợi nhất trong số này ... nếu bạn có nó và hỗ trợ kernel cần thiết được cài đặt. Trước đây, tôi đã có khách hàng và nhà tuyển dụng thiết lập các hệ thống đặc biệt (khác với hình ảnh sản xuất của họ) cho mục đích duy nhất là hỗ trợ hồ sơ I / O sử dụng atop. Tuy nhiên những kỹ thuật khác sẽ đưa bạn đến đó.

Tôi chắc rằng chúng tôi cũng có thể làm gì đó bằng SystemTap ... nhưng tôi không biết bất kỳ công thức nấu sẵn dễ dàng nào để làm điều này. SystemTap là một công cụ phân tích lập trình rất nhiều.


nếu bạn chỉ muốn biết quá trình nào đang ăn cắp mạng, không phải băng thông thực sự được sử dụng, bạn chỉ có thể sử dụng netstat -anp --inetvà kiểm tra Recv-QSend-Qcác cột
golimar
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.