💡 Linux против FreeBSD
Когда сервис обрабатывает 15 000 запросов в секунду, а p99 всё равно ведёт себя странно, код тут ни при чём. Проблема может быть в ОС. Разберём, чем Linux и FreeBSD отличаются на уровне ядра и где каждый из них реально быстрее.
• Шедулеры
Linux с версии 6.6 использует EEVDF вместо старого CFS. Он учитывает дедлайны задач и снижает джиттер для чувствительных к задержке сервисов.
FreeBSD использует ULE. Хорош для интерактивных задач и NUMA-балансировки, держит процессы ближе к их CPU-кешу.
• I/O: io_uring против kqueue
Это главное различие для серверных нагрузок. io_uring, появившийся в Linux 5.1, использует общие кольцевые буферы между userspace и ядром. Меньше системных вызовов, меньше смены контекста, батчевая отправка запросов.
FreeBSD использует kqueue. Технически хорошее решение, которое в своё время повлияло на дизайн io_uring. Но батчами отправлять запросы не умеет.
• Кого куда назначить
Linux выигрывает на I/O-тяжёлых API при высокой конкурентности. io_uring здесь не просто деталь, а архитектурное преимущество. Go, Rust и большинство современных рантаймов используют его автоматически на Linux.
FreeBSD лучше там, где много системных вызовов, важна предсказуемость аллокатора и нужен сетевой стек с минимальными задержками. Netflix держит FreeBSD на CDN-эджах именно из-за этого.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера
Post #4648
1.26K
- 👍 6