Linux系统监控命令推荐

作为服务器,了解他的实时运行情况是非常有必要的,而且要对其进行全面完整的监控,其中资源部分比如cpu,men,io,disk,network等,这些比较凌乱的东西,用linux提供的命令就可以了满足需要了,不必用那些庞大臃肿的企业级监控工具,比如Nagios,OpenNMS等。

还有比较重要的就是/proc文件系统了,里面的文件反应了几乎所有系统当前运行时的状态,是系统的实时快照,这时linux里一切都是文件这种理念的反映。如果你对于proc有及其强壮的了解,那么什么xx工具基本都可以忽略了。

1,uptime命令

root@ubuntu:~#uptime13:22:12up4:54,3users,loadaverage:0.93,0.84,0.81

其中13:22:12是当前的时间;up 4:54 是已经运行了多长时间;3 users 是当前有几个用户登录;load average :0.93 0.84 0.81 表示cpu在1min,5min,15min前的负载情况,值代表等待处理的process数,1在单核cpu机器上代表cpu总是处在运算状态。

2,free命令

root@ubuntu:~#freetotalusedfreesharedbufferscachedMem:20256081942916826920451136785420-/+buffers/cache:7063601319248Swap:2611160261116

显示当前系统所有的、已使用、未分配的内存,还有缓冲区和高速缓存的值mem.total = mem.used + mem.freemen.used = mem.buffers + mem.cached + buf/cac.usedmem.total = buf/cac.used + buf/cac.freefree [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay] [-c count]free -mlt 全面显示信息3,top命令

top-13:50:53up5:22,3users,loadaverage:0.53,0.67,0.72Tasks:179total,1running,177sleeping,0stopped,1zombieCpu(s):7.9%us,1.2%sy,1.2%ni,89.7%id,0.0%wa,0.0%hi,0.0%si,0.0%stMem:2025608ktotal,1966004kused,59604kfree,456644kbuffersSwap:261116ktotal,0kused,261116kfree,787140kcachedPIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND2096fenix200280m62m20mS143.255:30.27chrome

动态全面的显示当前机器的负载情况,功能非常强大。4,pmap命令

root@ubuntu:~#pmap-x52155215:bashAddressKbytesRSSDirtyModeMapping002da000040r-x--[anon]003230000200r-x--libnsl-2.12.1.so00336000044r----libnsl-2.12.1.so00337000044rw---libnsl-2.12.1.so00338000000rw---[anon]003b0000080r-x--libdl-2.12.1.so

显示进程的内存使用情况,可以判断哪些进程消耗乐大量资源address,进程所占地址空间;Kbytes,地址虚拟段大小;RSS,设备号;Dirty,好像是不是独占的内存大小;mode,占用模式,rwxsp,s=shared,p=private。mapping,bash对应的映像文件名pmap [ -x | -d ] [ -q ] pids x是扩展模式,d是设备模式,q是简洁模式5,mpstat命令

root@ubuntu:~#mpstatLinux2.6.35-22-generic(ubuntu)04/27/2011_i686_(2CPU)02:26:47PMCPU%usr%nice%sys%iowait%irq%soft%steal%guest%idle02:26:47PMall11.760.271.740.230.000.200.000.0085.79

显示多cpu的利用情况mpstat -I ALL -u6,iostat命令

root@ubuntu:~#iostatLinux2.6.35-22-generic(ubuntu)04/27/2011_i686_(2CPU)avg-cpu:%user%nice%system%iowait%steal%idle11.770.271.940.230.0085.78Device:tpsBlk_read/sBlk_wrtn/sBlk_readBlk_wrtnsda3.39199.4355.7743376131213008sdb0.010.090.00203582

可能需要安装sysstat包才能使用。显示磁盘的io情况7,vmstat命令

root@ubuntu:~#vmstat-aprocs-----------memory-------------swap-------io-----system------cpu----rbswpdfreeinactactivesisobiboincsussyidwa00084420975336892620007431728146122860

显示系统当前的各种负载情况,功能很全面。8,sar命令

Linux2.6.35-22-generic(ubuntu)04/27/2011_i686_(2CPU)12:25:01PMCPU%user%nice%system%iowait%steal%idle12:35:01PMall11.140.101.570.320.0086.8812:45:01PMall12.240.052.060.150.0085.5012:55:01PMall13.140.072.080.160.0084.5501:05:01PMall10.810.041.800.040.0087.3101:15:01PMall12.500.082.320.060.0085.04

所谓的瑞士军刀,超级全面的监控工具,光是man手册就1300多行,这个以后单独写一下,可以把上面的所有命令都替代了。9,strace命令

root@ubuntu:~#strace-p5482Process5482attached-interrupttoquitwaitpid(-1,[{WIFEXITED(s) WEXITSTATUS(s)==0}],0)=5487---SIGCHLD(Childexited)@0(0)---sigreturn()=?(masknow[])waitpid(-1,0xbfae781c,WNOHANG)=-1ECHILD(Nochildprocesses)rt_sigaction(SIGINT,{0x805b950,[],0},NULL,8)=0rt_sigaction(SIGQUIT,{SIG_DFL,[],0},NULL,8)=0close(4)=0chdir( /home/fenix )=0ioctl(0,SNDCTL_TMR_TIMEBASEorTCGETS,{B38400opostisigicanonecho...})=0

strace截取和记录进程的系统调用,以及收到的各种信号,监控进程的信息和状态。10,ulimit命令

root@ubuntu:~#ulimit-acorefilesize(blocks,-c)0datasegsize(kbytes,-d)unlimitedschedulingpriority(-e)20filesize(blocks,-f)unlimitedpendingsignals(-i)16382maxlockedmemory(kbytes,-l)64maxmemorysize(kbytes,-m)unlimitedopenfiles(-n)1024pipesize(512bytes,-p)8POSIXmessagequeues(bytes,-q)819200real-timepriority(-r)0stacksize(kbytes,-s)8192cputime(seconds,-t)unlimitedmaxuserprocesses(-u)unlimitedvirtualmemory(kbytes,-v)unlimitedfilelocks(-x)unlimited

ulimit是bash内建命令,显示当前用户的shell使用限制情况。可以使用相应的选项修改特定的值. “人”的结构就是相互支撑,“众”人的事业需要每个人的参与。

Linux系统监控命令推荐

相关文章:

你感兴趣的文章:

标签云: