Аптайм

Аптайм (англ. Uptime) — это измерение надёжности работы системы, выражаемое как период времени, в течение которого машина, обычно компьютер, непрерывно функционирует и доступна. Аптайм противопоставляется даунтайму — времени недоступности.

Описание

undefined

Аптайм часто используется как критерий надёжности или стабильности операционной системы, поскольку этот промежуток отражает время, которое компьютер может работать без вмешательства или перезапуска в связи с администрированием или обслуживанием.
С другой стороны, слишком длинный аптайм иногда может свидетельствовать о пренебрежении обслуживанием, поскольку критические обновления некоторых платформ требуют перезапуска[1].

Диспетчер задач Windows

Снимок вкладки "Производительность" диспетчера задач Windows 7.

Некоторые версии Microsoft Windows отображают время аптайма на вкладке «Производительность» диспетчера задач. Формат: Д:ЧЧ:ММ:СС (дни, часы, минуты, секунды).

systeminfo

Команда systeminfo выводит поле «Время работы системы»[2] или «Время последней загрузки».

C:\>systeminfo | findstr "Time:"
System Up Time:            0 days, 8 hours, 7 minutes, 19 seconds

Точный текст и формат зависят от языка и региональных настроек. Отметим, что значение, выдаваемое systeminfo, не совсем корректно: оно не учитывает время в режиме ожидания или гибернации, поэтому время запуска будет сдвигаться вперёд при каждом переходе в эти режимы.

Команда NET

Команда NET с подкомандой STATISTICS отображает дату и время последнего запуска компьютера как для NET STATISTICS WORKSTATION, так и для NET STATISTICS SERVER. Краткая версия: NET STATS SRV[3]. Формат даты и текста зависит от языка и локали.

C:\>NET STATISTICS WORKSTATION | findstr "since"
Statistics since 8/31/2009 8:52:29 PM

WMI (Windows Management Instrumentation)

Узнать аптайм можно с помощью WMI, запросив свойство LastBootUpTime класса Win32_OperatingSystem[4]. На командной строке используется команда wmic:

C:\>wmic os get lastbootuptime
LastBootUpTime
20110508161751.822066+060

Отметка времени записывается в формате yyyymmddhhmmss.nnn. В приведённом примере последний запуск — 8 мая 2011 года, 16:17:51,822. Текст «LastBootUpTime» и сам формат временной метки едины для всех языков и локалей. Запрос к WMI можно выполнять и через другие программные интерфейсы, включая VBScript или PowerShell[5][6].

Uptime.exe

Ранее Microsoft предлагала отдельную утилиту Uptime.exe, отображавшую аптайм в днях, часах, минутах и секундах[7].

C:\>Uptime
SYSTEMNAME has been up for: 2 day(s), 4 hour(s), 24 minute(s), 47 second(s)

Как и команда systeminfo, Uptime.exe не учитывает периоды сна и гибернации, из-за чего значение аптайма также может быть некорректным.

FreeDOS

Команда uptime также реализована в FreeDOS, разработка — М. Айчисон[8].

Утилита uptime

На Linux доступна команда BSD-совместимая uptime, которая, помимо аптайма, выводит среднее значение загрузки системы за последние 1, 5 и 15 минут:

$ uptime
  18:17:07 up 68 days,  3:57,  6 users,  load average: 0.16, 0.07, 0.06

/proc/uptime

Показывает время с последней перезагрузки:

$ cat /proc/uptime
  350735.47 234388.90

Первая цифра — суммарное время работы в секундах, вторая — накопленное время простоя (idle time) тоже в секундах[9]. На многопроцессорных системах второе число обычно равно сумме простаивания по всем ядрам[10].

Команда uptime

В BSD-совместимых системах, таких как FreeBSD, Mac OS X, и SySVr4, также доступна утилита uptime.

$ uptime
3:01AM  up 69 days,  7:53, 0 users, load averages: 0.08, 0.07, 0.05

Реализация uptime в BSD — это жёсткая ссылка на команду w[11]. Команда w уходит корнями к программам SYSTAT для RSTS/E, TOPS-10 и TOPS-20[12].

Команда sysctl

Также возможно получить время последнего запуска системы через sysctl:[13]

$ sysctl kern.boottime
kern.boottime: { sec = 1271934886, usec = 667779 } Thu Apr 22 12:14:46 2010

OpenVMS

В системах OpenVMS аптайм отображается командой show system в DCL; первая строка результата содержит аптайм в днях и часах:минутах:секундах. Команда /noprocess исключает детализацию по процессам[14].

$ show system/noprocess
OpenVMS V7.3-2 on node JACK 29-JAN-2008 16:32:04.67  Uptime  894 22:28:52

В данном примере 29 января 2008 года в 16:32:04,67 на узле JACK аптайм составляет 894 дня 22 часа 28 минут 52 секунды.

Примечания