The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Сис. информация, оптимизация и тюнинг FreeBSD

   Корень / Администратору / Система / FreeBSD специфика / Сис. информация, оптимизация и тюнинг FreeBSD

----* Оптимизация использования SSD-накопителя во FreeBSD 9.0   Автор: ixes  [комментарии]
  Ниже собраны рекомендации по оптимизации работы SSD-накопителя во FreeBSD 9.0, которые удалось найти в Сети.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Активация поддержки DTrace во FreeBSD (доп. ссылка 1) (доп. ссылка 2)   [обсудить]
  Краткое руководство по включению системы динамической трассировки DTrace во FreeBSD:
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Советы по уменьшению энергопотребления ноутбука с FreeBSD (доп. ссылка 1)   [комментарии]
  1. CPU Включение демона powerd позволяет менять частоту/вольтаж CPU в зависимости от нагрузки.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Решение проблемы с Nvidia драйверами во FreeBSD (доп. ссылка 1)   Автор: Nirnroot  [комментарии]
 
Проблема: 

после установки проприентарных драйверов Nvidia на FreeBSD X.Org зависает по непонятным причинам, 
либо кидает систему в перезагрузку.

Когда возникает: 

экспериментальным путем было выведено, что если совокупная доступная оперативная память 
системы + память видеокарты больше ~3.300 Мб (конкретно - предел оперативной памяти,
определяемый стандартным ядром FreeBSD x86).

Решение: 

добавить в /boot/loader.conf строчку:

   machdep.disable_mtrrs=1
 
----* Решение проблемы слишком частой парковки головок на ноутбуке под FreeBSD (доп. ссылка 1)   Автор: Михаил Иванов  [комментарии]
  На некоторых ноутбуках (или с некоторыми винчестерами) операционная система использует слишком агрессивный режим экономии электроэнергии. В этом режиме происходит очень частая парковка головок винчестера, буквально каждые несколько секунд. Винчестеры имеют ограничение на количество парковок и слишком частая парковка может преждевременно исчерпать этот ресурс.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Увеличение скорости пересборки FreeBSD при помощи CCACHE  (доп. ссылка 1)   [комментарии]
  Ccache позволяет увеличить скорость повторной сборки программы за счет кэширования промежуточных данных.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Параметры распределение памяти для ядра FreeBSD (доп. ссылка 1)   Автор: Yar Tikhiy  [обсудить]
  Такой вопрос обычно возникает вслед за желанием оптимизировать распределение памяти в ядре.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Кэш TCP запросов во FreeBSD (доп. ссылка 1)   Автор: Антон Южанинов  [комментарии]
  Во FreeBSD 5 был добавлен TCP Hostcache - кэш, в котором сохраняются характеристики удаленных хостов от предыдущих соединений, для предварительной настройки новых подключений к этому же хосту. Это позволяет увеличить скорость работы HTTP (и других протоколов с большим числом котороткоживущих TCP соединений).
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Работа процессов размером более 512Мб во FreeBSD   Автор: MicRO  [комментарии]
 
Во FreeBSD 6.2 с 4Гб ОЗУ, процесс python'a виснет когда занимает более 512Мб.

Решение:
В /boot/loader.conf добавляем
   kern.maxdsiz="2610612736"
   kern.dfldsiz="2610612736"
   kern.maxssiz="2610612736"

После чего процесс начинает работать в штатном режиме.
 
----* Как избавится от роста висящих FIN_WAIT_2 соединений под FreeBSD   [комментарии]
 
Если используется ipfw2 и keep-state правила, то от непрерывного роста 
соединений со статусом FIN_WAIT_2 помогает:
   sysctl -w net.inet.ip.fw.dyn_keepalive=0
 
----* Как увеличить производительность memcached под FreeBSD (доп. ссылка 1)   Автор: fak3r  [комментарии]
 
Под FreeBSD наблюдаются проблемы производительности при работе
memcached с объектами размером больше чем несколько килобайт.

Переходим в порт memcached
   cd /usr/ports/databases/memcached/ 
   make configure

Редактируем файл memcached.c
   vi work/memcached-1.1.12/memcached.c

Находим строку #include "memcached.h" и после нее прописываем TCPNOPUSH 
(заставляет использовать TCPNODELAY):
   #undef TCP_NOPUSH

Устанавливаем и запускаем:
   make install
   echo "memcached_enable=\"YES\"" >> /etc/rc.conf
   /usr/local/etc/rc.d/memcached.sh start
 
----* Некоторые полезные sysctl переменные для FreeBSD (доп. ссылка 1)   [комментарии]
 
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Включение Device Polling в FreeBSD (доп. ссылка 1)   [комментарии]
 
man polling - периодических опрос состояния ядром, вместо генерации прерываний 
(полезно при очень большом числе пакетов проходящих через сетевую карту), 
возможен комбинированный вариант, когда polling включается при преодалении
определенного порога нагрузки).
В конфигурации ядра
   options DEVICE_POLLING
   options HZ=1000
Далее:
   sysctl kern.polling.enable=1
   sysctl kern.polling.user_frac=50
 
----* Как оценить величину трафика и состояние системы в динамике для FreeBSD   [комментарии]
 
Динамика изменения параметров:

   netstat -w 1
   iostat -w 1
   vmstat -w 1
   gstat

Состояние буферов:

   vmstat -z
   netstat -m
   netstat -Lan
   netstat -s -p tcp
 
