Грегори МакГарри (Gregory McGarry) провел обстоятельное и достаточно интересное сравнение производительности двух популярных BSD-систем: NetBSD 2.0 и FreeBSD 5.3. Согласно этому тесту разработчики NetBSD действительно потрудились на славу и версия 2.0 более чем заслуживает именно такого номера - практически во всех тестах NetBSD оказалась быстрее и сейчас вполне обоснованно претендует на звание лучшей операционной системы для серверных применений.
  Тесты проводились на компьютере с материнской платой Asus P4-800SE, процессором Intel P4 3ГГц (1MB L2 кэша) и 1ГБ оперативной памяти. Обе операционные системы устанавливались "по умолчанию" и никаких настроек ядер или их перекомпиляций не проводилось.
  Использовались тесты сразу трех категорий. В первой категории измерялась функциональность ядра операционной системы:
 - потери производительности на системный вызов
 - время переключения контекстов
 - время создания процесса
 - время завершения процесса
 - время загрузки программы
  Во второй категории измерялась масштабируемость операционной системы при нагрузках приложениями или сетевой активностью:
 - время создания процесса при возрастающей нагрузке
 - время завершения процесса при возрастающей нагрузке
 - время инициализации отображенного в память файла
 - время доступа к отображенному в память файлу
 - время создания сокета
 - латентность связывания адреса с сокетом
  Последняя категория измеряла затраты производительности на реализацию родной модели потоков:
 - время создания потока при возрастающей нагрузке
 - потери производительности за жизненный цикл потока
 - затраты на доступ к неоспариваемому мьютексу
 - время доступа к переменным условия
 - время переключения контекста потоков
  В первой группе тестов NetBSD уверенно взяла верх, особенно отличившись во времени загрузки программы - в 2.5-3 раза быстрее, чем FreeBSD.
  Из второй группы тестов выделяется время создания и завершения процессов - в NetBSD оно практически не зависит от количества уже запущенных процессов и при большой нагрузке разница с FreeBSD становится очень значительной. В деле отображения файлов в память обе системы показали себя с лучшей стороны - зависимости от количества запущенных процессов практически не прослеживается в обоих случаях, но здесь FreeBSD показала себя, пожалуй, с лучшей стороны - хотя на отображение файла в память у NetBSD ушло в два раза меньше времени, последующий доступ к этому файлу в FreeBSD происходил все же в два раза быстрее, и если брать типичную нагрузку, когда файл отображается и потом идет периодический доступ к нему, то FreeBSD будет на около 38% впереди. Время создания сокетов в обоих системах отлично масштабируется, но NetBSD здесь опять оказалась быстрее, а вот результат по связыванию адреса с сокетом уже интереснее - при малых нагрузках NetBSD быстрее, но когда нагрузки становятся выше, масштабируемость NetBSD оказывается не лучшей и она уступает FreeBSD.
  Также FreeBSD заметно лучше масштабируется по времени создания потоков - до 250 потоков NetBSD идет впереди, но затем начинает заметно проигрывать FreeBSD. Зато в работе с потоками NetBSD в разы опередила FreeBSD, особенно это заметно в операциях с мьютексами, время доступа в 0.0372 микросекунды и время доступа в 0.282 микросекунды - почувствуйте разницу. И эта разница была явно продемонстрирована дальнейшим тестом "пинг-понг", хотя время создания потоков в первых двух тестах у NetBSD выше, по времени завершения теста она значительно быстрее во всех трех раундах.
  Автор теста отмечает, что хотя такие микро-тесты (по размеру каждой тестируемой операции) явно недостаточны для того, чтобы делать выводы о производительности операционной системы в целом, они все же полезны для понимания архитектурных решений, заложенных в системы. Также было бы интересно сравнить производительность систем на SMP аппаратуре, последние изменения в FreeBSD здесь скорее всего покажут хорошие результаты.
  Полностью с результатами, графиками и выводами можно ознакомиться здесь ( ).
 
  |