20个常用的linux系统管理工具

逐一介绍20个常用的linux系统管理工具,vmstat,ps,top,strace,pmap等

需要监控Linux服务器性能?试试这些内置命令和一些附加工具。大多数Linux版本自带很多监控工具。这些工具提供了用于提取系统活动信息的度量.可以使用这些工具发现性能问题的可能原因。以下讨论大多数基本的命令中一些,用于系统分析和调试服务器问题,如下:

 1.查找瓶颈.

 2.磁盘(存储)瓶颈.

 3.CPU和内存瓶颈. 

 4.网络瓶颈.

#1:top—进程活动命令

top程序提供了系统运行的动态实时的视图。在默认情况下,它显示了大多数运行在服务器上CPU密集型的任务,并每5秒钟更新一次列表。

 常用热键

top命令提供一些有用的热键

 热键           使用

t                    显示总结信息的开启和关闭。

m                 显示内存信息的开启和关闭

A                   对top用户的各种系统资源的排序。有助于快速识别系统上的性能不足的任务。

f                    进入top交互配置的屏幕。有助于为特定的任务安装top工具。

o                  使你能交互方式选择top的排序

 r                  重新制定优先级

 k                 关闭进程

z                    开启和关闭颜色/声道

#2: vmstat—系统活动,硬件和系统信息

vmstat命令报告进程,内存,页,块I/O,陷入和cpu活动 

 输出示例:

显示内存使用的slab信息

获取关于有效/无效内存页面的信息

 #3:w—查出谁登录系统和他们正在做什么

 w命令显示关于目前联机的用户,和他们进程

输出示例: 

 #4:uptime—显示系统从开始起运行了多长时间 

 uptime命令被用于察看服务器已经运行多长时间。当前时间,系统运行多长时间,目前有多少用户登录,过去1分钟,5分钟,15分钟系统的平均负载。 

 输出:

 1被视为最佳负载值。负载从一个系统到另一系统改变。对于单CPU系统1-3和SMP系统6-10的负载值是可以接受的。

 #5: ps—显示进程

 ps命令显示当前进程的快照。使用-A和-e选项选择所有进程:

# ps -A #ps -A

 输出示例:

PID TTY TIME CMD PID TTY TIME CMD

1 ? 00:00:02 init

2 ? 00:00:02 migration/0

 3 ? 00:00:01 ksoftirqd/0

4 ? 00:00:00 watchdog/0

 5 ? 00:00:00 migration/1

 6 ? 00:00:15 ksoftirqd/1

….

 …..

 …..

4881 ? 00:53:28 java

4885 tty1 00:00:00 mingetty

4891 tty5 00:00:00 mingetty

4893 ttyS1 00:00:00 agetty

12853 ? 00:00:00 cifsoplockd

12854 ? 00:00:00 cifsdnotifyd

14231 ? 00:10:34 lighttpd

14232 ? 00:00:00 php-cgi

54981 pts/0 00:00:00 vim

55465 ? 00:00:00 php-cgi

55546 ? 00:00:00 bind9-snmp-stat

 55704 pts/1 00:00:00 psps is just like top but provides more information.

 显示长格式输出

 #ps -AI

 打开另外完整模式(它会显示命令行传递给进程参数)

# ps -AIF

参看线程(LWP和NLWP)

 查看进程中的线程

 # ps -AlLm #ps -AILm

打印服务器上的所有进程

 # ps ax #ps ax # ps axu 

 打印A进程树

#ps -ejH

 #ps axjf

#pstree

 打印安全信息

#ps -eo euser,ruser,suser,fuse,f,comm,label

 #ps axZ

#ps -eM

 查看用户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=

 或

#pgrep lighttpd

#pgrep -u vivek php-cgi

显示进程号为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—内存使用

free命令显示系统的物理内存和swap内存的空闲和占用的总量,也是内核使用的缓存。

#free

 输出示例

total     userd     free      shared      buffers      cached 

Mem:  12302896  9739664  2563232     0    523124   5154740 

-/+  缓存/高速缓存:    4061800    8241096 

Swap: 1052248   0   1052248  

 #7: iostat—CPU平均负载,磁盘活动

 iostat命令显示CPU统计和设备的输入/输出统计,分区和网络文件系统(NFS)

# iostat

 输出示例:

Linux 2.6.18-128.1.14.eI5(www03.nixcraft.in) 06/26/2009

 avg-cpu: %user %nice %system %iowait %steal %idle

3.50 0.09 0.51 0.03 0.00 95.86

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn

sda 22.04 31.88 512.03 16193351 260102868

sda1 0.00 0.00 0.00 2166 180

sda2 22.04 31.87 512.03 16189010 260102688

sda3 0.00 0.00 0.00 1615 0

#8:sar—收集和显示系统活动

sar命令用于收集,显示和保存系统活动信息。查看网络计数器,输入:

#sar -n DEV | more

 从第24显示网络计数器:

#sar -n DEV -f /var/log/sa/sa24 | more

 你也能使用sar查看实时使用:

# sar 4 5 #sar 4 5

 输出示例:

Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/2009

06:45:12 PM CPU %user %nice %system %iowait %steal %idle

