|
Оптимизация использования 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
|
|
|
|
|
|
Включение 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
|
|
|
|
|
|
Как включить 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
|
|
|
|
|
|
Как увеличить производительность дисковой подсистемы 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
|
|
|
|