1、 vmstat :对操作系统的内存信息、进程、CPU进行监视分析 #vmstat 2 3 每二秒更新输出一次,统计3次后停止。 [iyunv@MYDB1 ~]# vmstat 2 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 170688 171224 464808 0 0 0 1 14 7 0 0 100 0 0
0 0 0 170680 171224 464828 0 0 0 0 12 36 0 0 100 0 0
0 0 0 170680 171224 464828 0 0 0 0 13 37 0 0 100 0 0 Procs: r CPU时间片的进程数;b等待资源的进程数。 Memory:swpd 内存交换区的大小,只要si,so长期为0,就不影响。Free空闲的物理内存;buff 内存缓冲区;cache缓存,只要bi小就正常。 swap: si 磁盘调入内存;so内存调入磁盘,so与si长期多的话,说明需要增加内存了。 IO:磁盘读写状态;bi从设备读入的总量;bo写入设备的总量,bi+bo参考值为1000,超过就是IO有问题了。 System:采集间隔内发生的中断数。In每秒中断数;cs每秒产生的上下文切换次数,这二个值班越大,内核消耗CPU时间越多。 Cpu: us 进程消耗CPU的时间比,值越高,消耗的CPU时间越多,长期大于50%,需要优化程或算法;sy内核消耗CPU的时间比。Us+sy大于80%时,说明CPU资源不足。Id CPU空闲时间比;wa是IO等待占用CPU时间比,wa越高,说明IO越严重。Wa参考值为20%,长期大于20%说明IO问题严重。 2、 sar 可以获取系统的CPU、运行队列、磁盘IO、分页(交换区)、内存、CPU中断、网络等。 #sar –u 3 2 每三秒统计一次,统计2次 [iyunv@MYDB1 ~]# sar -n DEV 3 2
Linux 2.6.32-279.19.1.el6.x86_64 (MYDB1) 03/09/13 _x86_64_ (1 CPU) 18:00:50 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
18:00:53 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
18:00:53 eth0 4.00 0.00 0.29 0.00 0.00 0.00 0.00
18:00:53 eth1 0.33 0.00 0.02 0.00 0.00 0.00 0.00 18:00:53 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
18:00:56 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
18:00:56 eth0 2.66 0.33 0.21 0.15 0.00 0.00 0.00
18:00:56 eth1 0.66 0.00 0.04 0.00 0.00 0.00 0.00 Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 3.33 0.17 0.25 0.08 0.00 0.00 0.00
Average: eth1 0.50 0.00 0.03 0.00 0.00 0.00 0.00
参数:-A 所有设备;-u所有CPU;-P指定的CPU;-d硬盘;-r内存采样;-b内存缓冲区采样;-v进程、文件、节点和锁表状态;-n网络;-q队列;-R进程;-y终端设备;-W系统交换 –o filename 将命令结果以二进制格式放在文件中;
3、 iostat(需要安装Sysstat),主要针对磁盘IO磁盘监视。 #Iostat –d 2 3 [iyunv@MYDB1 ~]# iostat -d 2 3
Linux 2.6.32-279.19.1.el6.x86_64 (MYDB1) 03/09/13 _x86_64_ (1 CPU) Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.16 0.19 2.28 531210 6494604
dm-0 0.29 0.18 2.28 522090 6494552
dm-1 0.00 0.00 0.00 2376 0 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
dm-0 0.00 0.00 0.00 0 0
dm-1 0.00 0.00 0.00 0 0 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
dm-0 0.00 0.00 0.00 0 0
dm-1 0.00 0.00 0.00 0 0
Blk_read/s:每秒读取的数据块数 Blk_wrtn/s每秒写入的数据块数 Blk_read 读取的所有块数 Blk_wrtn 写入的所有块数 参数:-c 显示CPU的使用情况;-d磁盘;-k以KB这单位;-t打印开始执行时间;-x device 按磁盘名称统计。 4、 free 内存监控 #free –m (以M为单位) [iyunv@MYDB1 ~]# free -m
total used free shared buffers cached
Mem: 995 829 166 0 167 453
-/+ buffers/cache: 208 787
Swap: 2015 0 2015
经验值:应用可用的内存/系统物理内存>70%,说明性能优良,<20%是,资源紧缺,需要增加内存。在这二个数之间,算正常。 5、 uptime #uptime [iyunv@MYDB1 ~]# uptime
18:17:59 up 33 days, 3:30, 3 users, load average: 0.00, 0.00, 0.00
系统时间、开机运行时间、登录用户数、1分钟内、5分钟内、15分钟内平均负载。 Load average一般不能大于CPU的个数,长期大于的话,说明CPU很忙,需要优化程序或者增加CPU。 6、 netstat:网络连接、运行端口、路由表等 #netstat –i [iyunv@MYDB1 ~]# netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 5295771 0 0 0 114725 0 0 0 BMRU
参数:-a 所有的连接与端口;-n有效的连接与端口;-r 路由表;-s按协议的统计;-v与n类似;-t TCP协议;-u UDP协议;- I 自动配置的接口状态;-l LISTEN状态;-p对应的PID进程,-c按秒。 Iface:接口名称 MTU:最大传输单元,单位字节 RX-OK/TX-OK:正确无误的数据包 RX-ERR/TX-ERR:产生的错误 RX-DRP/TX-DRP:丢弃的包 RX-OVR/TX-OVR:误差遗失的包 错误、丢弃、遗失的包越大,网络问题越大。 7、 top #top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 19228 1520 1232 S 0.0 0.1 0:07.49 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 参数:-d 时间间隔;-I不显示死的或闲的进程;-c 整个命令路径;-s安全模式运行;-b分屏输出,可与-n结合输出到文档;-n输出的次数,完成后退出。 PR:优先级 NI:nice值,负值班优先级高,正的相反 VIRT:使用的虚拟内存总量,单位KB RES:占用的内存,单位KB SHR:共享内存大小,单位KB TIME+:使用的CPU时间总计,单位1/100秒 COMMAND:命令名或者路径
|