Crazylinux工作室出自:crazylinux工作室网址:时间:2010.10.11转载请保留此信息-------------------------------常用的19大监视工具作者:L。JE-mail:lijie2402@gmail.com工具功能简介工具:主要功能top:进程活动vmstat:系统活动,硬件及系统信息uptime,w:系统平均负载ps,pstree:显示进程free:内存使用情况iostat:CPU平均负载,硬盘活动sar:搜集展示系统活动mpstat:多处理器使用情况numastat:NUMA-相关统计信息pmap:进程内存使用情况netstat:网络相关统计信息iptraf:实时网络统计信息tcpdump,ethereal:网络通讯的详细分析nmon:搜集展示系统活动Proc文件系统:各种内核统计信息KDEsystemguard:系统图形化实时展示GnomeSystemMonitor:系统图形化实时展示表2-2列出了本章所涉及到基准工具的功能表2-2基准工具工具:主要功能lmbench:操作系统基准iozone:文件系统基准netperf:网络性能基准1.Toptop命令显示实际进程的运行情况。在默认情况下,它显示服务器上占用CPU最多的任务并每5秒刷新列表一次。你也可以按PID(数值)、age(最新的排第发展开源精神,普及Linux教育Crazylinux工作室网址:发展开源精神,普及Linux教育Crazylinux工作室网址:一)、time(累计的时间)、常驻内存或时间(自启动开始进程所占用的CPU时间)排序。你可以使用renice命令来修改进程的优先级。如果进程挂起或占据过多的CPU,你可以使用kill命令杀死此进程。输出的栏位有:PID:进程IDUSER:进程所有者的用户名PRI:进程优先级(参见1.1.4“进程优先级和Nice值”)NI:Nice值(Whethertheprocesstriestobenicebyadjustingtheprioritybythenumbergiven.Seebelowfordetails.)SIZE:进程使用的内存大小(code+data+stack),单位为KBRSS:所使用的物理内存大小,单位为KBCrazylinux工作室发展开源精神,普及Linux教育Crazylinux工作室网址::与其它进程共享的内存大小,单位为KBSTAT:进程状态:S=sleeping,R=running,T=stoppedortraced,D=interruptiblesleep,Z=zombie。在1.1.7“进程状态”讨论关于进程的状态%CPU:使用的CPU百分比%MEM:物理内存百分比TIME:进程使用的CPU时间(自从此启动)COMMAND:启动任务所使用的命令(包括参数)top支持多个有用的热键,如下:t:隐藏或显示摘要信息m:隐藏或显示内存信息A:分类显示各种系统资源,可用于快速找出系统中影响性能的任务。o:在交互模式下选择排序的栏位r:renice命令k:kill命令2.Vmstatvmstat能提供进程、内存、分页、块I/O、traps和CPU活动相关信息。vmstat命令可以显示平均值或实际取样值。使用取样频率和取样时间等参数启用vmstat取样模式。注意:在取样模式中需要考虑实际数据搜集中存在误差的可能,设定较低的取样频率能减少这样的可能。实例2-2vmstat输出示例Crazylinux工作室发展开源精神,普及Linux教育Crazylinux工作室网址:注释:vmstat输出结果中第一行展示的是自最后一次启动以来的平均值,所以此行可以忽略。输出栏位如下:Process(procs)r:等待运行时间的进程数。b:处于不可中断睡眠状态的进程数。Memoryswpd:虚拟内存使用量(KB)。free:空闲内存量(KB)。buff:用作buffer的内存量(KB)。cache:用作cache的内存量(KB)。swapsi:从硬盘交换到内存的数量(KBps)。so:交换到硬盘的内存数量(KBps)。IObi:发送到块设备的块的数量(blocks/s)。bo:从块设备获取的块的数量(blocks/s)。Systemin:每秒钟的中断数量,包括时钟中断。cs:每秒钟上下文交换的数量。CPU(整个CPU时间的百分比)us:花费在非内核代码的CPU时间(用户时间,包括Nice时间)。sy:花费在内核代码的CPU时间(系统时间)。id:空闲时间。在2.5.41内核以前,还包括I/O等待时间。Crazylinux工作室发展开源精神,普及Linux教育Crazylinux工作室网址::IO等待时间。在2.5.41内核以前,显示为0。vmstat命令提供了许多命令行参数,使用man手册查看参数的详细文档。常用的参数有:-m:显示内核的内存使用情况(slabs)-a:显示活动和非活动内存分页相关信息-n:只显示一次栏位名称行,当在取样模式通下将输出信息存储到文件时非常有用。(例如,root#vmstat–n210以每2秒钟的频率执行10次取样)当使用-p{分区}参数时,vmstat也可以提供I/O相关统计信息。补充:vmstat是VirtualMeomoryStatistics(虚拟内存统计)的缩写,是实时系统监视工具。该命令通过使用knlist子程式和/dev/kmen伪设备驱动器访问这些数据,输出信息直接打印在屏幕。vmstat反馈的和CPU相关的信息包括:(1)多少任务在运行(2)CPU使用的情况(3)CPU收到多少中断(4)发生多少上下文转换下面只介绍Vmstat和CPU相关的参数vmstat的语法如下:vmstat[delay[count]]参数的含义如下:参数解释delay相邻的两次采样的间隔时间count采样的次数,count只能和delay一起使用当没有参数时,vmstat则显示系统启动以后所有信息的平均值。有delay时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个delay时间段的平均信息。当系统有多个CPU时,输出为所有CPU的平均值。和CPU有关的输出的含义(采用进一法)参数解释从/proc/stat获得数据任务的信息r在internal时间段里,运行队列里等待CPU的任务(任务)的个数,即不包含vmstat进程procs_running-1b在internal时间段里,被资源阻塞的任务数(I/0,页面调度,等等.),通常情况下是接近0的procs_blockedCPU信息所有值取整(四舍五入)us在internal时间段里,用户态的CPU时间(%),包含nice值为负进程total*100δnice)/δuser+δ(sy在internal时间段里,核心态的CPU时间(%)total*100δsoftirq)/δirq+δsystem+δ(id在internal时间段里,cpu空闲的时间,不包括等待i/o的时间(%)total*100δidle/δtotal*100δiowait/δwa在internal时间段里,等待i/o的时间(%)系统信息Crazylinux工作室发展开源精神,普及Linux教育Crazylinux工作室网址:δin在internal时间段里,每秒发生中断的次数cs在internal时间段里,每秒上下文转换的次数,即每秒内核任务交换的次数ctxt/intervalCODE:total_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范例1:averagemode(粗略信息)当vmstat不带参数时,对应的输出值是从系统启动以来的平均值,而r和b则对应的是完成这一命令时,系统的值。从下面例子,能看出系统基本出去闲置状态(idle)。自启动以来,CPU在用户态消耗时间为5%,在核心态消耗为本1%,剩下的为闲置时间。需要指出的是:这里的用户态时间包括nice值为负的进程的时间。CODE:[root@localhost~]#vmstatprocs-----------memory-------------swap-------io------system------cpu----rbswpdfreebuffcachesisobiboincsussyidwa10045804289851600496151921961[root@localhost~]#范例2:averagemode(周详信息)命令格式:vmstat–s这里只讨论和CPU相关信息。“CPUticks”表示自系统启动CPU运行时间,这里以tick为时间单位。用tick来西安市us,syid和wa的时间;forks指自从系统启动以来,所创建的新任务的个数。这些信息从/proc/stat的第一行和”processes”行获得。CODE:[root@localhost~]#vmstat-s255280totalmemory244216usedmemory206624activememoryCrazylinux工作室发展开源精神,普及Linux教育Crazylinux工作室网址:[root@localhost~]#结果解释参数描述/proc/statCrazylinux工作室发展开源精神,普及Linux教育Crazylinux工作室网址:自系统启动以来,CPU在用户态下运行非nice进程的时间,单位为jiffiesuserniceusercputicks自系统启动以来,CPU在用户态下运行nice进程的时间,单位为jiffiesnicesystemcpu