Вот, например, «НагрузТест» — это SaaS-платформа, которая помогает тестировать нагрузку. У них был довольно солидный сервер: 64 CPU, 256 GB RAM, 10G NIC. Но стоило только дойти до 50,000 одновременных соединений, и мы тут же замечали, как начинались потери пакетов, а latency начинала ползти вверх. А всё потому, что дефолтные настройки Linux, как ни странно, заточены под десктоп с 4 ГБ RAM, а не под настоящий сервер с четвертью терабайта памяти.
# Типичные дефолты vs production-значения
sysctl net.core.somaxconn # 4096 (нужно 65535)
sysctl net.ipv4.tcp_max_syn_backlog # 1024 (нужно 65535)
sysctl net.core.netdev_max_backlog # 1000 (нужно 50000)
sysctl vm.swappiness # 60 (нужно 1-10)
cat /proc/sys/fs/file-max # 65535 (нужно 2000000)
Три области тюнинга с максимальным эффектом:
- Сеть (TCP/IP стек) — буферы, backlog, TIME_WAIT
- Дисковый I/O — планировщик, readahead, dirty pages
- Память — hugepages, swappiness, overcommit, NUMA

Комментарии 0