Управление памятью в сетевой подсистеме и ядре FreeBSD
В статье "Управление памятью в сетевой подсистеме и ядре FreeBSD в целом", ориентированной на системных администраторов и программистов, работающих в ядре FreeBSD, последовательно излагается от общего к частному, что есть память ядра, какими способами в ней выделяется память, каковы отличия выделения памяти в ядре от привычных malloc()/free() в пользовательских приложениях, что такое mbuf, какие инструменты доступны администратору для мониторинга и тюнинга всего этого.Попутно затрагивается ряд смежных тем, например, отличия в организации памяти сетевой подсистемы от Linux, или ряд понятий, часто встречающихся в руководствах и howto в сети, но смысл которых в них не объясняется (keglim/zoneli, nmbclusters, отличия maxsockbuf от sendpsace, как читать вывод диагностических утилит, и др.). Поскольку статья — введение в комплекс связанных обширных тем, она предполагает наличие некоторых базовых понятий (например, чем виртуальная память отличается от физической), и ввиду ограничений на объем не углубляется в некоторые специфичные вещи (типа packet secondary zone), особенно появившиеся не так давно.
Полный текст статьи читайте на OpenNet