Câu trả lời:
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.
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.
Có khá nhiều liệt kê ở đây .
Tuy nhiên, mục yêu thích của tôi vẫn là iftop và tcpdump . Wireshark cũng là một lựa chọn rất tốt.
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 atop
khô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 lsof
cho 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 -S
hoặc strace
để xem các lần đọc, ghi, gửi và nhận hoặc sử dụng tcpdump
vớ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ê.
atop
chắ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.
netstat -anp --inet
và kiểm tra Recv-Q
và Send-Q
các cột