Linux PC 可以启动的最长时间?

pRA*_*ANT 13 reboot 12.04 uptime

实际上,我有一个 linux 系统(运行 Ubuntu 12.04.3)好几天没有重启。我遇到了一些错误,例如睡眠挂起和某些网络挂载的文件系统无法挂载甚至无法对其进行挂载(通过其他 PC 验证,网络挂载工作正常)。

想要检查 Linux 是否还需要在一段时间后重新启动机器以避免这些类型的不可重复的奇怪错误。

我们可以维护 PC 的最长时间是多少?如果我们的系统运行一年或更长时间而无需重新启动,是否还会出现其他一些问题?

小智 37

作为系统管理员,我看到 Linux 服务器在不重启的情况下可以运行超过 700-800 天,因此没有正常运行时间限制;您得到的错误与 Linux(内核)本身无关。

许多服务可以重新启动,大多数错误可以在生产系统上解决。

  • 可以确认这一点。我的其中一台服务器的当前正常运行时间:~$ uptime 00:13:15 up 883 days, 9:00, 1 user, load average: 0.00, 0.01, 0.05 Ubuntu 12.04.4 LTS. 不需要更新任何东西,因为它没有运行任何重要的东西。 (7认同)
  • 我已经成功地将嵌入式 Linux 实例保持了 3 年以上。 (5认同)

Dav*_*ter 16

在特定时间段后重新启动计算机没有技术需要。我已经运行了几个月(包括内核模块更新),中间有一些暂停(到 RAM 和磁盘)。

有的场合

  • 绝对有必要重新启动,例如内核更新(但在许多情况下这些并不紧急,在某些情况下,您可以用实时系统上的新内核替换正在运行的内核。请参阅kexecKsplice
  • 重新启动整个系统可能更容易,而不仅仅是一个特定的(一组)子系统。

可能会有一些问题随着时间的推移“变得更糟”(例如硬件驱动程序问题、进程泄漏),但这些被认为是错误,通常可以通过软件升级来修复或通过重新加载/重新启动该特定子系统来解决(也看上面)。

  • 即时内核补丁得到了比应有的更多的炒作。如果您有时间验证更新是否会以这种方式工作,那就太好了,但是任何使内存中数据结构不同的代码更改都不能只是实时修补。一般来说,它不会启用无需重启的升级到新内核。它将允许对诸如权限检查错误之类的事情进行无重启修复。不必重新启动服务器,这很棒,也很棒,但不要指望这可以让您无需重新启动即可升级到新版本。 (6认同)

kos*_*kos 9

我不知道这是否会影响系统的稳定性,但是在内核为 3.19-xx 的 Ubuntu 中显示的最长正常运行时间在68,096259734982232 位机器292471208677,8627上是几年,在 64 位机器上是几年。

这是因为系统的当前运行时间,这是由返回sysinfo()系统调用,则返回作为__kernel_long_t类型,这是一个声明作为long在32位内核作为long long在64位内核;

Along在 32 位机器上的最大值为2147483647;

Along long在 64 位机器上的最大值为9223372036854775807;

做数学,2147483647s=68,0962597349822年和9223372036854775807s=292471208677,8627年。

一旦该值增加超过其类型的能力,就会发生算术溢出并将其设置为其类型允许的最小值(在这两种情况下都是负数):这对于依赖它的程序来说可能是一个问题。

  • OP 并没有要求系统可以准确记录的最大正常运行时间,而是询问是否由于某些稳定性/等原因需要定期重新启动系统。局限性。 (3认同)

小智 7

虽然我确信有些服务器的正常运行时间更长,但我将我的服务器中的以下内容作为可能的示例:

# uptime
04:58:44 up 2186 days, 23:15,  1 user,  load average: 0.02, 0.02, 0.00
Run Code Online (Sandbox Code Playgroud)

该服务器是在它所在的 DC 上线后不久安装的,此后一直没有关闭。到目前为止,它一直很高兴地做它最初打算做的事情,当这个目的被转移到不同的服务器时,我会在那里放一些东西来监控正常运行时间,它可能会一直持续到我无法证明让它保持活动状态不再。

因此,我认为“没有最大值”绝对是正确的答案。


小智 6

我曾经和一个系统管理员一起上课,他声称他有一个 linux 服务器,该服务器已经运行了十多年没有重新启动。没有内在的原因需要定期重新启动系统。只有在有限的情况下才需要它,例如内核更新。

FWIW,我通常让我的 Windows 家用计算机运行。它通常可以正常运行数周而无需重新启动。