在多个团队工作的耳中,我遇到了多个基础架构管理器,这些管理器制定了每周服务器重启的策略.作为一名开发人员,我总是反对这项政策 - 似乎这是解决软件错误和硬件不稳定性的问题,而不是纠正它们.
关于政策,人民的意见,积极和消极观点是什么?
如果您偶尔重启服务器,可以确定它们会重新启动.虽然每周听起来像一个严重的矫枉过正,但我已经在Linux机器上看到了这个问题,并且运行时间很长.
有人没有费心设置关键服务以在启动时自动启动.或者服务的顺序是错误的.或者有人升级了库,添加/删除了软件等,并且可执行文件不再有效(它是用旧库启动的,并继续使用它们;现在它获得了动态链接器错误).或者结果是服务A取决于服务B而服务B取决于服务A(oops).
在某些时候,当你最不想要时,你会重新启动.colo会降低你的力量; 服务器的电源会发生故障; 有人会拉错线/点击错误服务器上的重置按钮; 现在,当你最不能承受停机时间时,你的血腥服务器就不会恢复.
就像软件一样,系统配置需要测试.您需要多长时间进行一次测试取决于您的盒子管理方式.
这是一个愚蠢的政策.
原因如下:
如果您需要每周重新启动服务器(并以某种方式增加您的基础架构的稳定性),您将掩盖服务器或其软件的真正问题.内存泄漏?一个坏司机?解决这些问题的方法是修复它们,而不是用懒惰的策略掩盖它们.
服务器通常会重新启动以进行更新,至少在Windows环境中是这样.无论如何都会重新启动关键内核更新.
数据库服务器在RAM中缓存大量信息.当您重新启动服务器时,此缓存变空并且非常冷.假设您有一个典型的使用模式,那么冷,空缓存会导致用户在重启后尝试查询时性能降低.它还可能增加执行某些类型的维护(如备份)所需的时间,因为可能需要更多地访问磁盘.
你的服务器坏了!由于您的服务器在非零时间内处于关闭状态,因此备份和其他内容的维护窗口会缩短.您也可能最终不得不告诉您的用户您将有停机时间,具体取决于您的系统架构.
假设您有某种警报通知系统,则必须将其配置为忽略停机时间窗口.这可以掩盖服务器重新启动时发生的问题,并增加您需要在服务器上执行的配置量.
话虽这么说,重新启动有时作为资源的最后手段是有益的,你不一定完全控制(旧供应商编写的软件,供应商明确规定的"黑匣子"设备等).但这应该根据具体情况处理,而不是采用天真的一揽子政策.