您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 综合/其它 > linux系统监控工具汇总
Linux系统监控工具汇总toptop是linux下常用的系统分析工具,能够实时的现实各个进程的资源占用情况,类似于windows的资源管理器。一前五行是系统整体的统计信息。第一行是任务队列信息,同uptime命令的执行结果。其内容如下:15:08:30当前时间75days系统运行时间,格式为时:分。4users当前登录用户数loadaverage:0.04,0.03,0.00系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。二第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:Tasks:105total:进程总数1running:正在运行的进程数104sleeping:睡眠的进程数0stopped:停止的进程数0zombie:僵尸进程数Cpu(s):0.0%us用户空间占用CPU百分比0.0%sy:内核空间占用CPU百分比0.0%ni:用户进程空间内改变过优先级的进程占用CPU百分比100%id:空闲CPU百分比0.0%wa:等待输入输出的CPU时间百分比0.0%hi0.0%si三最后两行为内存信息。内容如下:Mem:191272ktotal物理内存总量173656kused使用的物理内存总量17616kfree空闲内存总量22052kbuffers用作内核缓存的内存量Swap:192772ktotal交换区总量0kused使用的交换区总量192772kfree空闲交换区总量123988kcached缓冲的交换区总量。四进程区信息1PID进程id2USER进程所有者的用户名3PR优先级4NInice值。负值表示高优先级,正值表示低优先级5%CPU上次更新到现在的CPU时间占用百分比6TIME进程使用的CPU时间总计,单位秒7TIME+进程使用的CPU时间总计,单位1/100秒8%MEM进程使用的物理内存百分比9VIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES10SWAP进程使用的虚拟内存中,被换出的大小,单位kb。11RES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA12D=不可中断的睡眠状态13R=运行14S=睡眠15T=跟踪/停止16Z=僵尸进程17xCOMMAND命令名/命令行五命令参数top[-][d][p][q][c][C][S][s][n]d指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。p通过指定监控进程ID来仅仅监控某个进程的状态。q该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。S指定累计模式s使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。i使top不显示任何闲置或者僵死进程。c显示整个命令行而不只是显示命令名六交互命令下面介绍在top命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。1Ctrl+L擦除并且重写屏幕。2h或者?显示帮助画面,给出一些简短的命令总结说明。3k终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。4i忽略闲置和僵死进程。这是一个开关式命令。5q退出程序。6r重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。7S切换到累计模式。8s改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。9f或者F从当前显示中添加或者删除项目。10o或者O改变显示项目的顺序。11l切换显示平均负载和启动时间信息。12m切换显示内存信息。13t切换显示进程和CPU状态信息。14c切换显示命令名称和完整命令行。15M根据驻留内存大小进行排序。16P根据CPU使用百分比大小进行排序。17T根据时间/累计时间进行排序。18W将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法七瓶颈分析1当swap分区被使用时说明主机的物理内存已经不足。2当us+sy+ni(us,sy,ni上面已说明)接近100%时说明CPU负载过高3当CPU有等待I/O情况时,那说明磁盘处于超负荷状态.Vmstat一虚拟内存运行原理在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存,将这部分资料存储在磁盘上直到进程下一次调用,并将释放出的内存提供给有需要的进程使用。在Linux内存管理中,主要是通过“调页Paging”和“交换Swapping”来完成上述的内存调度。调页算法是将内存中最近不常使用的页面换到磁盘上,把活动页面保留在内存中供进程使用。交换技术是将整个进程,而不是部分页面,全部交换到磁盘上。分页(Page)写入磁盘的过程被称作Page-Out,分页(Page)从磁盘重新回到内存的过程被称作Page-In。当内核需要一个分页时,但发现此分页不在物理内存中(因为已经被Page-Out了),此时就发生了分页错误(PageFault)。当系统内核发现可运行内存变少时,就会通过Page-Out来释放一部分物理内存。经管Page-Out不是经常发生,但是如果Page-out频繁不断的发生,直到当内核管理分页的时间超过运行程式的时间时,系统效能会急剧下降。这时的系统已经运行非常慢或进入暂停状态,这种状态亦被称作thrashing(颠簸)二vmstat的基本概念vmstat是一个查看虚拟内存(VirtualMemory)使用状况的工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。本文介绍了虚拟内存的运行原理,继而介绍了vmstat的用法和使用范例。一般VMSTAT工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。如:[oracle@localhostoracle]$vmstat2procs———–memory———-—swap–—–io—-–system–—-cpu—-rbswpdfreebuffcachesisobiboincsussyidwa001958043812406161598656000010246697600100000195804381240616159865600012104866961001000001958043812406161598656000281054670670010000019580438124061615986560000102066988001000(注:目前系统几乎空闲,并且不同操作系统VMSTAT输出内容有所不同)目前说来,对于服务器监控有用处的度量主要有:r(运行队列)pi(页导入)us(用户CPU)sy(系统CPU)id(空闲)(如果r经常大于4,且id经常少于40,表示cpu的负荷很重。)(如果pi,po长期不等于0,表示内存不足)三使用方法vmstat[-a][-n][-Sunit][delay[count]]vmstat[-s][-n][-Sunit]vmstat[-m][-n][delay[count]]vmstat[-d][-n][delay[count]]vmstat[-pdiskpartition][-n][delay[count]]vmstat[-f]vmstat[-V]-a:显示活跃和非活跃内存-f:显示从系统启动至今的fork数量。引申閱讀::显示slabinfo-n:只在开始时显示一次各字段名称。-s:显示内存相关统计信息及多种系统活动数量。delay:刷新时间间隔。如果不指定,只显示一条结果。count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。-d:显示磁盘相关统计信息。-p:显示指定磁盘分区统计信息-S:使用指定单位显示。参数有k、K、m、M,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024bytes)-V:显示vmstat版本信息。四使用说明Procs(进程):r:运行队列中进程数量b:等待IO的进程数量Memory(内存):swpd:使用虚拟内存大小free:可用内存大小buff:用作缓冲的内存大小cache:用作缓存的内存大小Swap:si:每秒从交换区写到内存的大小so:每秒写入交换区的内存大小IO:(现在的Linux版本块的大小为1024bytes)bi:每秒读取的块数bo:每秒写入的块数系统:in:每秒中断数,包括时钟中断。cs:每秒上下文切换数。CPU(以百分比表示):us:用户进程执行时间(usertime)sy:系统进程执行时间(systemtime)id:空闲时间(包括IO等待时间)wa:等待IO时间五页面调度和交换1交换空间即swap交换空间是指专门临时存储内存的一块磁盘空间,通常在页面调度和交换内存时使用,通常推荐交换空间的大小是物理内存的二到四倍。2页面调度页面调度是指磁盘像内存传输数据,以及相反的过程,这个过程之所以被称为页面调度,linux内存被划分为大小相等的页面,通常大小是4KB或8KB;当可执行程序开始运行时,他的映像会一页一页的从磁盘中读取,于此类似当某些内存空闲时就可以把他们移出到交换空间中,这样就可以空闲的RAM交给其他需要他的程序使用。3交换交换通常会和页面调度的概念混淆,页面调度是指把一个进程所占内存的空闲部分传输到磁盘上,而交换是指系统中的实际内存已不满足新的分配需求时,把整个进程传输到磁盘上,交换活动通常意味着内存不足。五瓶颈分析1通过vmstat识别CPU瓶颈r(运行队列)展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了获得CPU个数的命令(LINUX环境):cat/proc/cpuinfo|grepprocessor|wc-l当r值超过了CPU个数,就会出现CPU瓶颈,解决办法大体几种:1.最简单的就是增加CPU个数2.通过调整任务执行时间,如大任务放到系统不繁忙的情况下进行执行,进尔平衡系统任务3.调整已有任务的优先级2通过VMSTAT识别CPU满负荷首先需要声明一点的是,vmstat中CPU的度量是百分比的。当us+sy的值接近100的时候,表示CPU正在接近满负荷工作。但要注意的是,CPU满负荷工作并不能说明什么,UNIX总是试图要CPU尽可能的繁忙,使得任务的吞吐量最大化。唯一能够确定CPU瓶颈的还是r(运行队列)的值。3通过VMSTAT识别RAM瓶颈数据库服务器都只有有限的RAM,出现内存争用现象是Oracle的常见问题。首先察看RAM的数量,命令如下(LINUX环境):[oracle@oracle-db02~]$freetotalusedfreesharedbufferscachedMem:2074924207111238120406161598656-/+buffers/cache:4318401643084Swap:30684041958042872600当然可以使用top等其他命令来显示RAM。当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以
本文标题:linux系统监控工具汇总
链接地址:https://www.777doc.com/doc-5530156 .html