如何检测虚拟机冻结

在云平台上,您经常会听到,由于相邻虚拟机的负载过高,超额订购的以太网磁盘,备份或实时迁移到其他硬件,虚拟机可能会“冻结”一会儿。

我怀疑这是发生在我们不希望公开耻辱的云提供商上的一个Ubuntu虚拟机上。

每天晚上都无法进行外部监测服务。 机器本身在负载,交通等方面看起来是健康的。提供商build议networking是好的,但。

我想能够(不)certificateVM冻结造成这些传呼机。

我想到的一个想法是每秒钟将date写入日志,在短暂的不可用时间之后,看看我们是否跳过了“节拍”。
然而,这似乎有缺陷,因为如果虚拟机保持自己的时钟,并允许从主机的硬件漂移。
如果我们的内部时钟与虚拟机一起冻结,那么我们在这个日志文件中仍然会有一个很好的秒数序列,而且现在实时的时钟已经落后了。

有没有更好的方法/工具,我可以用来确定有机器冻结?

我会猜想实时,我们的时间将是一个告诉,然后又有其他原因漂stream时钟。

我认为你每秒钟都会把时间写到日志文件中,但是由于你指出的原因可能并不可靠。 除了将时间写入本地磁盘之外,为什么不让cron进程通过networking接触已知稳定的系统,并让该系统将请求logging到磁盘? 像wget一样简单的工作可以工作,假设你正在做一个系统的http请求,该系统正在logging请求。 当然,理想情况下,您希望目标系统相对于您怀疑存在networking问题的系统相对“接近”,但至less可以帮助您获得一些debugging数据。

您可以使用Nagios,一个IT解决scheme进行监控。 有了这个,你可以检查CPU的负载 (和其他许多事情),并接收一个警报给你的邮件或Web控制台。 您必须在PC上安装服务器,并在虚拟机中安装远程插件执行程序。

这是一个非常酷的教程: http : //www.tecmint.com/how-to-add-linux-host-to-nagios-monitoring-server/

我会从外部主机ping一个虚拟机。 如果虚拟机冻结,它的networking堆栈也应该显示在一个logging的ping序列中。