2015-08-17 3 views
0

Я хочу использовать чистую java, чтобы получить статистику по диску и сети. В частности: В Java, как получить запись на диск и чтение байтов в секунду, сетевых tx-байтов и rx-байтов в секунду?В Java, как получить запись на диск и чтение байтов в секунду, сетевые tx байты и rx байты в секунду?

Возможно ли это?

+0

[Что вы пробовали] (http://mattgemmell.com/what-have-you-tried/) ??? –

+0

Я использую команду java call sar, но в какой-то системе ее нет – jamee

+0

И я нашел org.hyperic.sigar, но она содержит только общие байты, как получить байты/сек? общее количество байтов/время безотказной работы? – jamee

ответ

0

Файловая система proc и sysfs предоставляют доступ к статистике следующим образом.

Вы можете прочитать сеть tx и rx от /proc/net/dev, например.

Статистика диска можно найти в /proc/diskstats.

+0

Я читал/proc/net/dev, есть суммарные байты и суммарные байты передачи, но как получить байты/сек? общее количество полученных байтов/время безотказной работы? – jamee

+0

Это дает вам среднюю скорость байтов/сек для всего времени безотказной работы, что, вероятно, не интересно. Если вы хотите знать, что скорость передачи «сейчас», это либо 0, либо скорость интерфейса, что тоже не очень интересно. Может быть, вы можете прочитать файл каждые N секунд, вычислить разницу и разделить на N, давая вам среднюю скорость за N-секундный период. – Joni

0

Я считаю, что вы спрашиваете что-то похожее на следующее: Detect CPU Speed/Memory/Internet Speed using Java?.

Возможно, вам также удастся использовать пакет java.lang.management. Некоторое описание шаблона описано here.