OSChoose

Материал из OpenWiki
Версия от 06:53, 14 октября 2008; ImportUser (обсуждение)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Большое число нитей

В Solaris лучшая реализация нитей, без проблем выдерживающая работу под большиеми нагрузками.

В Linux ядре 2.6 поддержка нитей NPTL заметно хуже. Если созданное один раз большое фиксированное число тредов еще как-то работает (хотя на разных 2.6 ядрах наблюдались проблемы связанные со стабильностью), то производительность динамически создаваемых тредов (постоянно создаются новые и убиваются старые) оставляет желать лучшего.

Во FreeBSD ситуация еще хуже. Для MySQL во FreeBSD 6 оптимальным является использование реализации 1:1 тредов - libthr. Использование m:n библиотеки libpthread показывает более низкие результаты. В более ранних версиях FreeBSD MySQL рекомендуется собирать с linuxthread.

Большое число процессов

Linux лидирует, FreeBSD тоже нормально (если до своппинга дело не доходит).

Мультиплексирование I/O

Лучшее решение - kevent/kqueue в FreeBSD, потом epoll в Linux. В Solaris 10 - event ports.

Многопроцессорные системы

Лучшая реализация в Solaris. Linux неплохо работает в SMP системах с числом процессоров не больше 4. Во FreeBSD поддержка SMP хуже.

Итог

Linux - 9, FreeBSD - 6, Solaris - 8. Данное сравнение далеко не исчерпывающее. Таким образом, Solaris подходит для приложений, в которых критична высокая параллельность вычислений (или одновременное обслуживание большого числа клиентов), Linux - для использования на серверах небольшой мощности, нагрузка на которые стабильна и почти не меняется с течением времени. FreeBSD будет неплохо обслуживать сервер БД или файл-сервер. противоречит первой части статьи

Ссылки


PS. По первым двум пунктам желателен современный источник, набор ссылок в конце охватывает практически только FreeBSD.