我们的数据库服务器有时会变得无响应。它运行完全更新的 Ubuntu 14.04 LTS。它上运行的著名非原始软件有 Nimbus、TSM 和 Oracle。
每天大约一次,它会变得无响应,到目前为止是在夜间,当进行一系列维护任务(例如备份)时。
在它失去响应后,似乎永远保持这种状态。我无法通过 SSH 进入它,它也不接受任何数据库连接。
奇怪的是,服务器响应 ping。如果我使用 telnet 打开端口 22(SSH)或端口 1521(Oracle),我会收到服务器的回复。端口 22 甚至会显示“这是 OpenSSH”之类的信息。但实际上使用 ssh 客户端或打开数据库连接时就会挂起。
我一直在查看日志文件,但什么也没发现(dmesg、syslog、auth.log 等)。在无响应期间,日志文件中的活动似乎也少得可怜。重新启动服务器后,它又可以正常工作了。
我的第一反应是运行 apt-get update 和 apt-get dist-upgrade,并监控是否达到最大文件描述符限制。但是,Oracle 的硬限制与文件系统最大值相差甚远,因此如果是这种情况,似乎很奇怪。还有人知道是什么原因造成的吗?
编辑:忘记提到 CPU、内存和磁盘空间远未达到 100%。(它们已经被监控,发生这种情况后,我也开始监控打开的文件描述符,但这种情况还没有再次发生)。我还可以补充一点,我不指望有人指出确切的问题,但如果有任何关于其他监控事项的想法,我将不胜感激。
答案1
所有变量看起来都很正常。但是,我编写了一个 cronjob,每分钟输出一次日期/时间和文件描述符,发现文件描述符在正常值范围内。然而,凌晨 3 点,服务器时钟突然倒退了 2 个小时(我花了一段时间才从日志文件中注意到这一点),然后它死机了,日志中没有任何错误。
事实证明这是托管/WMWare 层面的问题(这不是我关心的问题)。除其他问题外,WMWare 主机有一段时间完全不工作。在基础设施公司修复了他们的 WMWare 平台后,它又正常工作了。