我租用了一台 Centos6 服务器并运行一个 Apache Tomcat 7 服务器,并使用 Apache httpd 服务器代理它。
有时我的服务器被锁定,我无法通过 putty 访问它,甚至无法 ping 。
我的问题是:我如何确定这是关于连接问题还是应用程序服务器的问题(我目前遇到休眠问题,导致应用服务器由于不必要的大量查询而无法响应)?
提前致谢。
(PS:重启服务器即可解决问题)
编辑:以下是我的服务器上的应用程序和道具:
*Apache httpd 服务器 --> 代理,*Apache Tomcat 服务器 --> 应用服务器,*Mysql DBMS
并从同一个文件夹中获取了约 69000 张(99GB)高清图像。
编辑2:当我重新启动机器并再次运行服务器时,系统恢复正常。
答案1
最简单的方法可能是设置一个 cron 作业,该作业每分钟运行一次并执行一些琐碎的操作,您可以稍后检查它是否在特定时间发生。例如,创建一个文件 /etc/cron.d/datelog,内容如下:
* * * * * root date >> /var/log/date.log
让它运行一段时间。下次 VPS 停止响应时,请等待几分钟再重新启动,然后在 VPS 恢复后检查 /var/log/date.log。
如果该文件有条目在 VPS 无响应时,您可以相当肯定它运行正常,只是由于某种原因无法通过网络访问,因此您可以专注于调查 VPS 无法通过网络访问的原因。如果文件没有条目当 VPS 没有响应时,这并不能最终证明 VPS 停止或崩溃,但这是一个非常强烈的迹象,表明发生了此类事情,您应该主要基于这样的假设进行进一步调查。
这种方法的优点是不需要安装或配置任何附加软件;几乎所有发行版的标准安装中都包含一个 cron 守护程序,我怀疑 CentOS 在这方面有什么不同,因为它对很多其他事情都很有用。
答案2
这可能是很多事情。
首先,您需要查看系统日志文件,看看是否有任何值得注意的内容。我会从/var/log/messages
您失去联系的时间开始查看。
您已声明它是 VPS - 我假设您无权访问物理底层主机或虚拟机管理程序?
可能是您达到了某种限制或触发条件,而托管提供商正在暂停或终止您的 VM 实例。您应该检查控制面板 - 它应该报告任何 VM 的状态,您还可能会发现它提供了对 VM 的“KVM”或控制台访问,您可以在实例处于“损坏”状态时尝试访问它。
我会尝试使用类似的东西从内部监控实例伊辛加,纳吉奥斯或者仙人掌。它们都有插件来监控大量应用程序和系统。安装并设置以监控您的 httpd、网络连接、CPU、内存等。这样,您至少能够看到在机器无法访问之前的状态。