Эта статья будет полезна системным администраторам и программистам, работающим в ядре FreeBSD. Осмыслив изложенное здесь, можно понять, почему же бывает паника по kmem, что такое состояние keglim/zoneli, как читать непонятные циферки в выводе vmstat -m / vmstat -z, и что же такое эти самые mbuf и nmbclusters. Программистам, приступающим к работе не
(
Read more... )
Comments 20
А accf_http весь запрос тоже по mbuf-cluster-ам раскладывает, или там по-другому память выделяется?
Reply
Reply
Reply
Reply
PS: Еще раз спасибо за статью, очень помогла в понимании проблемы.
Reply
Ну, это зона с именем mbuf_packet в vmstat -z, код в netstat -m, который показывает циферки, считает их из значений счетчиков зон так:
printf("%ju/%ju/%ju mbufs in use (current/cache/total)\n",
mbuf_count + packet_count, mbuf_free + packet_free,
mbuf_count + packet_count + mbuf_free + packet_free);
printf("%ju/%ju/%ju/%ju mbuf clusters in use "
"(current/cache/total/max)\n",
cluster_count - packet_free, cluster_free + packet_free,
cluster_count + cluster_free, cluster_limit);
printf("%ju/%ju mbuf+clusters out of packet secondary zone in use "
"(current/cache)\n",
packet_count, packet_free);
Оттуда аллокейтит функция m_getcl(), возвращающая сразу mbuf с прицепленным к нему кластером (ман сообщает, что она эффективнее раздельного выделения ввиду возможности сделать это без лишнего перелочивания). ( ... )
Reply
(The comment has been removed)
Reply
(The comment has been removed)
Reply
Leave a comment