Пишу сейчас счетчик трафика к биллингу, столкнулся с какой-то особой линуксовой магией. Для получения информации читаю /proc/net/dev раз в секунду, текущее минус прошлое получаю загрузку канала. Коплю три последних значения, вывожу среднюю за три секунды. Дальше в мегабиты в секунду оно переводится вот так: Code: final float cdd = ((float)(new Date().getTime() - curDate)) / 1000f; final float txd = ((avg3_tx_current * 8f) / (1024f * 1024f)) / cdd; final float rxd = ((avg3_rx_current * 8f) / (1024f * 1024f)) / cdd; curDate = new Date().getTime(); Запускаю спидтест, все показывает верно: Смотрю в этот момент в своей программе, входящая на интерфейсе показывает также, как спидтест, а вот исходящая уходит за несколько гигабит и показывает случайную хрень. Этого не может быть, интерфейс сам по себе гигабитный. Если загрузка канала небольшая и равномерная, показывает все нормально, при всплесках высокой нагрузки же жутко врет в большую сторону. Причем iptraf/iftop такого поведения не проявляют, показывают все как надо. Что это за магия такая?