Linux系统出现问题时,我们不仅需要查看系统日志信息,而且还要使用大量的性能监测工具来判断究竟是哪一部分(内存、CPU、硬盘……)出了问题。在Linux系统中,所有的运行参数保存在虚拟目录/proc中,换句话说,我们使用的性能监控工具取到的数据值实际上是源自于这个目录,当涉及到系统高估时,我们可以修改/proc目录中的相关参数了,当然有些是不能乱改的。下面让我们了解一下这些常用的性能监控工具。

  工具

    功能描述

uptime  ----   系统平均负载率  dmesg  ---- 硬件/系统信息  top  -----  进程进行状态
iostat  --------  CPU和磁盘平均使用率  vmstat --------- 系统运行状态  sar  --------- 实时收集系统使用状态  KDE System Guard --- 图形监控工具  free  ---------------内存使用率
traffic-vis ------------网络监控(只有SUSE有)  pmap  ------------- 进程内存占用率  strace   --------- 追踪程序运行状态  ulimit  ---------系统资源使用限制  mpstat  -------------多处理器使用率

  1、uptime

  uptime命令用于查看服务器运行了多长时间以及有多少个用户登录,快速获知服务器的负荷情况。

  uptime的输出包含一项内容是load average,显示了近1,5,15分钟的负荷情况。它的值代表等待CPU处理的进程数,如果CPU没有时间处理这些进程,load average值会升高;反之则会降低。 load average的佳值是1,说明每个进程都可以马上处理并且没有CPU cycles被丢失。对于单CPU的机器,1或者2是可以接受的值;对于多路CPU的机器,load average值可能在8到10之间。

  也可以使用uptime命令来判断网络性能。例如,某个网络应用性能很低,通过运行uptime查看服务器的负荷是否很高,如果不是,那么问题应该是网络方面造成的。 以下是uptime的运行实例:

  9:24am  up  19:06,  1 user,  load average: 0.00, 0.00, 0.00

  也可以查看/proc/loadavg和/proc/uptime两个文件,注意不能编辑/proc中的文件,要用cat等命令来查看,如:

  liyawei:~ # cat /proc/loadavg 0.00 0.00 0.00 1/55 5505

  2、dmesg

  dmesg命令主要用来显示内核信息。使用dmesg可以有效诊断机器硬件故障或者添加硬件出现的问题。

  另外,使用dmesg可以确定您的服务器安装了那些硬件。每次系统重启,系统都会检查所有

  硬件并将信息记录下来。执行/bin/dmesg命令可以查看该记录。 dmesg输入实例:

ReiserFS: hda6: checking transaction log (hda6) ReiserFS: hda6: Using r5 hash to sort names
Adding 1044184k swap on /dev/hda5. Priority:-1 extents:1 across:1044184k parport_pc: VIA 686A/8231 detected
parport_pc: probing current configuration parport_pc: Current parallel port base: 0x378
parport0: PC-style at 0x378 (0x778), irq 7, using FIFO [PCSPP,TRISTATE,COMPAT,ECP] parport_pc: VIA parallel port: io=0x378, irq=7 lp0: using parport0 (interrupt-driven).
e100: Intel(R) PRO/100 Network Driver, 3.5.10-k2-NAPI e100: Copyright(c) 1999-2005 Intel Corporation
ACPI: PCI Interrupt 0000:00:0d.0[A] -> GSI 17 (level, low) -> IRQ 169
e100: eth0: e100_probe: addr 0xd8042000, irq 169, MAC addr 00:02:55:1E:35:91 usbcore: registered new driver usbfs usbcore: registered new driver hub
hdc: ATAPI 48X CD-ROM drive, 128kB Cache, UDMA(33) Uniform CD-ROM driver Revision: 3.20
USB Universal Host Controller Interface driver v2.3 3、top

  top命令显示处理器的活动状况。缺省情况下,显示占用CPU多的任务,并且每隔5秒钟做一次刷新。

  Process priority的数值决定了CPU处理进程的顺序。LIUNX内核会根据需要调整该数值的大小。nice value局限于priority。priority的值不能低于nice value(nice value值越低,优先级越高)。您不可以直接修改Process priority的值,但是可以通过调整nice level值来间接地改变Process priority值,然而这一方法并不是所有时候都可用。如果某个进程运行异常的慢,可以通过降低nice level为该进程分配更多的CPU。

  Linux 支持的 nice levels 由19 (优先级低)到-20 (优先级高),缺省值为0。 执行/bin/ps命令可以查看到当前进程的情况。