----* Как под FreeBSD создать файловую систему в памяти (ramdisk)   [комментарии]
 
man mount_mfs
   mount_mfs -s 614400 /dev/amrd0s1b /usr/obj
где /dev/amrd0s1b - swap раздел, 614400 - размер MFS диска N*1024*2 (614400 == 300mb).
 
----* Что изменить в настройках конфигурации ядра FreeBSD для нагруженного сервера.   [комментарии]
 
  maxusers 512
  options  NMBCLUSTERS=16786
  options  NBUF=2048
  options  CHILD_MAX=512
  options  OPEN_MAX=512
  options  "MAXDSIZ=(512*1024*1024)"
  options  "DFLDSIZ=(128*1024*1024)"
  options  IPFIREWALL
  options  IPFIREWALL_FORWARD
  options  IPFIREWALL_DEFAULT_TO_ACCEPT
  options  SOFTUPDATES
 
----* Как в FreeBSD посмотреть состояние системных буферов   [обсудить]
 
sysctl vm.zone
 
----* Как включить Soft-updates в FreeBSD для увеличения производительности   [комментарии]
 
1. Перейти в single режим
2. Убедится, что раздел диска размонтирован.
3. tunefs -n enable раздел (например, tunefs -n enable /usr )
 
----* Как в FreeBSD узнать значения LoadAverage, объем свободного ОЗУ и т.д.   [комментарии]
 
sysctl vm.stats.vm.v_active_count
sysctl vm.stats.vm.v_inactive_count
sysctl vm.stats.vm.v_wire_count
sysctl vm.stats.vm.v_cache_count
sysctl vm.stats.vm.v_free_count
sysctl vm.stats.vm.v_page_count
более подробно: 
	sysctl -a|grep vm
	sysctl| less
 
----* Как узнать аппаратную конфигурацию (ОЗУ, CPU и т.д.) машины под FreeBSD   [комментарии]
 
sysctl -a | grep hw
 
----* Как увеличить производительность дисковой подсистемы FreeBSD.   [комментарии]
 
По умолчанию запись на диски в FreeBSD производится в синхронном режиме,
значительно увеличить скорость записи
 можно активировав асинхронный режим: В /etc/fstab в поле Options добавить async (например rw,async).
Или для примонтированного раздела: mount -u -o async /home
Для увеличения производительности IDE дисков, в файле конфигурации ядра можно
указать для wdc устройств
flags 0xa0ffa0ff или 0x80ff80ff (подробнее man wd, man ad).
Для ad: sysctl hw.atamodes; sysctl hw.ata
Например: sysctl hw.atamodes=pio,pio,---,dma,pio,---,dma,---,
См. также man atacontrol 
Третий вариант - активировать в настройках ядра SOFTUPDATES и запустить 
tunefs -n enable /usr в single-user на размонтированном разделе.
 
----* Как увеличить количество shared memory для работы высоконагруженного PostgreSQL   [комментарии]
  В linux: echo 134217728 >/proc/sys/kernel/shmall echo 134217728 >/proc/sys/kernel/shmmax В конфиге ядра FreeBSD: options SYSVSHM
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Решение проблемы при отказе работы Skype за шлюзом с изменённым TCP MSL   Автор: Крепышик  [комментарии]
 
Есть несколько офисов, выходящих в интернет через шлюз с FreeBSD + ipfw +
ipnat. После тюнинга сетевой подсистемы шлюза перестал работать скайп во вне. С
 внутриофисными контактами связь работала видимо потому что скайп соединяется
напрямую с ними.

В результате поиска причины - выяснилось что виной тому была переменная sysctl:

   net.inet.tcp.msl=5000 

время которое соединение может пребывать в состоянии TIME_WAIT. (T = msl*2/1000 секунд) 

После возврата на исходное значение 30000 (T=60 сек.) Skype снова заработал.
 
----* Что имеет смысл поменять через sysctl в FreeBSD   [комментарии]
 
/sbin/sysctl -w net.inet.ip.forwarding=0
/sbin/sysctl -w net.inet.tcp.always_keepalive=1
/sbin/sysctl -w kern.ipc.somaxconn=1024
/sbin/sysctl -w net.inet.tcp.delayed_ack=0
/sbin/sysctl -w net.inet.ip.portrange.last=30000
/sbin/sysctl -w net.inet.tcp.sendspace=131072 # подогнать размер под средний
объем блока передаваемых данных. 131072 - для отдачи больших файлов.
/sbin/sysctl -w net.inet.tcp.recvspace=131072 # подогнать размер под средний
объем блока принимаемых данных. 131072 - для приема больших файлов.
#/sbin/sysctl -w net.inet.tcp.rfc1644=1
#/sbin/sysctl -w net.inet.tcp.rfc1323=0
#/sbin/sysctl -w net.inet.icmp.drop_redirect=1
#/sbin/sysctl -w net.inet.icmp.log_redirect=1
#/sbin/sysctl -w net.inet.ip.redirect=0
#/sbin/sysctl -w net.inet6.ip6.redirect=0
/sbin/sysctl -w net.link.ether.inet.max_age=1200
/sbin/sysctl -w net.inet.ip.sourceroute=0
/sbin/sysctl -w net.inet.ip.accept_sourceroute=0
/sbin/sysctl -w net.inet.icmp.bmcastecho=0
/sbin/sysctl -w net.inet.icmp.maskrepl=0
 

 Версия для печати





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру