[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: net_ratelimit: 2 callbacks suppressed



On 2016-07-10, Eugene Berdnikov wrote:

> On Sun, Jul 10, 2016 at 04:21:47PM +0300, Oleksandr Gavenko wrote:
>> По сообщению в логе /var/log/messages:
>> 
>>   net_ratelimit: 2 callbacks suppressed
>> 
>> нашел обьяснение:
>> 
>>   https://bani.com.br/2015/06/linux-getting-rid-of-net_ratelimit-n-callbacks-suppressed-messages/
>> 
>> и повысил лимиты в /etc/sysctl.conf:
>> 
>>   net.core.message_cost = 1
>>   net.core.message_burst = 20
>> 
>> 
>>   bash# sudo sysctl -p
>> 
>> Соответствующие сообщения перестали сыпаться. Хотелось увидеть какие сообщения
>> пропадают, попробовал через:
>> 
>>   bash# sudo inotifywait -e modify -m -r /var/log
>
>  Вы же их выключили, :) т.е. запретили передачу из ядра в syslog, а теперь
>  пытаетесь найти что-то в /var/log/. Конечно, там теперь ничего не будет.
>

Почему выключил и что выключил?

Мое понимание - были некие события, которые не попали в логи, т.к. для
сетевого кода ядра и модулей по дефолту net.core.message_cost = 5,
net.core.message_burst = 10 (т.е. ограничение не более 10 событий за 5 сек).

Я повысил лимит сначала до 5 событий в секунду и все еще проскальзывало
сообщение:

  bash# dmesg -e | tail 
  [Jul10 14:59] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:03] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:05] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:09] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:12] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:14] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:17] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:20] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:23] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:26] net_ratelimit: 7 callbacks suppressed

Последняя запись - посделняя за день, когда лимит еще не был задран - до 20
соб/сек.

>> Как узнать куда уходят сообщения, ранее скрываемые "net.core"?
>
>  Для этого, во-первых, нужно сообщения вытащить из ядра. То есть вынимать
>  из /dev/kmsg безусловно, во-вторых, сделать чтение из syslogd по запросу.
>

Вроде dmesg делает чтение из /dev/kmsg, коственно по тексту man страницы и
сравнением вывода:

  $ cat /dev/kmsg
  $ dmesg -r

Сообщение "7 callbacks suppressed" видно в /dev/kmsg и такие записи последние.

Если несколько "callbacks suppressed", а потом не-suppressed я ожидал что они
отобразяться в /dev/kmsg.

Хотя меня смущает слово "callbacks". Может никаких событий логгирования и не
происходило?

>  Вам не нравится, что сообщения сыпятся в /var/log/messages? Так отключите,
>  переконфигурив syslog. Если нужно читать on demand, сделайте так, чтобы
>  syslog писал их в /dev/null, например. Или посылал по сети туда, где никто
>  не слушает, например, на 127.0.0.1. В первом случае можно будет смотреть,
>  что пишется в файловый дескриптов strace'ом, во втором -- ловить и смотреть
>  пакеты tcpdump'ом. Первый способ намного дешевле по ресурам.

Я не все понимаю из предложеного.

У меня VPS с домашней страничкой перестал быть доступным из сети, хотя
WEB-панелька хостера говорила что виртуалка жива. Перезагрузка VPS из панелки
сделала хост снова доступным, в логах ряд наиболее послених сообщения вида:

  2 callbacks suppressed

Есть небольшое желание сделать так что бы в следующий раз видеть что то более
осмысленное.

-- 
http://defun.work/


Reply to: