当前位置: 首页 > 科技观察

常用的Linux系统性能监控命令

时间:2023-03-18 17:20:36 科技观察

监控CPU使用率使用如下命令:[root@localhost~]#gnome-system-monitor会出现一个图形化的工具GNOMESystemMonitor,如下图:MonitorCPUscheduler运行Queuelinux可以使用vmstat命令vmstat是VirtualMeomoryStatistics(虚拟内存统计)的缩写,它是一个实时的系统监控工具。该命令通过使用knlist子例程和/dev/kmen伪设备驱动程序访问这些数据,并将输出信息直接打印在屏幕上。vmstat反馈的CPU相关信息包括:(1)有多少任务在运行(2)CPU使用率(3)CPU接收了多少中断(4)发生了多少上下文切换语法如下:vmstat[delay[count]]参数含义如下:该参数说明了delay的两个相邻采样之间的间隔,count采样的个数,count只能和delay一起使用。当没有参数时,vmstat会显示系统启动后所有信息的平均值。当有延迟时,第一行的信息是自系统启动以来的平均信息。从第二行开始,输出的是前一个延迟周期的平均信息。当系统有多个CPU时,输出是所有CPU的平均值。参数解释内部时间段从/proc/stat获取的数据r的运行队列中等待CPU的任务(tasks)数,即vmstat进程procs_running-1b中被资源阻塞的任务数在内部时间段内不包括(I/0,分页等)通常procs_blockedus接近0是在内部时间段内,用户态CPU时间(%),包括nice值为负进程(用户+nice)/total*100sy内部时间段内CPU处于核心状态的时间(%)(system+irq+softirq)/total*100id内部时间段内CPU空闲时间,不包括等待I的时间/O(%)idle/total*100waintheinternaltimeperiod,waitingi/otime(%)iowait/total*100inintheinternaltimeperiod,内部时间段内每秒中断次数intr/intervalcs,contextswitchespersecond,即内核任务每秒交换次数ctxt/intervaltotal_cur=user+system+nice+idle+iowait+irq+softirqtotal_pre=pre_user+pre_system+pre_nice+pre_idle+pre_iowait+pre_irq+pre_softirqtotal=total_cur-total_pre[root@localhost~]#vmstat运行结果如下:监控锁竞争使用sysstat包中pidstat命令监控[root@localhost~]#pidstat运行结果如下:Linux2.6.32-431.el6.x86_64(localhost.localdomain)05/07/15_x86_64_(1CPU)09:58:18PID%usr%system%guest%CPUCPU命令09:58:1810.000.000.000.000init09:58:1840.000.000.000.000ksoftirqd/0...…09:58:18371430.000.000.000.000DBUS-LAUNTH09:58:18371440.000.000.000.000.000.000DBUS-DAEMON09:58:18372680.000.000pidstat监控网络I/O使用率nicstat最初是Solaris平台上显示网卡流量的工具。TimCook将其移植到Linux平台并首先安装。在此处下载源代码。这里使用的版本是1.92安装make环境:yuminstallgccgcc-c++makeautomakeautoconf-y由于nicstat依赖32位glibc包,所以yuminstalllibgcc.i686glibc.i686glibc-devel.i686-y下载文件并安装:#wget-chttp://nchc.dl.sourceforge.net/project/nicstat/nicstat-1.92.tar.gz#tarzxvfnicstat-1.92.tar.gz#cdnicstat-1.92#cpMakefile.LinuxMakefile#uname-m[root@localhostnicstat-1.92]#makegcc-O3-m32nicstat.c-onicstatnicstat.c:99:1:警告:“DUPLEX_UNKNOWN”重新定义在nicstat.c:84包含的文件中:/usr/include/Linux/ethtool.h:691:1:warning:这是之前定义的位置mvnicstat`./nicstat.sh--bin-name`[root@localhostnicstat-1.92]#./nicstat.shdiskI/Ousage的iostat[-t][-c][interval[count]]参数含义如下:参数说明T表示输出所花费的时间C表示只显示CPU信息Internal相邻两个samplingcount采样次数之间的间隔时间,count只能和delay一起使用。当没有参数时,iostat会在系统启动后显示所有信息的平均值。CPU相关输出的含义参数说明从/proc/stat获取CPU处理器ID用户在内部时间段,用户态CPU时间(%),不包括nice值,负进程usr/total*100nice内部时间段这里的nice值是内部时间段内的负进程CPU时间(%)nice/total*100sys,内部时间段内的核心时间(%)(system+irq+softirq)/total*100iowait,硬盘IO等待时间(%)iowait/total*100idle内部时间段内,除等待磁盘IO操作外,CPU因任何原因空闲Idletime(%)idle/total*100total_cur=user+system+nice+idle+iowait+irq+softirqtotal_pre=pre_user+pre_system+pre_nice+pre_idle+pre_iowait+pre_irq+pre_softirqtotal=total_cur-当total_pre有间隔时,第一行的信息是系统启动以来的平均信息。从第二行开始,输出的是前一个区间周期的平均信息。Usetheiostatcommand[root@localhost~]#iostatrunningresultsareasfollows:Linux2.6.32-431.el6.x86_64(localhost.localdomain)05/07/15_x86_64_(1CPU)avg-cpu:%user%nice%system%iowait%steal%idle6.120.001.352.350.0090.19Device:tpsBlk_read/sBlk_wrtn/sBlk_readBlk_wrtnsda6.03267.11272.532690443027450404PS:附上BrendanGregg个人站点上分享了很多Linux性能相关的资源:Linuxobservabilitytools|LinuxperformancemonitoringtoolsLinuxbenchmarkingtools|LinuxperformanceevaluationtoolsLinuxtuningtools|LinuxperformancetuningtoolsLinuxobservabilitysar