Есть ли способ узнать общий объем памяти, используемый UDP-сокетами в системе? - PullRequest
1 голос
/ 29 июня 2011

С помощью мониторинга протоколов / proc / net / sockstat или / proc / net / я могу определить общий объем памяти, используемый сокетами TCP в системе в режиме реального времени:

[gpadmin@sdw4 ~]$ cat /proc/net/sockstat
sockets: used 240
TCP: inuse 55 orphan 0 tw 0 alloc 69 mem 2171
UDP: inuse 22 mem 0
RAW: inuse 0
FRAG: inuse 0 memory 0
[gpadmin@sdw4 ~]$ cat /proc/net/sockstat
sockets: used 240
TCP: inuse 55 orphan 0 tw 0 alloc 69 mem 761
UDP: inuse 22 mem 0
RAW: inuse 0
FRAG: inuse 0 memory 0

Приведенные выше метрики показывают объем памяти, используемый сокетами TCP, но метрики сокетов UDP помечены как 0. Есть ли способ узнать эту информацию?Любые файлы / proc / net записывают эту информацию?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 29 июня 2011

Может ли быть так, что у вас низкий трафик?

Это на моей машине, принимающей 400 пакетов UDP / сек на 3 порта (есть 4-й поток UDP, но я его не использую).

# cat /proc/net/sockstat
sockets: used 32
TCP: inuse 6 orphan 0 tw 0 alloc 6 mem 1
UDP: inuse 4 mem 3

Тот же компьютер, обслуживающий эти потоки UDP для множества клиентов по HTTP:

#cat /proc/net/sockstat
sockets: used 7232
TCP: inuse 7206 orphan 0 tw 0 alloc 7206 mem 405397
UDP: inuse 4 mem 30

Сервер HTTP однопоточный, поэтому мне пришлось установить буфер приема для UDPрозетки довольно высокие, чтобы не потерять ни одного пакета.Некоторое время я запускал тест, но никогда не видел, чтобы UDP mem превышал 50.

0 голосов
/ 29 июня 2011

Извините, если я совершенно не в курсе, но я думаю, вам нужно сначала включить учет udp с помощью /proc/sys/net/ipv4/udp_mem, прежде чем он соберет статистику памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...