Аптайм
Аптайм (англ. Uptime) — это измерение надёжности работы системы, выражаемое как период времени, в течение которого машина, обычно компьютер, непрерывно функционирует и доступна. Аптайм противопоставляется даунтайму — времени недоступности.
Описание
Аптайм часто используется как критерий надёжности или стабильности операционной системы, поскольку этот промежуток отражает время, которое компьютер может работать без вмешательства или перезапуска в связи с администрированием или обслуживанием.
С другой стороны, слишком длинный аптайм иногда может свидетельствовать о пренебрежении обслуживанием, поскольку критические обновления некоторых платформ требуют перезапуска[1].
Некоторые версии Microsoft Windows отображают время аптайма на вкладке «Производительность» диспетчера задач. Формат: Д:ЧЧ:ММ:СС (дни, часы, минуты, секунды).
Команда systeminfo выводит поле «Время работы системы»[2] или «Время последней загрузки».
C:\>systeminfo | findstr "Time:"
System Up Time: 0 days, 8 hours, 7 minutes, 19 seconds
Точный текст и формат зависят от языка и региональных настроек. Отметим, что значение, выдаваемое systeminfo, не совсем корректно: оно не учитывает время в режиме ожидания или гибернации, поэтому время запуска будет сдвигаться вперёд при каждом переходе в эти режимы.
Команда 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, запросив свойство 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].
Ранее 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 не учитывает периоды сна и гибернации, из-за чего значение аптайма также может быть некорректным.
Команда uptime также реализована в FreeDOS, разработка — М. Айчисон[8].
На 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
Показывает время с последней перезагрузки:
$ cat /proc/uptime
350735.47 234388.90
Первая цифра — суммарное время работы в секундах, вторая — накопленное время простоя (idle time) тоже в секундах[9]. На многопроцессорных системах второе число обычно равно сумме простаивания по всем ядрам[10].
В 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:[13]
$ sysctl kern.boottime
kern.boottime: { sec = 1271934886, usec = 667779 } Thu Apr 22 12:14:46 2010
В системах 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 секунды.