我知道有几种工具可以用来查明是什么原因导致networking和CPU使用率过高,但是我经常在服务器上检查日志,注意到networking/ CPU活动时间非常长。 最近一次发生在上周的某一天。
我怎样才能“回头看”,找出谁或什么在使用这些资源,而不是“在行为中捕捉他们”?
我使用Ubuntu 10.04。
没有完整的审计日志logging(每个进程运行和它消耗的资源),你真的不能。 你可以做的最好的是审查所有计划的任务( cron
工作, at
工作)和所有你可以编目的外部影响(在其他系统上的预定工作,来自大老板的一个不寻常的请求报告等)有根据的猜测。
找出造成负载峰值的最好方法是实时监控/警报:一个系统告诉你“现在我们有问题”,以便您login并确定原因。
除了资源监视可以为整个系统寻找高CPU利用率的时期之外,您还可以设置监视,以便按进程查找高CPU使用率的长时间段。 我有这样的设置为我的networking和SQL框,Linux和Windows。
偶尔我会看到一些东西,并且使用单个核心的100%。 这不足以触发四核系统上的直接CPU的警报,但足以保证看看。
有很多工具可以跟踪进程的累积CPU利用率,并且/或者logging这个值随着时间的推移。 如果你想要细节的细节发生了什么 :
现在你有一个networking“黑匣子”,将logging过去X分钟/小时的所有事件(取决于捕获文件的大小)。
看到完整的数据包转储会准确地告诉您发生了什么,以及端点在询问什么。 很难确定慢性问题。 当用户报告偶然的失败,并且日志什么也不显示。
Ubuntu应该已经为你安装了“systat”软件包,软件包会自动设置一个cron作业来保存所有的系统指标(CPU / MEM / DISK …)到“/ usr / lib / sysstat”,你只需要读取历史数据用sar -u | -d | – ? -f文件名