На страницах тарифов первой пишут память, но полный диск кладёт сервер ничуть не хуже. С ошибкой "No space left on device" базы данных перестают писать, а сайты — отвечать, сколько бы памяти ни было свободно. Предсказать расход диска несложно, если знать, что растёт. Мы запустили свежие серверы из своих образов и измерили каждого из привычных подозреваемых.
Сколько занимает свежий сервер
Замеры сразу после первой загрузки:
| Система | Занято на диске |
|---|---|
| Alpine Linux 3.21 | 153 МБ |
| Debian 12 | 1,2 ГБ |
| Ubuntu 24.04 | 2,7 ГБ |
| Windows Server 2022 | 14,0 ГБ |
На Linux почти весь Nano на 15 ГБ ваш с первого дня. Windows занимает больше четверти своих 50 ГБ ещё до установки чего-либо, а как вы увидите ниже, обновления берут больше.
Часть из 2,7 ГБ Ubuntu было легко вернуть. 440 МБ занимал кэш пакетов от обновлений при первой загрузке, а ядер стояло три, хотя используется одно. Две команды довели занятое до 2,16 ГБ:
sudo apt clean
sudo apt autoremove --purge
Docker: образы быстро накапливаются
Сама установка Docker добавила около 300 МБ. Решают образы. Мы скачали восемь популярных, один за другим, и каждый раз мерили, насколько вырос диск:
| Образ | Прибавилось на диске |
|---|---|
nginx:alpine | 91 МБ |
nginx:latest | 232 МБ |
postgres:16 | 501 МБ |
python:3.12-slim | 59 МБ |
node:22 | 1564 МБ |
mariadb:11 | 437 МБ |
wordpress:latest | 960 МБ |
redis:7-alpine | 55 МБ |
| Итого | 3,9 ГБ |
Образы с общей основой переиспользуют её слои, поэтому python:3.12-slim добавил всего 59 МБ: ту же основу Debian уже принесли nginx:latest и postgres:16. Образы на Alpine в разы меньше полных. Один node:22 весит 1,5 ГБ, так что по возможности собирайте на node:22-slim или node:22-alpine.
Образы копятся при обновлениях: каждый docker compose pull оставляет старую версию. На нашем тестовом сервере одна команда убрала их все:
docker system df
docker system prune -a
Она сообщила, что освобождено 4,1 ГБ. prune -a удаляет все образы, которые не использует ни один контейнер, так что запускайте её, когда ваш стек поднят. Тома она не трогает, если не добавить --volumes.
Журналы: то, что заполняет диск за ночь
Docker хранит всё, что печатает контейнер, и по умолчанию без ограничения размера. Мы запустили контейнер, который в цикле печатал одну короткую строку, — такой вывод дают проверки здоровья или режим отладки. Через 30 секунд его журнал весил 6 МБ. В таком темпе он писал бы около 17 ГБ в сутки — больше, чем весь диск тарифа Micro.
Задайте лимит для всех новых контейнеров в /etc/docker/daemon.json:
{
"log-driver": "local",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
Затем выполните sudo systemctl restart docker и пересоздайте контейнеры (docker compose up -d --force-recreate). Уже существующие контейнеры сохраняют настройки, с которыми их создали. С лимитом журнал того же тестового контейнера через 30 секунд весил 4 МБ и никогда не превысит 30 МБ.
Системный журнал уже ограничен: на нашем сервере с Ubuntu и диском 25 ГБ journald ограничивает себя 2,3 ГБ, десятой частью файловой системы. Занято было 15 МБ.
Windows: обновлениям нужно место
Наш образ Windows Server 2022 был 2022 года, поэтому мы его обновили. Пока ставилось первое накопительное обновление, занятое место выросло с 12,6 до 20,8 ГБ, а после второго дошло до 24,5 ГБ. Windows хранит старую версию каждого системного файла, который заменяет обновление. Очистка вернула занятое к 14,6 ГБ, и свежий сервер из обновлённого образа теперь стартует с 14 ГБ. Держите свободными хотя бы 10 ГБ под следующее обновление. Команды очистки — в инструкции по обновлению Windows.
Что выбрать
| Что вы запускаете | Комфортный объём диска | Тариф |
|---|---|---|
| Бот, VPN, небольшой статический сайт | 15 ГБ | Nano, $3/мес |
| Стек Docker из нескольких образов | 25 ГБ | Micro, $5/мес |
| WordPress с базой и загрузками, несколько стеков | 35 ГБ | Small, $8/мес |
| Крупные базы, много образов, локальные копии | 45 ГБ | Medium, $12/мес |
| Windows Server 2022 | 50–60 ГБ | Windows-Small, $11/мес |
Два правила продлевают жизнь любому из них: ограничьте журналы контейнеров до развёртывания и копируйте резервные копии за пределы сервера, а не храните на его диске. Если сервер уже заполнен, инструкция по освобождению места проведёт по шагам. О памяти при выборе размера — в статье сколько RAM нужно VPS. Все тарифы — на странице VPS, оплата в USDT, USDC или ETH в сетях Base, Ethereum или Polygon.
Комментарии
Пока нет комментариев. Будьте первым.