Linux常用系统性能监控命令

监控CPU使用率





使用下面的命令:





[root@localhost ~]# gnome-system-monitor





将会出现图形化工具GNOME System Monitor,如下图所示:





1.jpg 





监控CPU调度程序运行队列





linux可以使用vmstat命令





vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写, 是实时系统监控工具。该命令通过使用knlist子程序和/dev/kmen伪设备驱动器访问这些数据,输出信息直接打印在屏幕。vmstat反馈的与CPU相关的信息包括:


(1)多少任务在运行


(2)CPU使用的情况


(3)CPU收到多少中断


(4)发生多少上下文切换





下面只介绍 Vmstat与CPU相关的参数





vmstat的语法如下:





vmstat [delay [count]]





参数的含义如下:





2.jpg 





当没有参数时,vmstat则显示系统启动以后所有信息的平均值。有delay时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个delay时间段的平均信息。当系统有多个CPU时,输出为所有CPU的平均值。





3.jpg 





total_cur = user + system + nice + idle + iowait + irq + softirq





total_pre = pre_user + pre_system + pre_nice + pre_idle + pre_iowait + pre_irq + pre_softirq





total = total_cur – total_pre





[root@localhost ~]# vmstat





运行结果如下:





4.jpg 





监控锁竞争





使用 sysstat包中的pidstat命令来监控





[root@localhost ~]# pidstat





运行结果如下:





Linux 2.6.32-431.el6.x86_64 (localhost.localdomain) 05/07/15 _x86_64_ (1 CPU)





09:58:18 PID %usr %system %guest %CPU CPU Command


09:58:18 1 0.00 0.00 0.00 0.00 0 init


09:58:18 4 0.00 0.00 0.00 0.00 0 ksoftirqd/0





……





09:58:18 37143 0.00 0.00 0.00 0.00 0 dbus-launch


09:58:18 37144 0.00 0.00 0.00 0.00 0 dbus-daemon


09:58:18 37268 0.00 0.00 0.00 0.00 0 fprintd


09:58:18 37272 0.00 0.00 0.00 0.00 0 pidstat





监控网络I/O使用率





nicstat原本是Solaris平台下显示网卡流量的工具,Tim Cook将它移植到linux平台





首先安装之,源码在这里下, 这里使用的版本是1.92。





安装make环境:





yum install gcc gcc-c++ make automake autoconf -y





由于nicstat依赖32bitglibcpackage,所以





yum install libgcc.i686 glibc.i686 glibc-devel.i686  -y





下载文件并安装:





# wget -c http://nchc.dl.sourceforge.net/p … nicstat-1.92.tar.gz


# tar zxvf nicstat-1.92.tar.gz # cd nicstat-1.92 # cp Makefile.Linux Makefile # uname -m





[root@localhost nicstat-1.92]# make


gcc -O3 -m32 nicstat.c -o nicstat


nicstat.c:99:1: warning: "DUPLEX_UNKNOWN" redefined


In file included from nicstat.c:84:


/usr/include/linux/ethtool.h:691:1: warning: this is the location of the previous definition


mv nicstat `./nicstat.sh –bin-name`





[root@localhost nicstat-1.92]# ./nicstat.sh





5.jpg 





磁盘I/O使用率





iostat [-t] [-c] [interval [count]]





参数的含义如下:





6.jpg 





当没有参数时,iostat则显示系统启动以后所有信息的平均值。与CPU有关的输出的含义





7.jpg 





total_cur = user + system + nice + idle + iowait + irq + softirq





total_pre = pre_user + pre_system + pre_nice + pre_idle + pre_iowait + pre_irq + pre_softirq





total = total_cur – total_pre





有interval时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个interval时间段的平均信息。





使用iostat命令





[root@localhost ~]# iostat





运行结果如下:





Linux 2.6.32-431.el6.x86_64 (localhost.localdomain) 05/07/15 _x86_64_ (1 CPU)





avg-cpu: %user %nice %system %iowait %steal %idle


6.12 0.00 1.35 2.35 0.00 90.19





Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn


sda 6.03 267.11 272.53 26904430 27450404








PS:附上Brendan Gregg个人站点上分享了很多Linux 性能相关的资源:





Linux observability tools| Linux 性能观测工具





8.jpg 





Linux benchmarking tools| Linux 性能测评工具


9.jpg 





Linux tuning tools| Linux 性能调优工具


10.jpg 





Linux observability sar


11.jpg 





愈看更多图表和演讲,请移步:http://www.brendangregg.com/linuxperf.html





补充:去年在微博分享 BrendanGregg 在SCaLE 11x 大会上的演讲《Linux Performance Analysis and Tools | Linux 性能分析和工具》,这个链接(https://www.joyent.com/blog/linux-performance-analysis-and-tools-brendan-gregg-s-talk-at-scale-11x)中有演讲视频(Youtube)和幻灯片(SlideShare),所以请自带梯子访问。





参考资料


http://www.cnblogs.com/argb/p/3448661.html





http://blog.jobbole.com/76103/





http://blog.yufeng.info/archives/2518





原文地址:http://www.kuqin.com/shuoit/20150608/346478.html