CPU Steal до 10% и «гигантский VIRT»: диагноз и лечение Печать

  • vds, cpu steal, vps, ubuntu, debian
  • 0

1) CPU Steal: что это и почему вас волнует

Steal — время, когда ваш vCPU хотел работать, но гипервизор отдал физическое ядро соседям. На оверселл-узлах это болезненно: лаги в RDP/SSH, дроп RPS, «тяжёлые» джобы тянут резину.

Быстрая диагностика (Ubuntu/Debian)

# Пакеты мониторинга
sudo apt update && sudo apt -y install sysstat procps

# Снимок общей картины (5 секунд)
sar -u 1 5

# Почасовая ретроспектива по steal (если включён sa-коллектор)
sudo systemctl enable --now sysstat
sar -u -f /var/log/sysstat/sa$(date +%d)

# По каждому vCPU — видно, кто «крадёт»
mpstat -P ALL 1 10

# top/htop: колонка st (steal) в верхней строке Cpu(s)
top -d 1

Интерпретация: стабильные st ≥ 5% уже заметны, ~10% — явный сигнал «узел перегружен». Это не ваша ошибка — ресурсы физического CPU вам не достаются.

Небольшой стресс-тест

sudo apt -y install stress-ng
# Грузим все видимые vCPU и смотрим st в top/mpstat
stress-ng --cpu 0 --timeout 60s --metrics-brief

Если при нагрузке стейл улетает к 8–15% — гипервизор реально «крадёт» у вас ядра.

Что делать практично


1. Попросить перенос на менее загруженный хост (иногда помогает).
2. Сменить тариф на гарантированные vCPU или пинованные ядра (dedicated vCPU).
3. Если критичны задержки — взять выделенный сервер.

У нас в HSTQ — гарантированные ресурсы: фиксированная доля CPU и I/O без сюрпризов от соседей. Нужна миграция «под ключ» — сделаем бесплатно и быстро.

Мини-алерт по steal (каждые 5 минут, тревога с 5%)

sudo tee /usr/local/bin/steal-watch.sh >/dev/null <<'SH'
#!/usr/bin/env bash
set -e
ALERT=5
STEAL=$(mpstat 1 1 | awk '/all/ {print $(NF-0)}' | tail -n1)
STEAL=${STEAL%.*}
if [ "$STEAL" -ge "$ALERT" ]; then
logger -t steal-watch "High CPU steal: ${STEAL}%"
echo "High CPU steal: ${STEAL}%" | mail -s "STEAL ALERT $(hostname)" root
fi
SH
sudo chmod +x /usr/local/bin/steal-watch.sh
echo "*/5 * * * * root /usr/local/bin/steal-watch.sh" | sudo tee /etc/cron.d/steal-watch


2) «Virtual Memory огромная!» — это не утечка, это адресное пространство

В Linux-мониторах (top/htop/ps, GNOME System Monitor) столбец VIRT показывает адресное пространство процесса: туда входят mmap-ы библиотек, файлы, анонимные маппинги, неотфизиченная память и пр. Это не равно фактическому потреблению ОЗУ. Реальную «прожёванную» память смотрим по RES (Resident).

Быстрая проверка по процессу

# Найдём «подозреваемый» PID
ps aux --sort=-vsz | head

# Смотрим VIRT/RES/SHR человека-читаемо
ps -o pid,comm,vsz=VIRT_KB,rss=RES_KB,pmem cmd -p <PID>

# Детальнее по маппингам (сумма RSS внизу)
pmap -x <PID> | tail -n 5

Что считать «нормальным»
- Большие VIRT у языков с JIT, браузеров, JVM, некоторых БД — норма.
- Смотрите RES (и %MEM), именно они съедают RAM.
- Для сервера ориентируйтесь ещё и на cgroup-метрики (docker/systemd-slice), если сервис контейнеризован.

Полезные команды для общей картины

free -h
vmstat 1 5
grep -E 'MemTotal|MemAvailable|SwapTotal|SwapFree' /proc/meminfo


3) Какой VPS выбрать, чтобы не попасть в ловушки (шпаргалка)

Если думаете какой vps выбрать или vps сервер какой выбрать, идите по чек-листу:
1. CPU-гарантии. Есть ли прозрачные гарантированные vCPU (доля/пин-ядра)? Попросите это письменно.
2. I/O-гарантии. NVMe, лимиты IOPS/MB/s, честные квоты.
3. Мониторинг. Разрешён ли sar/sysstat? Можно ли получить графики steal у провайдера?
4. Соседи. Overcommit по CPU/RAM? На сколько?
5. Сеть. Реальная полоса (не «до»), стабильность p95-RTT внутри региона.
6. Поддержка. Готовы ли помочь с переносом и настроить алерты?
7. Миграция. Возможность быстрого переезда между узлами/локациями без простоя.

В HSTQ мы даём гарантированные vCPU/IOPS, прозрачные лимиты и помогаем с мониторингом (sar/mpstat/alerting). Хотите выбрать VPS без сюрпризов — подскажем конфигурацию под вашу нагрузку и перевезём бесплатно.

Быстрый чек-лист 


- st ≥ 5–10% в sar/mpstat/top = узел перегружен. Меняем план на гарантированные vCPU или узел/провайдера.
- «Огромный VIRT» ≠ «жрёт RAM». Смотрите RES/%MEM, а по процессу — pmap -x.
- Чтобы выбрать VPS сервер без боли: гарантия vCPU, NVMe I/O, честные лимиты, поддержка миграций и мониторинг.
- У нас в HSTQ — гарантированные ресурсы и бесплатная настройка мониторинга/перенос.


Помог ли вам данный ответ?

« Назад

Powered by WHMCompleteSolution


База знаний