Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #69, АВГУСТ 2006 г.

SPECIAL ОПРОС

 

Спецвыпуск: Хакер, номер #069, стр. 069-066-6


BSD развивается намного медленнее, причем базовый код, написанный еще черт знает когда, остается практически без изменений, что делает появление новых дыр достаточно маловероятным явлением (в OpenBSD за все восемь лет ее существования была обнаружена только одна серьезная дыра).

Алексей Петров:

BSD писался и пишется инженерами - код перепроверяется и буквально вылизывается по крохам. В BSD хороший version control и менеджмент кода. Linux пишется разнородной группой энтузиастов-программистов, код часто просто не успевают проверять, темпы разработки ядра просто скоростные (особенно это относится к ядру 2.6.x).

СПЕЦ: Что важно при оптимизации системы?

Александр Антипов:

Оптимизация состоит из двух этапов - оптимизация под аппаратную часть и оптимизация под программную среду. В первом случае большой эффект дает правильная компиляция ядра - включение необходимых параметров оптимизации при компилировании, компиляция под конкретно используемый тип процессора. Затем оптимизация сетевых настроек под тип используемой сетевой карты и особенности сетевой среды. В случае программной среды для каждого типа (почтовый сервер, web-сервер, база данных) можно писать большие статьи, но принцип остается неизменным - тюнинг параметров ядра, сетевого окружения и дисковой подсистемы.

Артур Еналиев:

Главное - не навредить. Другими словами, оптимизируя какой-либо параметр системы, важно следить за тем, чтобы другие параметры той же системы «не портились».

Крис Касперски:

Важно знать, что ты делаешь. Вслепую много не наоптимизируешь. Прежде всего, необходимо отбросить концепцию «бутылочного горлышка», то есть самого узкого места, тормозящего все остальные. Если система настроена неправильно, тормозить будет все, хотя ярко выраженных «бутылочных горлышек» может и не быть, что сделает профилировщик бесполезной игрушкой и останется только эксперимент. Кстати говоря, влияние тех или иных параметров на производительность очень часто обнаруживается чисто случайно. Об этом не говорится в документации, и даже сами разработчики пожимают плечами, и только опыт...

Алексей Петров:

Знание и понимание того, как и что работает. Изначально система «настроена» под некое среднее или завышено среднее, и оптимизация заключается в трех шагах. Первый - сбор и анализ статистики (скажем, каких процессов и операций производится больше, распределение и использование памяти, какие сетевые операции - продолжительность и особенности tcp/udp-сессий). Второй - выбор решения, в идеале - просчет решений и выбор более эффективного и оптимального (просто добавить память или поменять настройки ее распределения, конфиги squid/mysql/apache, плюс пересборка ядра). Третий - непосредственно реализация, оптимизация-тюнинг и подгонка решения (изменение стандартных значений tcp/ip-стека, сокеты, буферизация, timeout'ы...). Плюс первые два шага по новой.

Назад на стр. 069-066-5  Содержание  Вперед на стр. 069-066-7