The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Параметры распределение памяти для ядра FreeBSD
Такой вопрос обычно возникает вслед за желанием оптимизировать распределение памяти в ядре.

Для начала стоит понять, как в общем выглядит виртуальное адресное пространство
FreeBSD. В его нижней части расположен текущий процесс,
а верхнюю всегда занимает ядро. Отрезок виртуального адресного
пространства, занятый ядром, -- kernel virtual memory (KVM) он же kernel
virtual address space (KVA) -- ограничен адресами KERNBASE снизу и 
VM_MAX_KERNEL_ADDRESS сверху. Эти величины меняются только от
платформы к платформе, а vm.kvm_size возвращает их разность:

   vm.kvm_size = VM_MAX_KERNEL_ADDRESS - KERNBASE

На живой машине ядро фиксирует конец используемой части KVM в
переменной ядра kernel_vm_end. Отрезок от kernel_vm_end до
VM_MAX_KERNEL_ADDRESS и есть свободная часть KVM:

   vm.kvm_free = VM_MAX_KERNEL_ADDRESS - kernel_vm_end

Очевидно, что переменные vm.kvm_size и vm.kvm_free чисто
информационные, настраивать их нельзя.

В KVM есть участок, который ядро использует для динамического
распределения памяти посредством malloc(9) и zone(9). Длина этого
участка вычисляется при загрузке системы по формуле:

   vm.kmem_size = min(max(max(VM_KMEM_SIZE, Physical_memory / 
       VM_KMEM_SIZE_SCALE), VM_KMEM_SIZE_MIN), VM_KMEM_SIZE_MAX)

Выглядит жутковато, но суть простая: vm.kmem_size_{min,max} задает
диапазон для автонастройки, которая сводится к выбору большего из
VM_KMEM_SIZE (это #define) и ОЗУ / vm.kmem_size_scale.

Также можно жестко указать vm.kmem_size из loader.conf. Наконец, при
любых настройках kmem_size не может быть более двух размеров ОЗУ.

Обратите внимание, что kmem -- это участок виртуального адресного
пространства, а не физической памяти. Именно поэтому ядро может
упасть в панику "kmem_map too small", хотя ОЗУ еще в избытке, если
какая-то из подсистем ядра пытается выделить слишком много памяти
для своих нужд. Типичный пример этого -- виртуальный диск, созданный с
помощью "mdmfs -M". 
 
24.08.2007 , Автор: Yar Tikhiy , Источник: http://www.unixfaq.ru/index.pl?req=...
Раздел:    Корень / Администратору / Система / FreeBSD специфика / Сис. информация, оптимизация и тюнинг FreeBSD

Ваш комментарий
Имя:         
E-Mail:      
Заголовок:
Текст:

 Добавить заметку
 Версия для печати
 
 Поиск заметки:
 

Последние заметки
- 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
- 11.05 Настройка беспроводного соединения в Debian GNU/Linux
- 07.05 Использование Google Drive в Linux
- 18.04 Использование нескольких сетевых стеков в Linux
- 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
- 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
- 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
- 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
- 21.03 Настройка DNSSEC в BIND 9.9
- 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
RSS | Следующие 15 записей >>


ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Оформить подписку на год


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList