Назад | Перейти на главную страницу

Sar: что означает totsck

Я ищу объяснение столбца totsck для вывода "sar -n SOCK"

09:44:06 PM    totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
09:44:09 PM       580        18         5         0         0         1
09:44:10 PM       580        18         5         0         0         0
09:44:11 PM       580        18         5         0         0         0
Average:          580        18         5         0         0         1

Очевидно, это не сумма сокетов tcp / udp / raw. Единственное другое объяснение, которое я нашел, это то, что это сокеты плюс

 sysctl fs.file-nr 

но на моем тестовом боксе это

fs.file-nr = 5632   0   803168

Очень ценится точное объяснение.

Спасибо

Изменить 2: По-видимому, totsck эквивалентен

cat /proc/net/sockstat

что приводит к вопросу, что там считается. я нашел этот но, в конце концов, он рекомендует спрашивать только тех, кто написал этот конкретный фрагмент кода ядра.

Изменить (для учета доменных сокетов):

[root@fedora16 fs]# netstat --protocol unix| wc -l
413
[root@fedora16 fs]# sar -n SOCK 1 1
Linux 3.3.1-5.fc16.x86_64 (fedora16)    06/21/2012  _x86_64_    (4 CPU)

10:03:25 PM    totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
10:03:26 PM       598         6         5         0         0         3
Average:          598         6         5         0         0         3

Есть также сокеты домена UNIX (STREAM и DGRAM), которые, как кажется, учитываются в общем количестве сокетов, используемых системой. На сокеты домена UNIX ссылаются процессы как на дескрипторы файловой системы. Есть много вещей, которые все еще используют сокеты домена UNIX для различных целей, поэтому sar поднимает это. Проверьте вывод netstat -a чтобы узнать, сколько сокетов домена UNIX открыто в вашей системе.

fs.file-nr - это максимальное количество дескрипторов файлов, и, хотя оно важно, не имеет ничего общего с тем, что вы видите на sar вывод.

Изменить: пожалуйста, учтите, что sar в основном читает /proc/net/sockstat и делает среднее по этому счету или сообщает исторические значения. Кажется, что /proc/net/sockstat получает данные из двух мест (исходный код ядра для 2.6.27), и эти местоположения net/socket.c линия: 2324 и net/ipv4/proc.c строка 54 и последующие, и общее число берется из первых местоположений, а остальные - из второго. Проходя через net Структура также показывает, какие сокеты подсчитываются / учитываются и печатаются в файловой системе proc.

 79  * @SOCK_STREAM: stream (connection) socket
 80  * @SOCK_DGRAM: datagram (conn.less) socket>  
 81  * @SOCK_RAW: raw socket
 82  * @SOCK_RDM: reliably-delivered message>
 83  * @SOCK_SEQPACKET: sequential packet socket
 84  * @SOCK_DCCP: Datagram Congestion Control Protocol socket