Аптайм

Апта́йм (англ. 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 секунды.

Примечания

  1. How to install multiple Windows updates or hotfixes with only one reboot. Microsoft Knowledge Base (17 апреля 2018). Дата обращения: 1 февраля 2024.
  2. Shultz, Greg Tracking down uptime in Windows XP. TechRepublic. CBS Interactive (10 августа 2005). Дата обращения: 22 апреля 2014. Архивировано 8 июля 2012 года.
  3. Sinay, Yuval How to find Windows uptime? Microsoft Knowledge Base. Microsoft (25 октября 2006). Дата обращения: 22 апреля 2014.
  4. Win32_OperatingSystem class. Microsoft (30 мая 2018). Дата обращения: 11 июля 2019.
  5. How Can I Tell if a Server has Rebooted? Hey, Scripting Guy! Blog. Microsoft (7 сентября 2004). Дата обращения: 22 апреля 2014. Архивировано 1 мая 2010 года.
  6. How Can I Determine the Uptime for a Server? Hey, Scripting Guy! Blog. Microsoft (2 августа 2005). Дата обращения: 22 апреля 2014. Архивировано 15 мая 2010 года.
  7. Uptime.exe Tool Allows You to Estimate Server Availability with Windows NT 4.0 SP4 or Higher. Microsoft Knowledge Base. Microsoft (20 августа 2012). Дата обращения: 22 апреля 2014. Архивировано 24 апреля 2014 года.
  8. Aitchison, M. Package uptime in group Unix-like. ibiblio.org (15 апреля 1998). Дата обращения: 11 июля 2019. Архивировано 17 июля 2019 года.
  9. Doleželová, Marie; Jahoda, Mirek /proc/uptime. Deployment Guide - Red Hat Enterprise Linux 6. Red Hat, Inc.. Дата обращения: 12 декабря 2018.
  10. Schwidefsky, Martin Re: [PATCH] Re: /proc/uptime idle counter remains at 0. Список рассылки (11 мая 2009).
  11. File usr.bin/w/Makefile artifact. University of California, Berkeley Computer Systems Research Group (21 октября 1988). Дата обращения: 22 ноября 2022.
  12. File usr.bin/w/w.c artifac. University of California, Berkeley Computer Systems Research Group (21 октября 1988). Дата обращения: 22 ноября 2022.
  13. Mac OS X Manual Page For sysctl(8). Mac Dev Center. Apple (15 октября 2009). Дата обращения: 22 апреля 2014. Архивировано 14 января 2010 года.
  14. Undocumented OpenVMS Features. PARSEC Group (29 октября 2008). Дата обращения: 22 апреля 2014. Архивировано 11 мая 2011 года.