导致系统运行迟缓的原因
有许多不同的潜在的原因会导致系统运行迟缓,但通常可以将它们分为以下几个方面:
进程太多。您的系统可能仅仅只是同时运行了太多的应用程序,或者正在运行少量CPU密集型的操作。要么是服务器超负荷运行,要么是失控进程耗尽了系统资源。
活动内存太多。如果进程使用了大量的内存,那么系统可能会从磁盘换入大量的页面并将大量的页面换出到磁盘,这意味着您的系统花费在内存交换上的时间比真正使用内存的时间更多。
硬件故障。有时候,您会碰到导致系统运行迟缓的硬件故障。不能正常工作的网卡、硬盘或内存,都可能导致系统花费很长的时间等待信息。
要对该问题进行诊断,您需要使用大量可用的工具来检查您的UNIX系统。
选择连接方法
如果您的计算机运行得特别慢,那么第一个问题是如何连接到该计算机以便启动监视进程。运行迟缓的计算机可能无法接受Telnet或通过远程Shell协议(如ssh)的连接。
如果您尚未登录到系统,那么可能根本无法进行访问。相反,可以考虑直接或通过独立的硬件解决方案(如网络或基于串口的控制台监视器)来使用控制台。
这种控制台更有可能允许您登录到系统,因为已经有一个登录进程(您的 Shell 将会代替它)正在运行。如果在登录到系统后,您无法通过Shell运行任何进程,则表示系统已经耗尽了进程空间,那么重新启动可能是使系统恢复正常的唯一办法。
要重新启动系统,请使用init或telinit来调整运行级别,运行级别6通常表示重新启动。使用init/telinit更有可能重新启动系统,因为在进行重新启动时仅涉及到了一个进程。
在系统启动并运行后,您需要使用本文中介绍的一些技巧来监视该系统的运行状态并记录其输出结果。如果再次出现系统运行迟缓的情况,您可以执行事后检查调试并分析系统运行迟缓的原因。
使用uptime
如果您怀疑计算机运行得很慢,那么您应该运行的第一个命令是
uptime
。
Uptime
报告当前时间、计算机启动和运行时间(换句话说,是从计算机启动以来的时间)以及当前的用户数。然后它会提供三幅图表,以显示最近1分钟、5分钟和15分钟的平均负载。例如:
$ uptime
18:28:54 up 10 days,8:38,2 users, load average: 2.24, 5.34, 3.42
在这个示例中,该计算机在最近1分钟、5分钟和15分钟内的平均负载分别超过了2、5和3。