Сайт тормозит при нагрузке 500 RPS? Переезд на dedicated server — логичный шаг, но неправильная конфигурация сводит на нет преимущества. Мы нередко видим серверы, где дорогое железо простаивает из-за неоптимальных настроек Nginx и PostgreSQL. Наша команда с десятилетним опытом настраивает выделенные серверы под ключ: от аппаратного RAID до мониторинга. Оценим ваш проект бесплатно и подберём конфигурацию, которая выдержит 10 000 RPS. Получите консультацию инженера — свяжитесь с нами.
Почему правильная конфигурация сервера критична?
Даже мощный сервер с 128 GB RAM и NVMe-дисками может показывать низкую производительность, если не настроить системные параметры. Типичная ошибка — дефолтные лимиты файловых дескрипторов (1024) при нагрузке в тысячи соединений. Или отключённый кеш (опкэш) для PHP-приложений. Мы исправляем такие проблемы на этапе настройки.
Рекомендованные конфигурации для разных нагрузок
| Нагрузка | CPU | RAM | Диски |
|---|---|---|---|
| До 1000 RPS | 4 vCPU | 16 GB | 2× 240 GB SSD |
| 1000-10000 RPS | 8 vCPU | 64 GB | 2× 480 GB NVMe |
| >10000 RPS | 2× Xeon (16 cores) | 128 GB | 2× 960 GB NVMe |
Для проектов с базой данных PostgreSQL рекомендуем не менее 64 GB RAM.
Как выбрать RAID-уровень?
RAID 1 обеспечивает зеркалирование — при отказе диска система продолжает работу. RAID 10 (или RAID 0 для данных) даёт максимальную скорость чтения/записи. Для корневого раздела используем RAID 1, для данных — RAID 10, если дисков больше двух. Настройка выполняется через mdadm:
# Проверить диски lsblk fdisk -l # Создать RAID 1 для корневого раздела mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb mkfs.ext4 /dev/md0 # RAID 10 для данных (4 диска) mdadm --create /dev/md1 --level=10 --raid-devices=4 \ /dev/sdc /dev/sdd /dev/sde /dev/sdf Подробнее о RAID можно прочитать в Wikipedia.
Сравнение RAID-уровней для веб-сервера
| Уровень | Отказоустойчивость | Скорость записи | Использование дисков |
|---|---|---|---|
| RAID 0 | Нет | ✦✦✦✦✦ | 100% |
| RAID 1 | 1 диск | ✦✦✦ | 50% |
| RAID 5 | 1 диск | ✦✦✦ | 67-94% |
| RAID 10 | до 50% дисков | ✦✦✦✦✦ | 50% |
RAID 10 лучше RAID 5 в 3 раза по скорости записи, поэтому для данных выбираем его.
Пример конфигурации для 10 000 RPS
Для проекта с нагрузкой 10 000 RPS мы рекомендуем:
- CPU: 2× Intel Xeon E5-2670 (16 cores / 32 threads)
- RAM: 128 GB DDR4 ECC
- SSD: 2× NVMe 960 GB (RAID 1 для OS, RAID 0 для данных)
- Network: 1 Gbps Unmetered
Оптимизация системы и стека
Системные параметры
Оптимизируем системные параметры: увеличиваем лимиты файловых дескрипторов, настраиваем сетевой стек, отключаем своп. Типовые настройки:
# /etc/sysctl.conf и /etc/security/limits.conf net.core.somaxconn = 65536 net.core.netdev_max_backlog = 65536 net.ipv4.tcp_max_syn_backlog = 65536 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_local_port_range = 10240 65535 fs.file-max = 2097152 vm.swappiness = 10 * soft nofile 1048576 * hard nofile 1048576 root soft nofile 1048576 Nginx
# /etc/nginx/nginx.conf worker_processes 8; events { worker_connections 4096; use epoll; multi_accept on; } http { keepalive_timeout 65; keepalive_requests 1000; sendfile on; tcp_nopush on; tcp_nodelay on; include /etc/nginx/mime.types; default_type application/octet-stream; } PHP-FPM и OPcache
; /etc/php/8.3/fpm/pool.d/www.conf pm = dynamic pm.max_children = 50 pm.start_servers = 10 pm.min_spare_servers = 5 pm.max_spare_servers = 20 pm.max_requests = 500 [opcache] opcache.enable = 1 opcache.memory_consumption = 512 opcache.max_accelerated_files = 20000 opcache.validate_timestamps = 0 PostgreSQL
Настройка PostgreSQL критична: shared_buffers = 25% RAM, effective_cache_size = 75% RAM, random_page_cost = 1.1 для SSD. Пример для 128 GB RAM:
shared_buffers = 32GB effective_cache_size = 96GB maintenance_work_mem = 2GB work_mem = 128MB wal_buffers = 64MB checkpoint_completion_target = 0.9 max_wal_size = 4GB random_page_cost = 1.1 effective_io_concurrency = 200 Процесс настройки сервера
- Аудит текущей конфигурации — если сервер уже используется, анализируем метрики и логи.
- Установка ОС (Ubuntu LTS или Debian stable) с настройкой RAID и файловой системы ext4.
- Установка и оптимизация веб-стека — Nginx, PHP-FPM, PostgreSQL.
- Настройка безопасности — брандмауэр (ufw), fail2ban, SSL-сертификаты (Let's Encrypt).
- Интеграция мониторинга — Prometheus + Grafana, Zabbix для оповещений, Sentry для ошибок.
- Автоматизация бэкапов и деплоя (Ansible / GitLab CI).
- Передача документации и обучение вашей команде.
Сроки и стоимость
Настройка выделенного сервера с нуля (OS, RAID, стек, SSL, мониторинг) занимает 3–5 дней. Оптимизация под конкретную нагрузку — ещё 2–3 дня. Стоимость рассчитывается индивидуально в зависимости от сложности и необходимого стека. Неправильная настройка может стоить до 40% производительности. Правильная конфигурация окупается за 2-3 месяца за счёт снижения latency и увеличения пропускной способности.
Почему выбирают нас
Более 10 лет опыта в настройке серверов. Сертифицированные инженеры по Linux и PostgreSQL. Гарантия 30 дней на выполненные работы. Выполнили более 50 проектов по миграции и оптимизации инфраструктуры. Типичные ошибки, которые мы исправляем: не настроен своп (своп на SSD убивает ресурс ячеек), дефолтные лимиты (приводят к ошибкам «Too many open files»), неправильный RAID-уровень (RAID 5 на SSD даёт низкую скорость записи), отсутствие мониторинга (проблемы обнаруживаются только при падении). Закажите аудит вашего сервера — мы выявим узкие места и предложим оптимальную конфигурацию. Свяжитесь с нами для бесплатной консультации.







