1,监控CPU使用情况--uptime命令
该命令描述为:打印当前时间,系统已经运行了多久,当前登录用户数及系统平均负载
[study@monitor ~]$ uptime
06:58:50 up 1 day, 10:41, 4 users, load average: 0.06, 0.02, 0.00
系统当前时间为6:58:50,系统已经运行了1天10小时41分钟,当前有4个用户在登录,CPU负载分别显示最近的一分钟,五分钟,十五分钟的负载情况。这里CPU负载表示单位时间段内CPU等待队列中平均有多少进程在等待,等待的进程个数越多,说明CPU越忙
延伸 当前登录的用户
[study@monitor ~]$ who
root tty7 2016-08-15 01:20 (:0)
root pts/0 2016-08-15 01:21 (:0.0)
study pts/1 2016-08-15 01:21 (172.19.17.16)
study pts/2 2016-08-15 01:46 (172.19.17.16)
你的电脑默认有7个tty 你可以分别按住ctrl+alt+ ……F7 pts是你打命令的终端,叫伪终端
[root@monitor ~]# w 更强大的命令
07:13:25 up 1 day, 10:56, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
study pts/2 172.19.17.16 01:46 0.00s 0.10s 0.05s sshd: study [priv]
2,监控内存及交换分区使用情况--free命令
显示系统内存及交换分区信息
free -b|k|m 输出单位 bytes,KB,MB 默认是Byte
[root@monitor ~]# free
total used free shared buffers cached
Mem: 1020348 823804 196544 0 135920 487716
-/+ buffers/cache: 200168 820180
Swap: 835576 0 835576
Mem一行的total代表内存总量为1020348Byte;used代表系统将内存中的823804Byte划分成了buffer和cache,也就是buffer和cache的总容量;free内存总容量减去buffer和cache的综合之后剩余容量为196544;buffers代表当前buffer的剩余容量为135920;cached表示当前cache的剩余容量为487716
第二行used代表buffer和cache当前总共使用了200168Byte;free代表buffer和cache总剩余容量加内存未被划分的剩余容量之和。也就是820180=196544+135920+487766;823804=135920+487716+200168
第三行为交换分区的使用情况,total代表交换分区总容量为835576Byte;used代表已经使用了0Byte,free代表剩余交换分区为835576Byte
3,监控磁盘使用情况--df命令
df命令描述:生成系统磁盘空间的使用量信息
df[选项]
选项 -h 人性化方式显示容量信息
-i 显示磁盘incode使用量信息
-T 显示文件系统类型
[study@monitor ~]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root 6926264 4311212 2263208 66% /
tmpfs 510172 72 510100 1% /dev/shm
/dev/sda1 495844 34849 435395 8% /boot
[study@monitor ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 6.7G 4.2G 2.2G 66% /
tmpfs 499M 72K 499M 1% /dev/shm
/dev/sda1 485M 35M 426M 8% /boot
[study@monitor ~]$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root ext4 6.7G 4.2G 2.2G 66% /
tmpfs tmpfs 499M 72K 499M 1% /dev/shm
/dev/sda1 ext4 485M 35M 426M 8% /boot
[study@monitor ~]$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/VolGroup-lv_root 440640 130034 310606 30% /
tmpfs 127543 3 127540 1% /dev/shm
/dev/sda1 128016 38 127978 1% /boot
如最下的,根分区inodes总个数为440640,使用了130034个,剩余310606,使用率为1%,这里的inode个数决定了决定了该分区可以创建的文件个数,有多少个inode节点,就可以再该分区创建多少个文件,在上面看,如果/目录再创建310606个文件,即使系统显示磁盘空间仍然有大量的剩余,也无法再创建新的文件,因为inode已经耗尽
4,监控网络使用情况--ifconfig和netstat命令
4.1 ifconfig命令可以查看网卡接口信息,在Linux中以太网卡一般被标为ethx,第一块以太网卡为eth0,第二块以太网卡为eth1,依次类推。此外,我们一般使用netstat命令查看服务器开启的端口信息以及网络连接状态。
[study@monitor ~]$ ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:99:6F:0C
inet addr:172.19.17.100 Bcast:172.19.17.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe99:6f0c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:180623 errors:0 dropped:0 overruns:0 frame:0
TX packets:3234 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:12499524 (11.9 MiB) TX bytes:1032437 (1008.2 KiB)
从以上信息中可以看出,该网卡的IP地址为172.19.17.100,广播地址为172.19.17.255,子网掩码为255.255.255.0,系统开机至现在共接收了384884个数据包;系统开机至现在总共发送了3234个数据包,系统总共接收了11.9MB的数据,发送了1008.2KB的数据
4.2 netstat命令
描述:打印网络连接、路由器、网络接口统计等信息
用法:netstat[选项]
选项:-s 显示各种协议数据统计信息
-n 使用数字形式的IP、端口号、用户ID替代主机、协议、用户等名称信息。
-p 显示进程名称及对应进程ID号
-l 仅显示正在监听的sockets接口信息
-u 查看udp连接信息
-t 查看tcp连接信息
5,
5.1 ps命令
查看当前进程信息
标准语法格式:
ps -e #查看所有进程信息
ps -ef #全格式显示进程信息
BSD语法格式
ps -ax
ps -aux
例如:
[root@monitor ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:14 ? 00:00:00 /sbin/init
root 2 0 0 10:14 ? 00:00:00 [kthreadd]
5.2 top命令
动态查看进程信息
选项 -d #top刷新时间,默认为3秒
-p #查看指定PID的进程信息
top -d 1 -p 1,2,3
通过top可以动态查看10个进程的信息,默认按CPU使用率排序,输入M可以按照内存使用率排序,输入N可以按照进程号排序,输入Z可以高亮显示颜色
6,补充:
6.1 dmesg | tail
查看最后10条的系统消息,查找可能会引发性能问题的错误
6.2 vmstat 1
统计虚拟内存的信息,参数1是指打印一秒内的统计信息
r:运行队列的长度,可以更好地确定CPU的饱和度,'r'值大于CPU数则为饱和
free:以kb为单位的空闲内存。如果这个值很大,说明有足够的空闲内存
si,so:换入的内存和换出的内存。如果他们不为0,说明内存已经耗尽
us,sy,id,wa,st:CPU时间的不同组成部分,是所有CPU的平均数。分别表示用户态时间,系统态时间(内核)、空闲、等待I/O以及窃取时间(stolen time,虚拟化环境下,CPU在其它租户下的开销)
将用户态时间和系统态时间相加,可以判断CPU是否忙碌。如果一直有等待I/O,此时CPU是空闲的。可以将等待I/O看做另一种形式的CPU空闲。
I/O处理一定会消耗系统态时间。如果系统时间平均占比很高,比如说超过20%,或许可以深入研究下,可能是内核处理I/O的效率不高
6.3 mpstat -P ALL 1
打印每个CPU的状况。可以检查各CPU的负载是够均衡。比如,一个CPU很热,可能是单线程应用造成的
6.4 pidstat 1
pidstat按进程打印CPU的使用情况。循环输出活动进程的信息。可用于观察模式随时间的变化情况。用户也可以把观察到的信息记录下来,以供分析研究。
%CPU这一列是所有CPU的整体情况,
6.5 iostat -xz 1
这是了解块设备的一个极佳工具,能看到实际负载和性能信息
r/s.w/s,rkB/s,wkB/s:分表表示每秒发给磁盘设备的读请求数,每秒发给磁盘设备的写请求数,每秒从磁盘设备读取的KB数,每秒向磁盘设备写入的KB数。可以使用它们表示负载特性。性能问题可能就是由过多的负载造成的。
await:平均I/O响应时间,单位为毫秒。包括排队时间和服务时间。如果它大于预期的平均时间,可能是设备以及饱和,也可能是设备存在问题
avgqu-sz:提交到设备的平均请求数。如果大于1,设备可能以及饱和。
%util:设备使用率。设备忙于处理请求的百分比。如果大于60%,通常会导致较差的性能(可以在await中看出来),不过也与具体的设备有关。如果接近100%,通常意味着设备以及饱和。
如果存储设备室后面有多快磁盘支撑的逻辑磁盘,即使设备使用率是100%,后端磁盘也可能远没有饱和,而是还能处理更多工作。
6.6 sar -n DEV 1
使用该工具检查网络接口的吞吐量,以rxkB/s和txkB/s为手段测量负载
6.7 sar -n TCP,ETCP 1
这是一些关键TCP指标的总结。其中包括:
active/s:每秒本地发起的TCP连接数(比如通过connect())。
passive/s:每秒远端发起的TCP连接数(比如通过accept())。
retrans/s:每秒TCP重传数。
active和passive连接数通常用于粗略地测量服务器负载。方便起见,可以把active看作向外的连接,把passive看作向内的连接;不过也有不严格之处,比如考虑从localhost到localhost的连接。
重传数是网络或服务器问题的一个信号:可能是网络不可靠;也可能是服务器过载和丢包。像图中的例子,每秒只有一个新的TCP连接。