Рейтинг:2

Есть ли способ получить показатели CPS и Thruoghput в Linux?

флаг aq

Я хочу проанализировать нагрузку на сеть моего сервера Debian 9, чтобы обнаружить некоторые возможные сетевые перегрузки.

Основные показатели, которые мне нужно проанализировать:

  • CPS (количество подключений в секунду)
  • пропускная способность

Есть ли способ получить эти показатели из Linux?
Я думал, что метрику CPS можно как-то получить через conntrack НОВЫЙ соединения, но не уверен, что это будет самый правильный способ.

Извините, если очевидно.

P.S. этот сервер обрабатывает не только локальный трафик, но и перенаправляет большой трафик.

djdomi avatar
флаг za
есть много программного обеспечения, которое можно использовать для мониторинга сети. какую цель вы хотите решить?
narotello avatar
флаг aq
@djdomi Я упомянул в своем вопросе, что хочу обнаруживать DoS по косвенным признакам. И я хочу, чтобы это делалось из ОС моего сервера.
djdomi avatar
флаг za
в случае запроса к веб-серверу злоумышленником может быть любой ip, который делает много запросов
narotello avatar
флаг aq
@djdomi Хорошо, но это не имеет прямого отношения к методу получения показателей CPS и Througput. Это просто размышление на тему DoS-атак.
djdomi avatar
флаг za
обсуждение безопасности имхо не подходит для serverfault.com. для этого есть дополнительный сайт. вы можете создать с помощью Wireshark файл, чтобы проверить это, но пока вы сохраняете свой вопрос, как правило, он не получит хороших ответов.
narotello avatar
флаг aq
@djdomi Вопрос не в безопасности, а в показателях производительности. *"вы можете создать с помощью Wireshark файл, чтобы проверить это"* - что проверить? О чем ты говоришь?
Рейтинг:2
флаг cn

Я думаю, что было бы достаточно описать происхождение этих метрик на основе родного 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 -- означает, что пакет начал новое соединение, или иначе связанный с соединением, которое не видело пакеты в оба направления, и

Так кажется, что вы хотите вычислить дельта новый в секунду.

Прочитайте больше:

Рейтинг:0
флаг in

Команда sar, входящая в состав sysstat, сделает и то, и другое.

Мониторинг подключений в секунду sar -n TCP 1

active/s — это исходящие TCP-соединения. passive/s — это входящие TCP-соединения.

для UDP sar -n UDP 1

Посмотреть пропускную способность сети sar -n DEV (необязательно добавьте 1 для контроля тока в секунду)

narotello avatar
флаг aq
* «active/s — это исходящие TCP-соединения».
narotello avatar
флаг aq
Оба `sar -n enp5s0` и `sar -n enp5s0 1` не работают. Похоже на неверный вариант: `Использование: sar [параметры] [ [ ] ] Варианты:`...
narotello avatar
флаг aq
Кроме того, для UDP, похоже, отображаются дейтаграммы в секунду. Но не каждая дейтаграмма представляет новое соединение. UDP-соединение имеет тайм-аут, поэтому все дейтаграммы в течение этого тайм-аута принадлежат одному и тому же соединению. По сути, ваш метод показывает ** пакеты в секунду ** на транспортном уровне и только ** локальные ** (входящие / исходящие) ** пакеты **.
dubs avatar
флаг in
DEV является буквальным, т.е. sar -n DEV не sar -n . sar -n IP имеет fwddgm/s, если это более уместно.
narotello avatar
флаг aq
*"DEV является буквальным, т.е. sar -n DEV"* - Хорошо, спасибо. `fwddgm/s` - к сожалению, это не метрика CPS, а скорее PPS - пакетов в секунду.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.