Якщо вас влаштовує загальна пропускна здатність вводу / виводу, що використовується (або якщо ваша програма майже повністю мережеве введення / виведення), ви можете переглянути /proc/<pid>/ioфайл. Ви хочете, щоб rcharі wcharполя. Ви можете відняти read_bytesі write_bytes, так як вони представляють собою операції читання і запису на рівні зберігання. Дивіться розділ 3.3 http://www.kernel.org/doc/Documentation/filesystems/proc.txt .
Якщо вам потрібна більша роздільна здатність .... ви можете, можливо, сценарій цього сценарію використовувати, lsofі strace, хоча, було б боляче, щоб виправити всі кутові справи правильно. Основна ідея полягає в тому, щоб розібрати висновок strace -p <pid>, захоплюючи перший параметр (= дескриптор файлу) і повертається значення (= число байт) з read(), write(), send()і recv()викликів ( ПРИМІТКА Є ще кілька системних викликів для прослуховування, я гавань » т відстежив їх усіх). Відмовитися від негативних значень; вони вказують на помилки. Використовуйте, lsof -p <pid>щоб визначити, які дескриптори файлів є сокетами TCP / UDP, і підсумовуйте підрахунки за fd. Ця стратегія не вимагає кореня, доки ви володієте процесом, який ви перевіряєте, але писати було б насправді волохато, не кажучи вже про те, щоб писати добре.