“кошка/proc/net/dev” и “IP-s ссылка” показывают другую статистику. Какой лежит?

У меня был бы клиент, просто делают полное резервное копирование и затем восстанавливают его к Вашему серверу. Если Вы действительно хотите просто данные, Вы могли бы сделать, чтобы клиент щелкнул правой кнопкой по DB, переходят к Задачам - Генерируют Сценарии и проходят мастер. Следует иметь в виду, что я не обязательно полагаю, что это даст Вам идентичную копию DB. Вы могли также использовать Отсоединение - Копию файлы DB Вам - и затем Повторное прикрепление. IMO лучший способ является резервным копированием и восстановлением. Если бы Вы обеспокоены "загрязнением" Вашего сервера затем, я использовал бы тест VM и снимок/откат.

8
задан 14 November 2012 в 22:02
2 ответа

On a Squeeze machine, trust /proc/net/dev. It's a more straightforward and reliable way of looking at the same data.

For the particular case of the dropped count, I can't explain the exact issue, but I can observe it on other Squeeze boxes. If I cared, I would report it as a bug to Debian (and suggest someone does and reports back here).

Both take the number from the tx_dropped field of net_device_stats. In /proc/net/dev, the line is generated by dev_seq_printf_stats from net/core/dev.c.

ip goes, as usual, through netlink, and more precisely for network device statistics, rtnetlink. The structure passed to userspace, rtnl_link_stats.

The native structure uses unsigned longs, rtnetlink uses __u32, an more or less implicit conversion is done in copy_rtnl_link_stats.

It's pretty easy to catch the 32-bit version is being used from the beginning of the structure, rx_packets: whilst /proc/net/dev shows 1258629839430, ip shows 244248462, which corresponds roughly to the last 32 bits (plus a few more bytes between commands); same thing with the packet count.

Here's the number crunching for those 2 first fields:

% echo '1258629839430 % (2^32)'|bc; echo 244248462
204421702
244248462
% echo '12545003042 % (2^32)'|bc; echo 3955476484 
3955068450
3955476484

Things got better around the introduction of IFLA_STATS64:

  • in the kernel (from commit 10708f37ae729baba9b67bd134c3720709d4ae62, available upstream in v2.6.35 and later)
  • in iproute2 (from commit 8864ac9dc5bd5ce049280337deb21191673a02d0, available upstream in v2.6.33-36 and later).
11
ответ дан 2 December 2019 в 23:00

На большинстве устройств / proc / net / dev считывается с аппаратных счетчиков. Другая статистика обновляется из сетевого стека в структурах устройств.

Отбросы, скорее всего, не будут совпадать, так как они могут быть сделаны оборудованием: MAC-адрес назначения пакета не является ни устройством, ни многоадресной рассылкой, и устройство не является беспорядочным: оборудование напрямую отбрасывает пакет, стек никогда не узнает о его существовании.

Наконец, вы можете спросить, почему бы не синхронизировать их или всегда использовать статистику оборудования? Когда стек по какой-либо причине отбрасывает пакет, он не может обновить аппаратный счетчик, и для отладки полезно знать, что вы можете найти каждый, чтобы отследить, где был отброшен пакет.

Надеюсь, это поможет

-2
ответ дан 2 December 2019 в 23:00

Теги

Похожие вопросы