Устройство Linux / Объяснение

/proc/uptime: время работы и суммарный простой CPU

Разберите два числа uptime, объясните большой суммарный idle на многоядерной системе и не перепутайте время ядра со временем работы службы.

Средний8 минОбщие принципы LinuxLinux · понятия и интерфейсыBash · pipeline semantics

Почему второе число больше первого

Вы открыли uptime и получили странный на первый взгляд результат: время простоя больше времени работы. Не спешите объявлять счётчик повреждённым. Нужно сначала проверить, какое время суммируется и к какому объекту оно относится.

В учебном разборе сравниваем два числа из одного чтения, а затем повторяем его через короткую паузу. Задача не в вычислении точной загрузки CPU, а в устранении неверной интерпретации единиц и масштаба.

Две величины с разным способом накопления

Первое число в /proc/uptime показывает время работы системы в секундах, включая приостановку suspend. Второе отражает время idle. На многопроцессорной системе суммарный простой CPU может превышать прошедшее календарное время.

Эти значения не являются временем работы конкретного сервиса. Перезапуск программы не перезапускает ядро. У контейнеров и пространств времени есть собственные особенности видимости; перед сравнением двух машин отметьте, в каком окружении выполнено чтение.

Прочитайте пару значений дважды

Выполните команды в Linux. Подписи показывают порядок снимков; sleep не является точным измерительным прибором, а только разносит чтения во времени.

Локальная Linux-система
printf "Первый снимок: "
cat /proc/uptime
sleep 1
printf "Второй снимок: "
cat /proc/uptime

Проверьте размерность вывода

Возьмём придуманный пример: uptime равен 100 секундам, idle — 250 секундам на системе с четырьмя логическими CPU. Суммирование простоя нескольких CPU делает такой порядок величин возможным. Деление второго числа на первое без учёта числа CPU не даёт обычный процент загрузки одного процессора.

Если вам нужно время работы приложения, ищите момент запуска выбранного процесса или данные менеджера службы. Запишите это отдельной строкой отчёта. Общесистемный uptime полезен как контекст: он помогает отличить недавнюю загрузку системы от отдельного перезапуска программы.

Проверьте своё рассуждение

Задача: приложение было перезапущено минуту назад, а /proc/uptime показывает несколько суток. Есть ли противоречие?

Нет. Наблюдения относятся к разным жизненным циклам. Для проверки перезапуска приложения выберите его текущий экземпляр; значение uptime описывает видимое время ядра, а не длительность жизни этой программы.

Для загрузки CPU нужен отдельный расчёт

Не стройте точный мониторинг нагрузки на одном делении idle на uptime. Нужны сопоставимые интервалы и правила учёта CPU, suspend и виртуализации. Для разбора состояний процессора переходите к /proc/stat и заранее определяйте, что включено в ваш показатель.

Технические источники

Использованы для проверки поведения. Объяснения и учебные сценарии созданы для проекта.

  • Linux man-pages — proc_uptime(5)
  • Linux man-pages — proc_stat(5)
  • Linux man-pages — time_namespaces(7)

Проверка текста: 2026-09-11. Нативное исполнение на всей матрице дистрибутивов ещё не подтверждено.

Нужны собственная Linux-система, смонтированный procfs и Bash. Доступность полей зависит от ядра, его конфигурации, прав и пространств имён. Примеры только читают диагностические интерфейсы; браузерный симулятор их не реализует.

От материала к практике

Выберите следующую тему в каталоге Linux или проверьте знакомые команды в учебном терминале.

Поиск по Linux

Поиск локальный. ↑ ↓ — перейти к результату, Enter — открыть.

Навигация