远程服务器挂起,卡住。 如何debugging?

我有一个运行在Ubuntu 8.04 LTS的VmWare ESX上的vps。 过去三个月一直运行顺畅,但是最近我们发现了两个奇怪的错误。

一个。 服务器挂起,今天是第二次。 挂的性质是非常奇怪的。 我可以ping通服务器的服务器,它发回响应罚款。 然而所有其他的服务,如sshd,apache,mysql等都没有响应。 工作时,

telnet servername 22 Escape character is '^]'. SSH-2.0-OpenSSH_5.X Debian-5ubuntu1 

和其他networking服务将运行良好。 当它挂起时,我可以使TCP连接到22和80,但根本没有得到任何回应。

 telnet servername 22 Escape character is '^]'. 

我怎样才能debugging这个问题? 有没有我能运行的守护进程,会定期logging状态? 请告诉我如何继续下去。

湾 另一个奇怪的问题是,最近我无法传输大于100KB左右的文件,较小的文件大约1-2KB的作品文件。

 scp anotherserver:filename . 

要么

 wget http://www.example.com/file 

会卡住。 还剩下大约6GB的空间,所以我不认为这是一个问题。 任何指针,我应该看看?

我会build议从sysstat (或atsar )包使用sar 。 这每10分钟运行一次cron作业,并logging下你的服务器的重要统计信息 – 内存使用情况,CPU利用率,磁盘活动,networking活动等。

你这样使用它:

显示处理器活动(默认)
sar -p (或者只是sar

显示内存(“ram”)统计信息
sar -r

显示从二十七号的记忆统计
sar -r -f /var/log/sysstat/sa27

请注意,path因安装而异。 在基于redhat的系统上,这些文件通常位于/var/log/sa/ ,而如果安装了atsar软件包,它们将位于/var/log/atsar/ ,但是模式是以代表收集数据的月份的date结束。

有些版本(如atsar )允许你简单地指定date: sar -n 27 。 检查安装附带的联机帮助页,找出正确的语法和可以检索的数据。

一旦你有了这个安装和运行(你可能已经做到了!),你可以使用它收集的信息来了解崩溃之前发生的事情。 例如,如果报告显示您的内存已经被耗尽并且空闲的交换空间减less到零,那么您将很清楚要查找哪些内容。

掌握了这些信息之后,您可以设置其他报告,以便更好地了解发生了什么问题:例如,您可以编写一个简短的bash脚本来检查某些系统统计信息(例如/proc/meminfo/proc/loadavg ),如果满足触发条件,可能会将相应的debugging信息(如ps auwwxf的输出) ps auwwxf到文件中,或者将信息通过电子邮件发送给您。

检查是否没有networking错误(使用SNMP或WMI / CIM / WBEM监控ESX服务器)。 安装/重新安装VMware Tools。 检查你是否没有存储问题。 当虚拟机没有应答时,你可以使用虚拟机的控制台吗? 检查虚拟机是否在ESX界面中不交换。