06:45:16 PM all 2.00 0.00 0.22 0.00 0.00 97.78

06:45:20 PM all 2.07 0.00 0.38 0.03 0.00 97.52

06:45:24 PM all 0.94 0.00 0.28 0.00 0.00 98.78

06:45:28 PM all 1.56 0.00 0.22 0.00 0.00 98.22

06:45:32 PM all 3.53 0.00 0.25 0.03 0.00 96.19

Average: all 2.02 0.00 0.27 0.01 0.00 97.70

 #9:mpstat—多处理器使用

mpstat命令显示每个可用处理器的活动,第一处理器是处理器0。mpstat -P ALL显示每个处理器平均占用CPU:

#mpstat -P ALL

 输出示例:

 Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/2009

06:48:11 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s

06:48:11 PM all 3.50 0.09 0.34 0.03 0.01 0.17 0.00 95.86

06:48:11 PM 0 3.44 0.08 0.31 0.02 0.00 0.12 0.00 96.04 1000.31

06:48:11 PM 1 3.10 0.08 0.32 0.09 0.02 0.11 0.00 96.28 34.93

06:48:11 PM 2 4.16 0.11 0.36 0.02 0.00 0.11 0.00 95.25 0.00

06:48:11 PM 3 3.77 0.11 0.38 0.03 0.01 0.24 0.00 95.46 44.80

06:48:11 PM 4 2.96 0.07 0.29 0.04 0.02 0.10 0.00 96.52 25.91

06:48:11 PM 6 4.00 0.10 0.34 0.01 0.00 0.13 0.00 95.42 3.75

06:48:11 PM 7 3.30 0.11 0.39 0.03 0.01 0.46 0.00 95.69 76.89

#10:pmap—进程内存使用

pmap命令显示进程的内存印象。使用这个命令查找出内存瓶颈的原因。

#pmap -d PID

 显示进程号为47394的内存信息,输入:

#pmap -d 47394

 输出示例:

47394:/usr/bin/php-cgi

 Address Kbytes Mode Offset Device Mapping

 0000000000400000 2584 r-x– 0000000000000000 008:00002 php-cgi

 0000000000886000 140 rw— 0000000000286000 008:00002 php-cgi

 00000000008a9000 52 rw— 00000000008a9000 000:00000 [ anon ]

0000000000aa8000 76 rw— 00000000002a8000 008:00002 php-cgi

000000000f678000 1980 rw— 000000000f678000 000:00000 [ anon ]

000000314a600000 112 r-x– 0000000000000000 008:00002 ld-2.5.so

000000314a81b000 4 r—- 000000000001b000 008:00002 ld-2.5.so

000000314a81c000 4 rw— 000000000001c000 008:00002 ld-2.5.so

000000314aa00000 1328 r-x– 0000000000000000 008:00002 libc-2.5.so

000000314ab4c000 2048 —– 000000000014c000 008:00002 libc-2.5.so

…..

…..

……

…..

 .. ..

 00002af8d48fd000 4 rw— 0000000000006000 008:00002 xsl.so

00002af8d490c000 40 r-x– 0000000000000000 008:00002 libnss_files-2.5.so

00002af8d4916000 2044 —– 000000000000a000 008:00002 libnss_files-2.5.so

00002af8d4b15000 4 r—- 0000000000009000 008:00002 libnss_files-2.5.so

00002af8d4b16000 4 rw— 000000000000a000 008:00002 libnss_files-2.5.so

00002af8d4b17000 768000 rw-s- 0000000000000000 000:00009 zero (deleted)

00007fffc95fe000 84 rw— 00007ffffffea000 000:00000 [ stack ]

ffffffffff600000 8192 —– 0000000000000000 000:00000 [ anon ]

 mapped: 933712K writeable/private: 4304K shared: 768000K

最好一行非常重要:

mapped:933712K 映射到文件的内存总量

writeable/private:4304K 私有地址空间的数量

shared:768000K 这个进程与其它共享地址空间的数量

#11和#12:nestat和ss—网络统计

netstat命令显示连接数,路由表,接口统计,伪连接,和组播成员。ss命令用于套接字统计。显示的信息与netstat相类似。看看下面的ss和netstat命令的资源:

ss:显示Linux TCP/UDP网络和套接字信息

使用netstat命令获取关于特殊IP地址的详细信息

#13:iptraf—网络实时统计 

 iptraf命令是交互式的多彩的IP局域网监控。它是一个机遇ncurses的IP局域网监控,产生各种网络统计包括TCP信息,UDP计数,ICMP和OSPF信息,以太网负载,节点统计,IP校验和错误,等等。它提供了以下信息易于阅读格式:

 通过TCP连接统计网络流量

 通过网络接口统计IP冲突

通过协议统计网络流量

通过TCP/UDP和包大小统计网络流量

通过第二层地址统计网络流量

Fig.02:一般端口统计:通过网络接口统计IP流量

Fig.03 通过TCP连接统计网络流量

#14:tcpdump—网络流量详细信息分析

 tcpdump是网络上的流量转发简单命令。然而,使用这个工具,你需要很好地理解TCP/IP协议。举个例子,显示DNS流量信息,输入:

