首页 > 代码库 > 2.7 性能监控
2.7 性能监控
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
当前系统时间为13点11分,系统已经运行了1小时26分钟,当前有4个用户在登录,CPU负载分别显示的是最近1分钟、5分钟、15分钟的负载情况。需要说明的是,这里的负载表示单位时间段内CPU等待队列中平均有多少进程在等待,等待的进程数越多,说明CPU越忙。
2.7.2 监控内存及交互分区使用情况——free命令
描述:显示系统内存及交换分区信息
用法:free [-b|-k|-m]
选项:-b|-k|-m 指定输出容量的单位,分别为Byte、KB、MB
[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在开机后会预先提取一部分内存,并划分为buffer与cache以后随时提供给进程使用。
以上输出信息中,Mem一行的total代表内存总容量992;userd代表系统将内存中的774划分为buffer和cache;free代表内存总容量减去buffer和cache的总和之后的剩余容量218;buffer代表当前buffer的剩余容量为44;cache代表当前cache的剩余容量为384。(MB)
第二行userd代表buffer与cache当前共使用了344;free代表buffer与cache总剩余容量加内存未被划分的剩余容量之和。648=44+384+218,这个值是系统中内存未被使用的实际容量。
第三行为交换分区的使用情况,total代表交换分区容量为1023,used代表已经使用了0,free代表剩余交换分区为1023。
2.7.3 监控磁盘使用情况——df命令
df
描述:生成系统磁盘空间的使用量信息
用法:df [选项]...
选项:-h 人性化方式显示容量信息
-i 显示磁盘inode使用量信息
-T 显示文件系统类型
2.7.4 监控网络使用情况——ifconfig和netstat命令
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 监控进程使用情况——ps和top命令
1. ps
描述:查看当前进程信息
用法:ps命令版本众多,有多种语法种类,如UNIX、BSD以及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]
UID或USER代表进程的执行用户,PID为进程的唯一编号,PPID为父进程ID编号,%CPU代表进程的CPU占有率,%MEM代表进程的内存占有率,VSZ代表进程所使用的虚拟内存大小(KB),RSS代表进程所使用的真实内存大小,TTY为终端,STIME或START代表进程启动时间,STAT代表进程状态(D:不可中断的进程,R:正在运行的进程,S:正在睡眠的进程,T:停止或被追踪的进程,X:死掉的进程,Z:僵尸进程),TIME代表进程占有CPU的总时间,CMD或COMMAND代表进程的命令。
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可以高亮显示颜色。