Я ищу объяснение столбца 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