2.7 性能监控

2.7.1 监控cpu使用情况——uptime命令

描述:打印当前时间,系统已经运行了多久,当前登录用户数以及系统平均负载。

[root@instructor etc]# uptime 
 13:11:15 up  1:26,  4 users,  load average: 0.00, 0.00, 0.00

当前系统时间为1311分,系统已经运行了1小时26分钟,当前有4个用户在登录,CPU负载分别显示的是最近1分钟、5分钟、15分钟的负载情况。需要说明的是,这里的负载表示单位时间段内CPU等待队列中平均有多少进程在等待,等待的进程数越多,说明CPU越忙。

 

2.7.2 监控内存及交互分区使用情况——free命令

描述:显示系统内存及交换分区信息

用法:free [-b|-k|-m]

选项:-b|-k|-m 指定输出容量的单位,分别为ByteKBMB

[root@instructor ~]# free -m
             total       used       free     shared    buffers     cached
Mem:        992        774        218         0      44        384
-/+ buffers/cache:         344        648
Swap:      1023          0       1023

 

Linux在开机后会预先提取一部分内存,并划分为buffercache以后随时提供给进程使用。

以上输出信息中,Mem一行的total代表内存总容量992userd代表系统将内存中的774划分为buffercachefree代表内存总容量减去buffercache的总和之后的剩余容量218buffer代表当前buffer的剩余容量为44cache代表当前cache的剩余容量为384。(MB

第二行userd代表buffercache当前共使用了344free代表buffercache总剩余容量加内存未被划分的剩余容量之和。648=44+384+218,这个值是系统中内存未被使用的实际容量。

第三行为交换分区的使用情况,total代表交换分区容量为1023used代表已经使用了0free代表剩余交换分区为1023

 

2.7.3 监控磁盘使用情况——df命令

df

描述:生成系统磁盘空间的使用量信息

用法:df [选项]...

选项:-h 人性化方式显示容量信息

-i 显示磁盘inode使用量信息

-T 显示文件系统类型

 

2.7.4 监控网络使用情况——ifconfignetstat命令

1. ifconfig

ifconfig命令可以查看网卡接口信息,在Linux中以太网卡一般被标识为ethX,第一块以太网卡为eth0,第二块为eth1.此外,一般使用netstat命令查看服务器开启的端口信息以及网络连接状态。

[root@instructor ~]# ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:0C:29:55:D7:44  
          inet addr:192.168.0.254  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe55:d744/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2938 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1652 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:289956 (283.1 KiB)  TX bytes:220381 (215.2 KiB)

 

该网卡的IP地址为192.168.0.254,广播地址为192.168.0.255,子网掩码为255.255.255.0,系统开机至现在总共接收了2938个数据包,发送了1652个数据包;计算机总共接收了283.1 KiB数据,总共发送了215.2 KiB数据。

 

2. netstat

描述:打印网络连接、路由表、网络接口统计等信息

用法:netstat [选项]

选项:-s 显示各种协议数据统计信息

-n 使用数字形式的IP、端口号、用户ID替代主机、协议、用户等名称信息

-p 显示进程名称及对应进程ID

-l 仅显示正在监听的shocket接口信息

-u 查看udp连接信息

-t 查看tcp连接信息

[root@instructor ~]# netstat -nutlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address     Foreign Address    State       PID/Program name   
tcp     0     0    0.0.0.0:37480         0.0.0.0:*     LISTEN      -                   
tcp     0     0    0.0.0.0:875           0.0.0.0:*     LISTEN      2315/rpc.rquotad

 

2.7.5 监控进程使用情况——pstop命令

1. ps

描述:查看当前进程信息

用法:ps命令版本众多,有多种语法种类,如UNIXBSD以及GNU Linux

标准语法格式:

[root@instructor ~]# ps -e 
  PID TTY          TIME     CMD
  1	 ?     	  00:00:03    init
  2	 ?     	  00:00:00   kthreadd
[root@instructor ~]# ps -ef 
UID        PID  PPID  C  STIME   TTY          TIME		 CMD
root       1     0    0  13:02	   ?      00:00:03       	/sbin/init
root       2     0    0  13:02	   ?       00:00:00     	[kthreadd]

 

BSD语法格式:

[root@instructor ~]# ps -ax 
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
  PID TTY      STAT   TIME COMMAND
    1  ?        Ss      0:03   /sbin/init
    2  ?        S       0:00  [kthreadd]
[root@instructor ~]# ps -axu
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER    PID %CPU %MEM   VSZ   RSS  TTY   STAT  START   TIME COMMAND
root       1    0.0  0.1       19356  1564  ?      Ss   13:02     0:03  /sbin/init
root       2    0.0  0.0         0     0    ?      S    13:02     0:00  [kthreadd]
root       3    0.0  0.0         0     0    ?      S    13:02     0:00  [migration/0]

 

UIDUSER代表进程的执行用户,PID为进程的唯一编号,PPID为父进程ID编号,%CPU代表进程的CPU占有率,%MEM代表进程的内存占有率,VSZ代表进程所使用的虚拟内存大小(KB),RSS代表进程所使用的真实内存大小,TTY为终端,STIMESTART代表进程启动时间,STAT代表进程状态(D:不可中断的进程,R:正在运行的进程,S:正在睡眠的进程,T:停止或被追踪的进程,X:死掉的进程,Z:僵尸进程),TIME代表进程占有CPU的总时间,CMDCOMMAND代表进程的命令。

2. top

描述:动态查看进程信息

选项:-d top刷新间隔,默认为3

-p 查看指定PID的进程信息

[root@instructor ~]# top
top - 16:23:59 up  3:21,  4 users,  load average: 0.00, 0.00, 0.00
Tasks: 192 total,   2 running, 190 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1016672k total,   796296k used,   220376k free,    48324k buffers
Swap:  1048568k total,        0k used,  1048568k free,   394828k cached
 
PID USER     PR  NI  VIRT  RES  SHR  S  %CPU %MEM    TIME+  COMMAND                                                    
20  root      20   0     0    0    0   S   0.3     0.0      0:10.10    ata/0                                                       
204  root       20   0     0    0    0   S   0.3     0.0      0:07.79    scsi_eh_0

 

默认按CPU使用率排序,输入M可以按照内存使用率排序,输入N可以按照进程号排序,输入z可以高亮显示颜色。