每个Linux管理员应该知道的20个Linux系统监视工具

本文转载自 http://bbs.51cto.com/thread-971896-1.html 


需要监视Linux服务器的性能?试试这些内置的命令和一些附加的工具吧。大多数Linux发行版都集成了一些监视工具。这些工具可以获取有关系统活动的信息的详细指标。通过这些工具,你可以发现产生系统性能问题可能存在原因。下面讨论的是一些最基本的命令,它涉及到系统分析和调试服务器等一些问题,如:
1.    找出系统瓶颈问题.
2.    磁盘 (储存) 瓶颈问题.
3.    CPU和内存瓶颈问题.
4.    网络瓶颈问题.
# 1: top �C 查看活动进程的命令
TOP工具能够实时显示系统中各个进程的资源占用状况。默认情况下,它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU/内存的使用情况和执行时间对任务进行排序,并每五秒钟更新一次。
 
常用的快捷键
Top命令为我们提供了很多有用的快捷键,如:
快捷键    用法
t             切换显示进程和CPU状态信息。
m           切换显示进程和CPU状态信息。
A            分类显示各种系统资源的消耗情况。可用于快速识别系统的性能要求极高的任务。
o            改变显示项目的顺序。
r            重新设置进程的优先级别。(系统提示用户输入需要改变的进程PID以及需要设置的优先级值。)
k            终止一个进程。(系统将提示用户输入需要终止的进程PID)
s            改变刷新的时间间隔。
u            查看指定用户的进程。   
=> Related:要了解更多关于top的用法,请参考系统帮助文档。
# 2: vmstat �C 系统活动、硬件以及系统信息
这个命令用来报告关于内核线程、虚拟内存、磁盘、陷阱和CPU活动的统计信息。
# vmstat 3                                                           
输出样例:
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------           
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st            
0  0      0 2540988 522188 5130400    0    0     2    32    4    2  4  1 96  0  0          
1  0      0 2540988 522188 5130400    0    0     0   720 1199  665  1  0 99  0  0          
0  0      0 2540956 522188 5130400    0    0     0     0 1151 1569  4  1 95  0  0          
0  0      0 2540956 522188 5130500    0    0     0     6 1117  439  1  0 99  0  0          
0  0      0 2540940 522188 5130512    0    0     0   536 1189  932  1  0 98  0  0          
0  0      0 2538444 522188 5130588    0    0     0     0 1187 1417  4  1 96  0  0          
0  0      0 2490060 522188 5130640    0    0     0    18 1253 1123  5  1 94  0  0  
        

显示内存使用情况:
# vmstat �Cm                                                         
=> Related: 要了解更多关于vmstat的用法,请参考系统帮助文档。
# 3: w �C 找到已登陆的用户并且查看他们做了什么操作
W命令用来显示机器上最近登陆的用户信息以及他们的进程信息。
# w username                                                         
# w vivek    
                                                        
输出样例:
17:58:47 up 5 days, 20:28,  2 users,  load average: 0.36, 0.26, 0.24                         
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT                        
root     pts/0    10.1.3.145       14:55    5.00s  0.04s  0.02s vim /etc/resolv.conf        
root     pts/1    10.1.3.145       17:43    0.00s  0.03s  0.00s w               
            
# 4: uptime �C 系统已运行的时间
Uptime命令可以查看系统已经运行了多长时间。截止当前时间日期,系统已经运行了多长时间,当前登录的用户有哪些,已经在过去的1,5,15分钟,系统的平均负载值情况。 
# uptime                                                             
输出样例:
18:02:41 up 41 days, 23:42,  1 user,  load average: 0.00, 0.00, 0.00           
1通常被认为是最佳的负载值。系统负载值根据系统的不同而不同。对于单CPU的系统,负载值在1-3为正常,SMP的系统,负载值在6-10之间也是可以接受的。(看具体的情况)
# 5: ps �C 显示进程
ps命令用来报告当前进程的快照。要选择所有进程,使用-A或-e选项:
# ps �CA                                                             
输出样例:
 
Ps命令跟top相似,但ps为我们提供了更多的信息。
以长格式显示输出:
# ps �CAl                                      
查看线程:(LWP和NLWP):
# ps �CAlFH                                             
To See Threads After Processes:
# ps �CAlLm                                    
在服务器上打印出所有进程:
# ps ax                                        
# ps axu 
                                      
打印出进程树:
# ps �CejH                                     
# ps axjf                                      
# pstree   
                                    
See Every Process Running As User Vivek:

# ps -U vivek -u vivek u                       
设置以用户定义的格式输出:

# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm  
# ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm    
# ps -eopid,tt,user,fname,tmout,f,wchan       
                    
只显示lighttpd的进程树:

# ps -C lighttpd -o pid=                                          
Or
# pgrep lighttpd                                                  
Or
# pgrep -u vivek php-cgi                                          
显示pid为55977的进程名:

# ps -p 55977 -o comm=   
                                         
找出最耗费内存的前10个进程:

# ps -auxf | sort -nr -k 4 | head -10                             
找出最耗费CPU的前10个进程:

# ps -auxf | sort -nr -k 3 | head -10                             
# 6: free �C 查看内存的使用情况
free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
参数:
 -b    以Byte为单位显示内存使用情况。 
 -k    以KB为单位显示内存使用情况。 
 -m   以MB为单位显示内存使用情况。 
 -o   不显示缓冲区调节列。 
 -s    <间隔秒数>  持续观察内存使用状况。 
 -t    显示内存总和列。 
 -V   显示版本信息。
# free                                                            
输出样例:
            total       used       free     shared    buffers     cached 
Mem:      12302896    9739664    2563232          0     523124    5154740
-/+ buffers/cache:    4061800    8241096                                 
Swap:      1052248          0    1052248            
                     
free的输出一共有四行,第四行为交换区的信息,分别是交换的总量(total),使用量(used)和有多少空闲的交换区(free)。
第二行和第三行是比较让人迷惑的。这两行都是说明内存使用情况的。第一列是总量(free),第二列是使用量(free),第三列是可用量(free)。第一行的输出时从操作系统(OS)来看的。也就是说,从OS的角度来看,计算机上一共有:

你可能感兴趣的:(性能监控工具)