Максимальное время, в течение которого ПК с Linux может быть UP? [закрыто]

12

На самом деле у меня была система Linux (с Ubuntu 12.04.3) в течение нескольких дней без перезагрузки. Я столкнулся с некоторыми ошибками, такими как зависание в спящем режиме и некоторая файловая система, смонтированная в сети, которая не может смонтировать монтирование, даже не в состоянии пропинговать его (проверено на другом компьютере, сетевое монтирование работало нормально).

Хотел проверить, требует ли Linux перезагрузить компьютер через некоторое время, чтобы избежать таких ошибок, которые невозможно повторить.

Какое максимальное время мы можем поддерживать ПК? Есть ли другие проблемы, которые могут возникнуть, если у нас есть система в течение года или более без перезагрузки?

PRASHANT
источник
2
Я не думаю, что есть статический предел, так как компьютеры просто не предназначены для бодрствования и работы в течение такого долгого времени. Там нет номинального лимита; это просто, как долго ваш компьютер может оставаться на ногах. Почему бы вам не захотеть время от времени перезагружаться.
Странник
7
@ Zacharee1 ммм, почему вы хотите перезагрузить компьютер? Если это не энергопотребление, на самом деле не так много причин. На самом деле, лучше, если вы этого не сделаете. Оборудование, как правило, будет длиться, X лет на часть. Давайте для простоты скажем, что X универсально равен 10 (он тоже не будет далеко) - обычно это 10 непрерывных лет использования, которые он может длиться. Это нормальное использование. Если вы перезагружаетесь, это не постоянное использование, но в следующий раз вы загружаете оборудование. Если вы просто оставите это так - большинство компонентов раскручиваются, сокращают потребление и износ в любом случае.
ВЛАЗ
1
Очевидно, что в процессе эксплуатации детали подвергаются большему износу. Однако перезагрузка (в отличие от простого выключения системы) не уменьшает износ компонентов, а увеличивает его. Кроме того, вы в корне неправильно понимаете, как работают кэши, если считаете, что данные, кэшированные в ОЗУ, замедляют работу вашего компьютера.
user6053 30.04.15
1
Если вы используете веб-сервер в Linux (например, LAMP), вам нужно как можно больше избегать перезагрузок, поскольку это приведет к отключению веб-сайтов на время, необходимое для восстановления системы. Я не думаю, что я когда-либо ушел год, но, конечно, несколько месяцев без перезагрузки.
Трокли
2
@ Zacharee1 почти ничего в оперативной памяти не будет тормозить ваш компьютер. Если в приложении есть утечка памяти, она может занять, скажем, 60% оперативной памяти, и система вскоре начнет выполнять обмен, что происходит медленно, однако решение состоит в том, чтобы перезапустить приложение, а не ОС. Остановка машины останавливает износ компонентов, но вы все равно будете заменять их раньше, чем они обычно изнашиваются в большинстве случаев. Более того, как я уже говорил, компоненты оборудования уже сами по себе снижают износ. Просто оставив систему в режиме ожидания.
ВЛАЗ

Ответы:

36

Работая системным администратором, я вижу, что серверы Linux работают более 700-800 дней без перезагрузки, поэтому нет ограничений по времени безотказной работы; полученные вами ошибки не связаны с самим Linux (ядром).

Многие службы могут быть перезапущены, и большинство ошибок может быть решено в производственных системах.

user3417815
источник
7
Можете это подтвердить. Текущее время безотказной работы на одном из моих серверов: ~ $ uptime 00:13:15 до 883 дней, 9:00, 1 пользователь, средняя загрузка: 0,00, 0,01, 0,05 Ubuntu 12.04.4 LTS. Не нужно ничего обновлять, так как на нем нет ничего важного.
Минфос
5
Я успешно поддерживаю встроенный экземпляр Linux более 3 лет.
Rafał Cieślak
16

Там нет технической необходимости перезагрузить компьютер после определенного периода времени. Я работал в течение нескольких месяцев (включая обновления модуля ядра) с некоторыми приостановками (к ОЗУ и диску) между ними.

Есть случаи, когда

  • это абсолютно необходимо для перезагрузки, как и обновления ядра (но они не являются актуальными во многих ситуациях, и в некоторых случаях вы можете заменить работающее ядро ​​новым на работающей системе. См. kexec и Ksplice )
  • может быть легче перезапустить всю систему, а не только определенную (набор) подсистему (ы).

Могут быть некоторые проблемы, которые со временем «обостряются» (например, проблемы с драйверами оборудования, процессы с утечками), но они считаются ошибками и часто могут быть исправлены с помощью обновления программного обеспечения или обойдены путем перезагрузки / перезапуска этой конкретной подсистемы (также смотри выше).

Дэвид Фёрстер
источник
6
Исправление ядра на лету получает больше шумихи, чем заслуживает. Хорошо, если у вас есть время проверить, что обновление будет работать таким образом, но любое изменение кода, которое отличает структуры данных в памяти, не может быть просто исправлено. В общем случае обновление без перезагрузки до новых ядер не планируется. Это позволит исправления без перезагрузки для таких вещей, как ошибки проверки разрешений. Это здорово, и удивительно, что вам не нужно перезагружать сервер, но не ожидайте, что это даст вам обновления без перезагрузки до новых версий.
Питер Кордес
1
Я согласен с Питером. Вот почему я не упомянул живое исправление в этом контексте, чтобы не усложнять ситуацию; увы кто-то отредактировал мой ответ.
Дэвид Фёрстер
7

Хотя я уверен, что есть серверы с более высоким временем безотказной работы, я привожу следующее от одного из моих в качестве примера того, что возможно:

# uptime
04:58:44 up 2186 days, 23:15,  1 user,  load average: 0.02, 0.02, 0.00

Этот сервер был установлен вскоре после запуска DC, и с тех пор его не отключали. До сих пор он продолжал счастливо делать то, для чего он изначально был предназначен, и когда эта цель будет перенесена на другой сервер, я добавлю туда что-то, чтобы просто отслеживать время безотказной работы, и, вероятно, оно будет работать до тех пор, пока я не смогу оправдать его сохранение. больше

Таким образом, я думаю, что «Максимума нет» - это вполне правильный ответ.

Kaithar
источник
7

Я не знаю, влияет ли это на стабильность системы, но максимальное время безотказной работы, показанное в Ubuntu с ядром 3.19-xx, составляет 68,0962597349822годы на 32-битной машине и 292471208677,8627годы на 64-битной машине.

Это происходит потому, что текущее время работы системы, которое возвращается sysinfo()системным вызовом, возвращается как __kernel_long_tтип , который объявлен как longв 32-битном ядре и как long longв 64-битном ядре ;

A longна 32-битной машине имеет максимальное значение 2147483647;

A long longна 64-битной машине имеет максимальное значение 9223372036854775807;

Делать математику, 2147483647s= 68,0962597349822годы и 9223372036854775807s= 292471208677,8627годы.

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

кос
источник
3
Оператор не запрашивает максимальное время безотказной работы системы, а спрашивает, нужно ли ему регулярно перезагружать систему из-за некоторой стабильности / и т.д. ограничение.
Болук Папуккуоглу
@BolucPapuccuoglu Посмотрите, подходит ли, по вашему мнению, этот формат лучше, особенно последняя часть. Я четко указал, в чем может быть проблема. Если вы все еще думаете, что нет, я удалю свой ответ.
Кос
6

Однажды я был в классе с системным администратором, который утверждал, что у него есть сервер Linux, который работает без перезагрузок более десяти лет. Нет внутренней причины, по которой система должна регулярно перезагружаться. Требуется только в ограниченных случаях, таких как обновления ядра.

Я обычно оставляю свой домашний компьютер с Windows работающим. Обычно он работает в течение нескольких недель без перезагрузки.

Phillip
источник
Если ваш компьютер с Windows несколько недель не перезагружается, очевидно, у вас не включены автоматические обновления. Они обычно загружаются еженедельно и почти всегда приводят к перезагрузке.
Трокли
@ tcrosley Кому все равно нужны автоматические обновления? Это одна из первых вещей, которую я отключаю на этих машинах. Я решу, как использовать мой компьютер, а не какой-нибудь автоматический сервис.
Мачта
@tcrosley Вы уверены, что обновления для системы безопасности Windows обычно загружаются каждую неделю? Насколько я понимаю, как из политик выпуска обновлений Microsoft, так и из личного опыта использования Windows, обновления обычно выпускаются примерно раз в месяц. Мачта: хотя вы, безусловно, можете отключить автоматические обновления, я не знаю, почему это приведет к увеличению времени безотказной работы. Предположительно - надеюсь! - вы обновляете вручную, по крайней мере, для исправлений безопасности. С другой стороны, отключение автоматических обновлений может упростить контроль при возникновении простоев.
Элия ​​Каган
@EliahKagan У меня есть машина, настроенная на загрузку не только исправлений безопасности, но также обновлений приложений, драйверов и т. Д. Я могу ошибаться из-за того, что это происходит раз в неделю, но, безусловно, чаще, чем раз в месяц. Он проверяет наличие обновлений каждое утро в 3:00. Я приду утром и обнаружу, что моя система перезагрузилась, и после входа в систему появляется сообщение «Ваша система была перезагружена для установки обновлений».
tcrosley
4

Linux (ядро) очень хорошо освобождает ресурсы при выходе из программы. GNU / Linux, вся ОС, как правило, работает без ограничений. Перезапуск программ пользовательского пространства после их обновления - это, как правило, хорошая идея, и зачастую самый простой способ получить все с использованием обновленных glibcверсий - это перезагрузить систему.

В системах с ошибками драйверов (обычно с ошибками графических драйверов, все остальное, как правило, безупречно), иногда вы получаете странное поведение, которое становится более странным, если вы не перезагружаетесь в ближайшее время. Если в dmesgвыводе вы видите OOPS ядра , вам следует перезагрузить компьютер, как только это будет удобно, и сообщить об этом (или поискать других людей с похожими проблемами на аналогичном оборудовании, если это известная проблема). Дистрибутивы не поставляют самые последние версии разработчика графического стека, поэтому иногда ошибка уже исправлена, и ваша видеокарта слишком нова, чтобы драйверы дистрибутивной версии, которую вы используете, были стабильными. В этом случае ищите PPA с обновленными сборками mesa / drm / xorg. (Я не уверен, что лучшим выбором для запуска Ubuntu с новейшим графическим стеком является ATM).

В любом случае, за исключением драйверов или других ошибок ядра, Linux может работать бесконечно без перезагрузки, чтобы очистить фрагментацию памяти или что-то в этом роде.

У меня есть маршрутизатор Linux / межсетевой экран / почтовый сервер / оболочка (P3 450 МГц, OCed до 500 МГц), который обычно видит время простоя сотен дней. Я перезагружаюсь только для того, чтобы переставить шнуры питания или заменить неисправный источник питания. Он работает стабильно с теми же CPU / RAM / жесткими дисками в течение 15 лет. Мне никогда не приходилось перезагружаться "потому что он становился нестабильным". Это всегда происходило по определенной причине, например, из-за сбоя блока питания, обновления ядра или отключения питания, и моя батарея ИБП была почти разряжена (активировалось автоматическое отключение с помощью apcupsd).

Если ваша система работает странно, проверьте dmesgналичие проблем. Если это просто рабочий стол, то, если вы только что установили некоторые обновления пакетов, не относящихся к ядру, выйдите из системы / войдите в систему (или перезагрузите компьютер, но это не обязательно). Я обнаружил, что Kubuntu 15.04 легко столкнется с проблемами после обновления пакетов, я думаю, из-за двоичной несовместимости между обновленными / не обновленными версиями одной и той же библиотеки, работающей в одном и том же двоичном файле. (См. Обсуждение этой ошибки ).

Мой способ проверить наличие проблем с оборудованием - это загрузить memtest86 +. ( aptitude install memtest86+) Позвольте этому пройти полный проход, или бежать быстро. Это не гарантирует стабильную систему, так как в наши дни с ЦП могут произойти провалы напряжения на скачках нагрузки, и memtest не исключит этого. Он также не нагреет ваш процессор, как Prime95.

Питер Кордес
источник
3

Моя машина перезапустилась только сегодня 15.04 после 11 дней без каких-либо странных ошибок, которые я могу вспомнить. Если вы выполняете тяжелую работу и разработку в системе, иногда это может быть единственным вариантом перезагрузки, но это только когда-либо по необходимости.

Патрик
источник
Именно ты прав! Я занимаюсь разработкой 16.04 в течение нескольких месяцев. Из-за зависания я обычно перезагружаю компьютер каждый день. Но я уверен, что причина в том, что я установил и использую, драйверы и т. Д.
efkan
1

Технически ограничений нет. Вы просто должны установить его, чтобы не спать или выключить.

TheSuperMakuhita
источник
3
Не могли бы вы уточнить и уточнить свой ответ больше? Специально эта линия you just have to set it to not sleep or shut down.
Heemayl
«Технически нет предела» было бы достаточно в качестве краткого ответа, краткого и правильного.
Лео Лам
0

Лично я бы не хотел запускать свой ноутбук или ПК в течение нескольких дней без перезагрузки или выключения.

Просто из-за основных компонентов, которые выделяют тепло, можно ускорить износ MB.

(Это если у вас нет надлежащего охлаждения и вентиляции)

Kingtoor
источник
4
Если это потребительский мусор, такой как Acer или HP, но ноутбуки бизнес-класса или ноутбуки Dell Latitude обычно производятся лучше; Лично у меня есть Latitude, работающий 24x7 уже больше года, он рядом со мной и все еще работает отлично.
@kingtoor Почему было бы лучше запускать неадекватно охлажденную машину 24x7 с случайными перезагрузками, чем 24/7 без перезагрузок? (Или это не то, что ты хочешь сказать?)
Элия ​​Каган,
1
Выключение / спящий режим, когда он не используется на ноутбуке, который нагревается при работе 24/7, хорошо, конечно. Это не связано с перезагрузкой (без отработанного времени) и продолжительным временем безотказной работы.
Питер Кордес
Мой ответ в моем комментарии.
Kingtoor
Также я не вижу никакой причины для обычного пользователя запускать свой компьютер 24/7, если у него нет сервера. Это мое мнение.
Kingtoor
0

Не относится к Ubuntu, но у меня есть винтажный ноутбук 1997 года (300 МГц, 288 МБ ОЗУ) с дистрибутивом на основе Debian, время работы которого превышало 60 дней, при этом работала одна программа (плюс системные компоненты и conky) и не запускать и не останавливать другое программное обеспечение, кроме терминала для загрузки обновлений еженедельно. В конце концов, он завис при загрузке обновлений, примерно через 63 дня. В отличие от этого, моя настольная система Kubuntu 14.04 зависнет при блокировке экрана примерно через две недели. Я согласен с другими ответами; больше о том, какое программное обеспечение вы запускаете и как часто вы запускаете и останавливаете другие программы, чем о Linux как таковом.

Zeiss Ikon
источник
Если произошел сбой (я имею в виду резкий сбой или зависание, а не просто сбой X, который можно исправить без перезагрузки), это, вероятно, означает, что существует аппаратная проблема (перегрев, плохая память и т. Д.). Как системный администратор я иногда работаю в течение нескольких месяцев без перезагрузки, хотя я предпочитаю избегать этого, поскольку вам необходимо перезагрузить систему, чтобы применить обновления ядра.
Когда блокировка экрана становится черной, нет эффективного способа определить, является ли она жесткой блокировкой системы или сбоя X-сервера, и нет способа получить доступ к командной строке (без возможности ввода пароля) для перезапуска X или чего-либо еще это может быть. Я склонен думать, что если это займет две недели, это не перегрев или плохая RAM.
Zeiss Ikon
Ctrl + Alt + F1 не работает? И плохой графический драйвер может быть виновником - они, возможно, не были протестированы с учетом высокой продолжительности работы, но Linux определенно может работать годами без проблем.
Мне придется попробовать CTL-ALT-F1, если я смогу вспомнить его в следующий раз, когда я получу зависание блокировки экрана (я использовал hard reset). Я полагаю, что затем использовать startxдля перезапуска X-сервера? Или мне нужно использовать специальную команду для перезапуска службы? Мне хорошо известна старая поговорка Linux, которая гласит: «Перезапуски предназначены для обновления ядра и установки оборудования».
Zeiss Ikon
Войдите в систему как root или как обычный пользователь и используйте sudo, и следуйте этим инструкциям