Чек-лист нового VPS: проверить до того, как пускать клиентов
Хостер обещал гигабит, NVMe и чистый IP. Проверяем за полчаса, пока не поздно вернуть деньги.
Большинство проблем с VPS видно в первый же час: грязный IP, соседи, которые жрут CPU, «гигабит» на 80 мегабит и гео, которое считает твой немецкий сервер иранским. Проверь всё до того, как переносить туда прод и клиентов.
1. IP: репутация и гео
Открой досье IP, подставив адрес сервера, или из самого сервера:
curl host.pink/$(curl -s host.pink/ip)На что смотреть:
- Репутация и блоклисты. Досье проверяет несколько DNSBL, блоклисты RIPEstat и не узел ли это Tor. Адрес в DNSBL значит, что с него уже жаловались на спам или абьюз. Почта с такого IP рискует попадать в спам.
- Где. GeoIP-базы часто ошибаются. Если сервер в Германии, а базы считают его российским или иранским, стриминги и часть сервисов будут вести себя соответственно.
- Открытые порты и сервисы. Это данные Shodan InternetDB, которые обновляются раз в неделю, то есть показывают, что было открыто на адресе при последних сканах. Для свежего сервера там может оказаться наследство прошлого арендатора адреса. Текущее состояние своих портов проверяй на самом сервере (
ss -tlnp). - Карта связности. Через кого сеть хостера выходит в мир: прямые апстримы по AS-путям RIPE RIS. Один апстрим — одна точка отказа.
2. Доступность из России
Если клиенты в РФ, это важнее всех бенчмарков:
curl "host.pink/check/203.0.113.10:443?t=tcp"Смотри на пробы домашних провайдеров. Подсети некоторых хостеров целиком в немилости, и выяснять это после переезда обидно. Опыт сообщества по хостерам — в разделе Хостинги, а что делать, если не открывается, — в гайде Сайт не открывается из РФ.
3. Железо и соседи
systemd-detect-virt # kvm — полноценная VM, openvz/lxc — контейнер, готовься к сюрпризам
nproc && free -h && df -h /CPU steal показывает, сколько процессорного времени гипервизор отдал не тебе, а другим:
vmstat 1 5Смотри на колонку st, первую строку пропускай: это среднее с момента загрузки. То же поле есть в top как st в строке %Cpu(s). Ориентир, а не стандарт: около нуля — хорошо; если st стабильно держится на десятке процентов и выше, ядра, скорее всего, перепроданы, и быстро твоя нода работать не будет.
4. Бенчмарк одной командой
YABS гоняет диск (fio), сеть до нескольких точек (iperf3) и Geekbench:
curl -sL https://yabs.sh | bash -s -- -gФлаг -g пропускает Geekbench, он долгий. Для ноды важнее диск и сеть. Сетевой тест забивает канал примерно на 20 секунд на каждую точку; если трафик тарифицируется, добавь -r (меньше точек iperf) или -i (без сети).
- Диск. fio гоняет случайное чтение и запись 50/50 блоками 4k, 64k, 512k и 1m. Смотри на 4k: это ближе всего к реальной нагрузке. Для сравнения, в примере из README YABS (выделенный сервер) 4k даёт около 400 МБ/с на чтение и столько же на запись. Если у тебя десятки МБ/с, диск на порядок медленнее, что бы ни писали на сайте.
- Сеть. Сравни обещанный канал с тем, что получилось до ближайших точек.
5. Канал до своих точек
Бенчмарк меряет до чужих серверов. Тебе важнее канал до своих мостов и клиентов:
iperf3 -s # на одном сервере (слушает TCP 5201)
iperf3 -c <адрес> -t 20 -P 4 # на другом: 20 секунд, 4 параллельных потока
iperf3 -c <адрес> -t 20 -P 4 -R # и в обратную сторону: шлёт серверПорт 5201 на сервере с iperf3 -s должен быть открыт в файрволе.
Добавь TCP-пинг из разных точек: host.pink/check/203.0.113.10?t=tcp.
6. Базовая гигиена сразу
Пока сервер пустой, сделай то, что потом лень:
- SSH без боли: ключи, запрет паролей.
- Файрвол на nftables.
- sysctl для ноды: BBR и буферы.
Лайфхак
У многих хостеров срок возврата денег короткий, а у некоторых его нет вовсе, так что проверь условия до оплаты. Прогони чек-лист сразу после оплаты, а не через неделю, когда клиенты начнут жаловаться.
Больше чекеров и бенчмарков, которыми пользуется сообщество (censorcheck, ipregion и компания): Чекеры и бенчмарки.
Источники
- systemd-detect-virt(1): значения
kvm,openvz,lxcи другие - vmstat(8): колонка
st, первая строка — среднее с загрузки; top(1):st : time stolen from this vm by the hypervisor - YABS README: команда запуска, флаги
-g,-i,-r, состав тестов fio/iperf3/Geekbench, пример вывода - iperf3(1):
-s,-c,-t,-P,-R, порт 5201 по умолчанию - Shodan InternetDB: обновление раз в неделю;
ss(8):
-t,-l,-n,-p