实际上,我有几天没有重启的Linux系统(运行Ubuntu 12.04.3)。我遇到了一些错误,例如睡眠挂起,某些网络安装的文件系统甚至无法ping通(通过其他PC验证,网络安装工作正常)。
想要检查Linux是否还需要在一定时间范围后重新引导计算机,以避免这些不可重复的怪异错误。
我们最多可以维持PC开机时间?如果我们的系统使用了一年或更长时间却没有重新启动,是否还会发生其他一些问题?
实际上,我有几天没有重启的Linux系统(运行Ubuntu 12.04.3)。我遇到了一些错误,例如睡眠挂起,某些网络安装的文件系统甚至无法ping通(通过其他PC验证,网络安装工作正常)。
想要检查Linux是否还需要在一定时间范围后重新引导计算机,以避免这些不可重复的怪异错误。
我们最多可以维持PC开机时间?如果我们的系统使用了一年或更长时间却没有重新启动,是否还会发生其他一些问题?
Answers:
作为系统管理员,我发现Linux服务器可以运行700-800天以上,而无需重启,因此没有正常运行时间的限制。您得到的错误与Linux(内核)本身无关。
可以重新启动许多服务,并且可以在生产系统上解决大多数错误。
在一定时间后,无需技术上的重新启动计算机。我的矿井已经运行了几个月(包括内核模块更新),中间有一些挂起(到RAM和磁盘)。
有时候
随着时间的流逝,可能会出现一些“变得更糟”的问题(例如,硬件驱动程序问题,进程泄漏),但这些问题被认为是错误,通常可以通过软件升级来解决,也可以通过重新加载/重新启动该特定子系统来解决(也往上看)。
我不知道这是否会影响系统的稳定性,但是在Ubuntu 3.19-xx内核中显示的最大正常运行时间是68,0962597349822
32位计算机292471208677,8627
上的年限和64位计算机上的年限。
这是因为系统的当前运行时间,这是由返回sysinfo()
系统调用,则返回作为__kernel_long_t
类型,这是一个声明作为long
在32位内核和作为long long
在64位内核 ;
long
32位计算机上的A 的最大值为2147483647
;
甲long long
在64位机器上具有的最大值9223372036854775807
;
做数学,2147483647s
= 68,0962597349822
年和9223372036854775807s
=292471208677,8627
年。
一旦该值增加超过其类型的能力,就会发生算术溢出,并将其设置为该类型所允许的最小值(在两种情况下均为负数):这可能是依赖它的程序遇到的问题。
我曾经和一个系统管理员一起上过课,他声称他有一台Linux服务器运行了十多年,没有任何重启。没有固有的原因需要定期重新启动系统。仅在有限的情况下(例如内核更新)才需要它。
FWIW,我通常使Windows家用计算机保持运行状态。它通常可以正常运行数周而无需重新启动。
当程序退出时,Linux(内核)非常擅长释放资源。GNU / Linux(整个操作系统)通常可以无限期运行。在更新用户空间程序之后,重新启动它们通常是一个好主意,并且通常是使用更新后的所有内容的最简单方法glibc
程序是重新引导系统。
在具有驱动程序错误(通常是图形驱动程序错误,其他所有东西通常都是坚如磐石)的系统上,有时会出现奇怪的行为,如果您不立即重启,则会变得很奇怪。如果您在dmesg
输出中看到内核OOPS ,则应在方便时立即重新引导并报告它(或在其他类似Google硬件上搜索其他遇到类似问题的人,以防万一,这是已知问题)。发行版未提供图形堆栈的最新开发版本,因此有时该错误已在上游修复,并且您的显卡对于正在运行的发行版上的驱动程序来说太新了。在这种情况下,请查找具有更新的mesa / drm / xorg版本的PPA。(我不确定运行带有尖端图形堆栈的Ubuntu的最佳选择是ATM)。
无论如何,除非存在驱动程序或其他内核错误,否则Linux可以无限期运行,而无需重新启动以清除内存碎片或类似问题。
我有一个Linux路由器/防火墙/邮件服务器/外壳盒(P3 450MHz,超频到500MHz),通常能看到数百天的正常运行时间。我重启只是为了重新排列电源线,或更换有故障的电源。使用相同的CPU / RAM /硬盘驱动器可能已经稳定了15年。我从来不需要重启,因为它变得不稳定了。总是有特定原因造成的,例如电源故障,内核升级或断电,而我的UPS电池几乎没电了(通过触发自动关机apcupsd
)。
如果您的系统运行异常,请检查dmesg
是否存在问题。如果这只是您的桌面,那么如果您仅安装了一些非内核软件包更新,请注销/登录(或重新启动,但不必这样做)。我发现Kubuntu 15.04在软件包更新后将很容易遇到问题,我认为由于在同一二进制文件中运行的同一库的升级/未升级版本之间的二进制不兼容。(请参见有关此错误的讨论)。
我检查硬件问题的方法是引导memtest86 +。(aptitude install memtest86+
)让其运行一次完整通过,或运行一整夜。这并不能保证系统的稳定,因为这些天CPU可能会在尖峰负载上出现电源电压下降的情况,而memtest不会排除这种情况。也不会像Prime95那样使您的CPU发热。
就个人而言,我不想连续数天不重启或关闭笔记本电脑或PC。
仅仅由于产生热量的主要成分会加速MB的磨损。
(也就是说,如果您没有适当的冷却和通风)
并非特定于Ubuntu,但我有一台1997年的老式笔记本电脑(300 MHz,288 MB RAM),它运行基于Debian的发行版,正常运行时间长达60天以上,同时运行一个程序(加上系统程序和conky),并且除了终端每周加载更新之外,不启动和停止其他软件。最终,它在加载更新时(大约63天)崩溃了。相比之下,我的Kubuntu 14.04桌面系统将在大约两周后冻结在屏幕锁定中。我同意其他答案;与其说是Linux,不如说是您所运行的软件以及启动和停止其他程序的频率。
startx
用来重启X服务器吗?还是我需要使用特殊命令来重新启动服务?我很清楚旧的Linux说法,“重新启动是为了内核升级和硬件安装。”