CPU, память и диск
Все ваши терминалы делят CPU, память и диск вашего Compute, и ничья чужая сборка их не съедает. Верхняя панель на каждой странице показывает, сколько каждого ресурса занято, а по нажатию открывает карточку: какой терминал расходует больше всех и что делать, когда ресурс закончился.
Следите за счётчиком ресурсов
В верхней панели три маленьких индикатора: CPU, память и диск. Нажмите на них, чтобы открыть карточку:
- каждый ресурс с текущей загрузкой и динамикой за последний час, с замером каждую минуту
- Больше всех потребляют: терминалы, которые прямо сейчас берут больше всего CPU и памяти
- предупреждение, когда терминалы упираются в лимит CPU тарифа и ждут своей очереди, когда память почти заполнена или диск полон, а рядом кнопка Сменить размер
На странице Compute те же цифры подробнее, в блоке Ресурсы: CPU с динамикой, память, диск, процессы и сеть, с обновлением каждые 5 секунд.
Стирайте кеши
Менеджеры пакетов и инструменты сборки держат кеши в каждой домашней папке, и кеши со временем разбухают. Чтобы освободить место:
- Нажмите на счётчик ресурсов и выберите Стереть кеши под диском.
- Окно Стереть кеши пакетов и сборки? перечисляет, что уйдёт: кеши npm, pnpm, Yarn, Bun, pip, uv, Go, Cargo, Gradle и Maven, а также браузеры, которые скачал Playwright ваших проектов. Проекты, разговоры агентов и настройки остаются.
- Нажмите Стереть кеши.
Очистка идёт на нашей стороне, пока не будут удалены все кеши, сразу во всех домашних папках, с запущенным терминалом или без. Карточка ведёт счёт: «Освобождено уже 2,1 ГБ»; закройте её или страницу, и очистка продолжится. В конце будет видно, сколько места освободилось после удаления каждого кеша. Если очистка остановится раньше, она скажет, сколько успела освободить, а Стереть ещё раз освободит остальное.
Инструменты скачают нужное заново при следующем запуске. Сборка или установка, которая шла в этот момент, может упасть: тогда запустите её снова. Журнал записывает каждую очистку и освобождённое место.
Как считается диск
Диск вмещает ваши файлы в полном размере, как их показывает ls -l: 50 GB на Start означают 50 GB проектов и домашних папок, байт в байт.
В терминале du -sh и df без флагов считают блоки после сжатия и показывают меньше, чем занимают ваши файлы. Чтобы посчитать папку так же, как её считает тариф, добавьте --apparent-size:
du -sh --apparent-size ~/* /work/* | sort -h
~ обозначает домашнюю папку терминала, в котором вы запускаете команду: у каждого проекта своя, а у терминалов оболочки одна общая.
Когда диск заполнен
Когда файлы доходят до размера диска, новая запись останавливается. Страница Compute и счётчик показывают, что диск заполнен, а письмо сообщает об этом, не чаще раза в день. Дальше:
- Нажмите Стереть кеши, как описано выше, или удалите ненужное. Запись возобновится, когда файлов станет на 512 MiB меньше вашего размера.
- Или нажмите Сменить размер и возьмите диск побольше. Это срабатывает сразу, без перезапуска.
Когда кончается память
Когда терминалам вместе не хватает памяти, система останавливает самую большую программу в одном из терминалов. Если это был агент, терминал так и скажет: «Агент остановлен: этому Compute не хватило памяти». Строка терминала в списке показывает Остановлен: нет памяти.
- Нажмите Перезапустить терминал в сообщении. Агент запустится снова на своём разговоре; домашняя папка и файлы проекта остаются.
- Или нажмите Сменить размер, чтобы получить больше памяти.
Терминал, оставшийся без агента, сам закроется через 3 часа. Уведомление об остановке придёт, какие бы события вы ни выбрали, как объясняет раздел Уведомления.
Когда в терминале кончились процессы
В каждом терминале может работать до 32 768 процессов. Когда все они заняты, в нём ничего нового не запускается: ни команда, ни соединение кабинета. Сообщение говорит, сколько процессов занято, и, если удаётся, называет программу, которая оставила после себя неубранные зомби-процессы.
- Нажмите Перезапустить терминал, чтобы запустить его заново в свежем контейнере с сохранением разговора, или Завершить терминал.
- Каждый контейнер в ваших терминалах уже работает под init из Docker, который убирает зомби-процессы. Если сервис его отключает, задайте ему
init: trueв compose-файле, как подсказывает сообщение.
Сборки и агенты делят CPU
У Docker и всего, что в нём запущено, ниже приоритет доступа к CPU и диску, чем у шелла, tmux и агента. Долгая сборка образа или прогон тестов в контейнерах берёт свободное и не тормозит ни агента, ни ваш ввод.