ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: "Pavel S. Khmelinsky" <hmepas@yauza.ru>
To: community@altlinux.ru
Subject: [Comm] kernel: Neighbour table overflow.
Date: Mon, 27 Oct 2003 01:58:37 +0300
Message-ID: <3F9C519D.5060104@yauza.ru> (raw)

Тут недавно после подключения к серверу еще одного интерфейса с 
кучей пользователей в логи начало сыпаться примерно следующие:
kernel: Neighbour table overflow.
Клиентов порядка 400 все они статически и жестко привязываются к 
своим макам командой:
ip nei replace to $ip lladdr $mac dev eth2 nud permanent
Причем делает это скрипт, который периодически перезапускается.
Причем чем чаще его перезапускать тем быстрее с момента загрузки 
начинает сыпаться эта дрянь.

Пробовал вопросить в kernel-devel -- не вышло. Сложилось ощущение 
что ответ знают почти все, но в воспитательных целях молчат %)

Возился и так и сяк, прочитал все что нашел про настройки /proc 
которые могли бы повлиять на размер арп таблицы.... Кароче пошел 
на крайнюю меру -- полез в ядро и вот до чего довело мое 
небольшое расследование:

Есть такая структура:

net/ipv4/arp.c:
struct neigh_table arp_tbl = {
         family:         AF_INET,
         entry_size:     sizeof(struct neighbour) + 4,
	....
         gc_thresh3:     1024,
};

Дошел я до нее по цепочке:
net/ipv4/route.c:rt_intern_hash ->
net/ipv4/arp.c:arp_bind_neighbour ->
include/net/neighbour.h:__neigh_lookup_errno ->
net/core/neighbour.c:neigh_create ->
net/core/neighbour.c:neigh_alloc там есть код сравнения 
gc_thresh3 и entries, дальше глянул где задается это значение.


При создании новой записи (neigh_create ф-ия) вызывается ф-ия
neigh_alloc в которой есть проверка tbl->entries > 
tbl->gc_thresh3 т.е. сравнивается кол-во существующих записей с 
этим самым числом. Хотя есть и другие проверки и кандитаты в 
возможные причины появления сообщения kernel: Neighbour table 
overflow. мне почему-то кажется что срабатывает именно эта 
проверка......
И что? Да ничего
gc_thresh3:     1024
и все. Константа.... Ни тебе выхода в #define ни в /proc ....
1024 роста на растоянии прямой видимости (имеется ввиду в одном 
физическом эзернет сегменте) это чего предел что-ли?!

Вобщем гуру, развейте мои сомнения скажите что я где-то чего-то 
недоконфигурил или еще чего-то. Следующим шагом будет пересборка 
ядра, а делать мне это на боевых серверах ой как не охота а нигде 
более это дело у меня не проявляется.

P.S.: Интересно... А у бзди такие проблемы есть?



             reply	other threads:[~2003-10-26 22:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-26 22:58 Pavel S. Khmelinsky [this message]
2003-10-26 23:30 ` Dmitry Lebkov
2003-10-27  0:06   ` Pavel S. Khmelinsky
2003-10-27  8:11   ` Shawkat Nizamov
2003-10-27  8:23     ` Shawkat Nizamov
2003-10-27  8:33       ` Pavel S. Khmelinsky
2003-10-27  8:39         ` Shawkat Nizamov
2003-10-27  8:27     ` Pavel S. Khmelinsky
2003-10-27  8:48       ` Shawkat Nizamov
2003-10-27  8:56         ` Pavel S. Khmelinsky
2003-10-27  9:02           ` Shawkat Nizamov
2003-10-27  9:06             ` [Comm] kernel: Neighbour table overflow. [JT] Pavel S. Khmelinsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3F9C519D.5060104@yauza.ru \
    --to=hmepas@yauza.ru \
    --cc=community@altlinux.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git