FastNetMon

суббота, 19 декабря 2009 г.

Что такое /proc/sys/net/ipv4/tcp_mem ?

Вот Redhat Deployment Guide тоже не знает и ссылается на: /usr/share/doc/kernel-doc-/Documentation/networking/ip-sysctl.txt

Но для использования этой документации необходимо поставить пакет:
yum install -y kernel-doc


В моем случае это будет:
vi /usr/share/doc/kernel-doc-2.6.18/Documentation/networking/ip-sysctl.txt


По сабжу:

tcp_mem - vector of 3 INTEGERs: min, pressure, max
min: below this number of pages TCP is not bothered about its
memory appetite.

pressure: when amount of memory allocated by TCP exceeds this number
of pages, TCP moderates its memory consumption and enters memory
pressure mode, which is exited when memory consumption falls
under "min".

max: number of pages allowed for queueing by all TCP sockets.

Defaults are calculated at boot time from amount of available
memory.



Как можно понять, эти значения идут от меньшего к большему.

Далее стоит вопрос - как посмотреть, сколько их now in use сейчас? Товарищ подсказывает, что смотреть в:

cat /proc/net/sockstat
sockets: used 1720
TCP: inuse 146 orphan 0 tw 29 alloc 207 mem 9
UDP: inuse 3 mem 0
RAW: inuse 0
FRAG: inuse 0 memory 0



Предполагаю, что параметр этот mem, но в каких попугаях он - вопрос, явно не проценты, т.к. на соседней машинке он был аж за 200:

cat /proc/net/sockstat
sockets: used 3402
TCP: inuse 412 orphan 0 tw 478 alloc 570 mem 205
UDP: inuse 17 mem 0
RAW: inuse 0
FRAG: inuse 0 memory 0


Народ подсказывает, что документациях есть в сорцах ядра: /usr/src/linux/net/ipv4/proc.c, поэтому идем GitWeb kernel.org: http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.27.y.git;a=blob_plain;f=net/ipv4/proc.c;hb=HEAD

А там в "mem" выводится "&tcp_memory_allocated", который объявлен как:
atomic_t tcp_memory_allocated; /* Current allocated memory. */


Потому оно становится полем memory_allocated структуры tcp_prot

А дальше инфы не нашел...

1 комментарий :

Примечание. Отправлять комментарии могут только участники этого блога.