#tcpdump -i eth1 ‘udp port 53′ 

 比如,显示所有从端口80进出的IPv4的HTTP包。打印不包含SYN和FIN,还有ACK-only的数据包,输入:

#tcpdump ‘tcp port 80 and (((ip[2:2]-((ip[0]&0xf)<<2))-((tcp[12]&0xf0)>>2))!=0)’

 显示所有到202.54.1.5的FTP会话,输入:

 #tcpdump -i eth1 ‘dst 202.54.1.5 and (port 21 or 20′

 显示所有到192.168.1.5的HTTP会话:

 #tcpdump -ni eth0 ‘dst 192.168.1.5 and tcp and port http’

使用wireshark查看文件的详细信息,输入:

#tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80

#15:strace—系统调用

 跟踪系统调用和信号。这对调试web服务器和其他服务器问题很有用。看看如何跟踪进程,以及如何做到跟踪进程.

#16:/Proc 文件系统—多种内核统计

/proc文件系统提供了关于多种硬件设备的详细信息和其他Linux内核信息。看看Linux内核/proc文档获取更多详细信息。通用的/proc例子:

#cat /proc/cpuinfo

#cat /proc/meminfo

#cat /proc/zoneinfo

#cat /proc/mounts

17#:Nagios—服务器和网络监控

Nagios是流行的开源计算机系统和网络监控应用软件。你可以轻松地监控你所有主机,网络设备和服务。当有出错发生时它你可以发送警报,重新恢复更好时也会发送警报。FAN的全称是“全自动Nagios”。FAN的目标是提供了Nagios安装,包括有Nagios社区提供的大多数工具。FAN提供了标准的ISO格式的光盘镜像,这样简单地安装Nagios服务器变得很简单。另外,版本中有很多绑定的工具,目的是改善Nagios的用户体验。

18#:Cacti—基于Web的监控工具 

 Cacti是完整的网络图形方案工具,旨在充分利用RRDTool的数据存储和图形功能。Cacti提供了快速轮询器,先进的图形模板,多种数据财经方法,和用户管理功能。所有这些包装在一个直观的容易使用的界面,能实现从局域网安装到由上百台设备的复杂网络使用。它提供了网络,CPU,内存,登录用户,Apache,DNS服务器以及更多的数据信息。看看如何在CentOS/RHELL下安装和配置Cacti网络图形工具。

#19:KDE 系统保护—实时系统报告和图形显示

KSysguard是网络启用KDE桌面任务和应用程序的系统监控。这个工具可以运行在SSH会话上。它提供了很多功能,比如监控本地和远程主机的C/S架构。图形前端使用所谓的感应器检索它显示的信息。感应器可以返回简单的值或更多复杂的信息,比如表。由一个或多个显示器对各个类型的信息。显示信息组织成可以分别保持和加载的工作表。因此,KSysguard不仅仅是简单任务的管理器,也是非常强大的控制大型服务器群的工具。

Fig.05 KDE系统保护 {图像信用:Wikipedia}

更进一步使用,查看KSysguard手册

#20:GNOME系统监控—实时系统报告和图形化显示

系统监控应用可以显示显示基本系统信息和监控系统进程,系统资源的占用,文件系统等。你也可以使用系统监控修改你系统的行为。即使没有和KDE系统保护一样强大,它提供了对新手有用的基本信息。

显示多种关于计算机硬件和软件的基本信息。

Linux内核版本

GNOME版本

硬件

已使用内存

进程和速度

系统状态

 当前空闲的磁盘空间

 进程

内存和SWAP空间

 网络使用情况

文件系统

列出所有加载的文件系统以及各个的基本信息

Fig.06 Gnome系统监控应用

奖励:附加工具

 更多工具:

 nmap-扫描服务器的开放端口

 lsof—列出开放文件,网络连接以及更多。

ntop是基于web的工具—ntop是查看网络使用的最好工具,与top命令用于进程管理相类似。比如,它是网络流量监控工具。你可以查看网络状态,UDP,TCP,DNS,HTTP和其他协议的流量分发。

 Conky—其他的很好的X Windows系统的监控工具。它配置灵活性好,能监控很多系统变量,包括CPU状态,内存,Swap空间,硬盘存储,临时空间,进程,网络接口,电池,系统消息,e-mail收件箱等。

GKrellM—它能监控CPU的状态,主内存,硬盘,网络接口,本地和远程的邮箱,和其他一些信息。

vnstat-vnStat是console口的网络流量监控工具。对选定的接口生成每月,每天,每小时的网络流量日志。

 htop—htop是top的增强版,交互式的进程查看器,能以树的形式查看进程列表。

mrt-mrt把tracerout和ping程序的功能结合在单一的网络诊断工具。

 我还遗漏了什么?请在评论中添加你喜欢的系统监控工具

Posted in :  Linux知识
Tags:  free,  GNOME,  iostat,  linux,  mpstat,  nagios,  netstat,  ps,  Sar,  ss,  strace,  tcpdump,  top,  uptime, vmstat,  w

你可能感兴趣的:(20个常用的linux系统管理工具)