Найти в Дзене
Цифровая Переплавка

⚡ OpenBSD в 10 раз быстрее Linux? Разбираем необычный бенчмарк

Оглавление
Картинка изображает ноутбук с OpenBSD и логотипом-рыбкой, на экране которого выполняется программа с замерами времени, а рядом лежат часы-секундомер, подчеркивающие сверхбыструю работу системы по сравнению с Linux.
Картинка изображает ноутбук с OpenBSD и логотипом-рыбкой, на экране которого выполняется программа с замерами времени, а рядом лежат часы-секундомер, подчеркивающие сверхбыструю работу системы по сравнению с Linux.

Обычно мы привыкли к обратным заголовкам: «OpenBSD медленнее», «Linux выигрывает по производительности». Но свежий тест Ted Unangst показал противоположное: в задаче массового создания TCP-сокетов OpenBSD оказался примерно в 10 раз быстрее Linux.

🧪 Суть эксперимента

Программа создаёт:

  • один поток,
  • далее оба потока открывают по 256 TCP-сокетов.

То есть всего 512 вызовов socket() подряд. Измерение ведётся не через time, а встроенными gettimeofday(), потому что стандартный time в OpenBSD оказался слишком «грубым» — время выполнения было настолько маленьким, что его трудно уловить.

📊 Результаты

  • 🐧 Linux: 0.017–0.026 секунд
  • 🐡 OpenBSD: 0.0023–0.006 секунд

Чтобы тест запустился в OpenBSD, пришлось увеличить лимит открытых файлов:

ulimit -n 1024

🔍 Почему так вышло?

Скорее всего, дело не в «магии сетевого стека», а в деталях реализации ядра:

  • ⚙️ Управление файловыми дескрипторами в OpenBSD устроено проще и может быстрее работать при большом количестве короткоживущих сокетов.
  • 🧩 Разные механизмы аллокации структур: Linux часто тратит больше времени на вспомогательные проверки.
  • 🔒 Безопасность и overhead — парадоксально, но в данном конкретном сценарии OpenBSD с жёсткими проверками оказался быстрее, чем «гибкий» Linux.

🧭 Моё мнение

Важно понимать: этот бенчмарк очень узкий. Он не показывает, что OpenBSD быстрее Linux «во всём». Наоборот, в реальных нагрузках (например, под высокочастотный трейдинг или тяжёлые базы данных) Linux почти всегда лидирует.

Но сам факт интересен: мы привыкли думать, что OpenBSD — это только про безопасность и консервативность, а не про скорость. А тут получаем напоминание: иногда аккуратный дизайн ядра побеждает оптимизацию ради универсальности.

✅ Вывод

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

Для инженеров вывод прост: тестируйте под свою задачу, а не под чужие графики.

🔗 Источник: