IZONE- http://www.izcity.com/- бесплатный софт, вэб-сервисы, ресурсы для раскрутки, свежие номера журнала "Internet Zone".

Эффекты тонкой настройки

О специальной настройке freebsd существенно улучшающей производительность, как всей системы, так и ее отдельных компонентов.

Станислав Лапшанский

2. Включение soft updates

Это, пожалуй, один из важнейших этапов конфигурирования высокопроизводительного FreeBSD-сервера (подробнее про soft updates смотрите http://www.ece.cmu.edu/
~ganger/papers/CSE-TR-254-95
и http://www.mckusick.com/softdep). Soft updates это метод увеличения производительности обновления метаданных файловой системы (хочется отметить что soft updates не только повышают производительность (особенно при работе с большим количеством мелких файлов), но и существенно повышают надежность файловой системы -- прим. переводчика). Следующие команды были введены в однопользовательском режиме (вызывается командой shutdown now -- прим. переводчика):

tunefs -n enable /
tunefs -n enable /usr
tunefs -n enable /var
tunefs -n enable /tmp

(К сожалению, автор статьи несколько недоговаривает: во-первых, перед подачей этих команд следует размонтировать файловые системы командой umount, а во-вторых первая команда (tuneft -n enable /) не выполнится, так как размонтировать корневую файловую систему не удастся -- прим. переводчика).

3. Sysctl

Несколько sysctl-переменных должны быть изменены для достижения максимальной производительности. Следующие строки необходимо добавить в файл /etc/sysctl.conf:

vfs.vmiodirenable=1
kern.ipc.somaxconn=4096
kern.maxfiles=65536

4. Остальное

Несколько последних штрихов включая установку параметра "noatime" (см. /etc/fstab -- прим. переводчика) на большинстве файловых систем и пристальное внимание к физическому расположению дисковых разделов (очевидно разделы к которым обращаются наиболее часто следует размещать ближе к нулевым дорожкам -- прим. переводчика).

Результаты теста Http_load
Для проведения этого теста я установил Apache 1.3.19 из коллекции портов, изменив параметр HARD_SERVER_LIMIT на 2048. Обычная (не тюнинговая) конфигурация не позволяет создавать 2048 процесса, я задал 128 процессов для начального запуска и максимально может быть запущено 1024 процесса. В оптимизированной конфигурации я установил 2048 постоянно работающих Apache-процесса. В ходе теста я запускал http_load несколько раз с количеством одновременных запросов от 10 до 1000. Я сконфигурировал сервер так, чтобы от отвечал по десяти IP-адресам, переключаясь между ними.

Оптимизированная конфигурация превосходит обычную более чем на порядок. Неоптимизированная конфигурация максимально обслуживает 17 запросов/сек, как результат нехватки сетевых буферов. В свою очередь оптимизированная конфигурация увеличивает производительность при увеличении количества запросов от 333 запросов/сек до 509 запросов/сек (1800%-2900% увеличение производительности по сравнению с обычной конфигурацией). Оптимизированная конфигурация также показывает заметно меньшее количество ошибок при обработке запросов.

Результаты теста Postmark
Postmark запускался с различными наборами параметров. Сначала он был запущен с конфигурацией описанной на сайте postmark'а. Эти результаты сведены в таблицу (включая результаты FreeBSD MFS -- файловой системы в памяти):

1000/ 50000

Ultra 1
UFS1

Ultra 1
TMPFS1

Ultra 1
NFS F6302

FreeBSD
Untuned

FreeBSD
MFS

FreeBSD
Tuned

Транзакций в секунду

36

2000

253

61

2941

276

Чтение (Кб/сек)

115.67

4880

799.91

190.95

9460

878.59

Запись (Кб/сек)

118.27

7330

817.89

195.24

9670

898.33

20000/ 50000

Ultra 1
UFS1

Ultra 1
TMPFS1

Ultra 1
NFS F6302

FreeBSD
Untuned

FreeBSD
MFS

FreeBSD
Tuned

Транзакций в секунду

15

438

176

40

256

91

Чтение (Кб/сек)

29.93

663.64

383.41

74.22

560.37

219.75

Запись (Кб/сек)

54.22

1530

694.58

134.46

1020

398

(сравнение производится со станцией Sun Ultra 1).

Система была проведена через серию тестов с различными размерами файлов и их количествами: 1000 файлов, 20000 файлов.

Разница в быстродействии вполне очевидна в обоих случаях и составляет от 40% до 860% в данном тесте.

Результаты теста Postal
Для проведения этого теста в систему был установлен из системы портов Postfix (postfix-20010228-pl01). Тест запускался на полчаса с интервалом количества параллельных сессий. На тестовом сервере было создано порядка 15000 пользовательских бюджетов, Postal пользуясь их списком рассылал им почту. Тесты выполнялись без промежуточной очистки очереди сообщений с небольшими временными промежутками, т.е. не посланные сообщения оставались в очереди до следующего теста создавая дополнительную нагрузку на сервер). Несмотря на надуманность такого теста, его результаты хорошо показывают различия в производительности конфигураций. Различия в быстродействии варьируются от 40% до 650%.

Заключение

В заключении мы видим, что стандартная инсталляция FreeBSD оптимизирована для безопасности и целостности, совершенно не оптимизирована для использования в качестве высокопроизводительного сетевого сервера. В подавляющем большинстве случаев при обслуживании большого количества одновременных соединений, надежной поддержке большого количества процессов и высоким требованиям к производительности файловой системы, необходимо предпринять шаги для увеличения скорости системы по сравнению с конфигурацией "по умолчанию". Плюсы, которые могут быть извлечены из этого поистине огромны -- это повышение производительности как минимум в два раза!

 

<<Назад

 

 

Источник (оригинал) - SoftТерра, http://www.softerra.ru

 


Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com