Я думаю, что было бы достаточно описать происхождение этих метрик на основе родного Linux API.
пропускная способность
Кстати, пропускная способность метрика вообще это нечто, т.е. внешний применительно к объекту тестирования (ОС Linux, о которой вы говорите). т.е. грубо говоря, у нас есть два хоста (например, клиент и сервер) и объект тестирования между ними. Мы пропускаем сетевой трафик между клиентом и сервером и записываем (граничную) пропускную способность объекта тестирования (например, с помощью iperf).
Но из ОС Linux простой способ измерения пропускной способности — только для интерфейса.
Так что можешь просто смотреть /proc/net/dev
и рассчитать дельта байтов в секунду:
sh-tst# кошка /proc/net/dev
Интер-| Получить | Передать
face |bytes пакеты errs drop fifo frame сжатый multicast|bytes packets errs drop fifo colls перевозчик сжатый
вот: 87016202 715723 0 0 0 0 0 0 87016202 715723 0 0 0 0 0 0
eth3: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth2: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth1: 246415305 2899662 0 132906 0 0 0 230 5466117 19016 0 0 0 0 0 0
eth0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
СПС
То же самое и с метрикой CPS. В основном это внешнее измерение.
Но внутри вашего Linux вы можете попытаться рассчитать его на основе /proc/net/stat/ip_conntrack
:
sh-tst# кошка /proc/net/stat/ip_conntrack
найденные записи найдены новые недействительные игнорировать delete_list вставить insert_failed drop Early_drop icmp_error expect_new expect_create expect_delete search_restart
000000F8 00001742 0003142F 0001E85A 00000079 00021333 0001E6CF 00003A3D 00003BC5 00000000 0000000000000000 00000000 000000000000000000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000 00000000 00000000 0000000000000000 00000000000000000000000000000000000000 000000000000000000000000000000000000 0000000000000000000000000000000000
000000F8 00002389 0005F1A0 0003B6F3 00000085 0004286F 0003B59E 00003CEA 00003E3F 00000000 00000000 00000000 00000000 000000000000000000000000000000 00000000 00000000 0000000000000000000000 00000000 00000000 0000000000000000000000 00000000 00000000 0000000000000000000000 00000000 00000000 0000000000000000000000 00000000 00000000 0000000000000000000000 00000000 00000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000f8 000002c0 00037a77 00000714 00000000 000382cb 00000825 00000724 00000616 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
000000f8 00000225 00026cf9 00000271 00000000 00026e48 00000348 000002bd 000001e6 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
От Инстат(8)
человек:
/proc/net/stat/ip_conntrack, /proc/net/stat/nf_conntrack
Счетчики, связанные с Conntrack. ip_conntrack для обратного
совместимость только со старым пользовательским пространством и показывает то же самое
данные как nf_conntrack.
...
новый Количество добавленных записей conntrack, которые не были
ожидалось раньше.
В отслеживании соединения Linux:
NEW -- означает, что пакет начал новое соединение, или
иначе связанный с соединением, которое не видело пакеты в
оба направления, и
Так кажется, что вы хотите вычислить дельта новый
в секунду.
Прочитайте больше: