《Linux系统管理员应该知道的20个系统监控工具.pdf》由会员分享,可在线阅读,更多相关《Linux系统管理员应该知道的20个系统监控工具.pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 Linux 系统管理员应该知道的 20 个系统监控工具 2010-01-29 17:04 原文:http:/www.cyberciti.biz/tips/top-linux-monitoring-tools.html 翻译:飞哥(http:/ Linux 服务器系统性能吗?尝试下面这些系统内置或附件的工具吧。大多数 Linux 发行版本都装备了大量的监控工具。这些工具提供了能用作取得相关信息和系统活动的量度指标。你能使用这些工具发现造成性能问题可能原因。此次讨论到的工具只是分析和调试服务器下面问题时最基本工具中的一部分。1.找出瓶颈 2.硬盘(存储)瓶颈 3.CPU 及内存瓶颈 4.网络瓶颈
2、#1:top#1:top-进程进程活动活动 top 提供一个当前运行系统实时动态的视图,也就是正在运行进程。在默认情况下,显示系统中 CPU 使用率最高的任务,并每 5 秒钟刷新一次。图 01.Linux top 命令 常用热键 热热键键 用途用途 t 显示摘要信息开关.m 显示内存信息开关.A 分类显示系统不同资源的使用大户。有助于快速识别系统中资源消耗多的任务。f 添加删除所要显示栏位.o 调整所要显示栏位的顺序.r 调整一个正在运行的进程 Nice 值.k 结束一个正在运行的进程.z 彩色/黑白显示开关 相关链接:How do I Find Out Linux CPU Utilizati
3、on?译者推荐链接:Linux 系统管理员必备工具系列之 top(原创)#2:vmstat#2:vmstat-系统活动、硬件及系统信息系统活动、硬件及系统信息 使用 vmstat 命令可以得到关于进程、内存、内存分页、堵塞 IO、traps 及 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 2540
4、988 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 52218
5、8 5130640 0 0 0 18 1253 1123 5 1 94 0 0 显示内存使用详细信息#vmstat-m 显示内存活动/不活动的信息#vmstat-a 相关链接:How do I find out Linux Resource utilization to detect system bottlenecks?译者推荐链接:Linux 系统管理员必备工具系列之 vmstat(原创)#3:w#3:w-显示谁已登录,他们正在做什么?显示谁已登录,他们正在做什么?w 命令显示系统当前用户及其运行进程的信息。#w username#w vivek 输出样例:17:58:47 up 5 da
6、ys,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#4:uptime uptime-告诉系统已经运行了多久?告诉系统已经运行了多久?uptime 命令过去只显示系统运行多久。现在,可以显示系统运行多久、当前有多少的用户登录、在过去的 1,5,15 分
7、钟里平均负载时多少。#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#5:ps ps-显示进程显示进程 ps 命令显示当前运行进程的快照。使用-A 或-e 显示所有进程。#ps-A 输出样例: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
8、 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 4886 tty2 00:00:00 mingetty 4887 tty3 00:00:00 mingetty 4888 tty4 00:00:00 mingetty 4891 tty5 00:00:00 mingetty 4892 tty6 00:00:00 mingetty 4893 ttyS1 00:00:00 agetty 12853?00:00:00 cifsoplockd 1
9、2854?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 ps ps 与 top 非常相似,但 ps 提供更多的信息。输出长格式#ps-Al 输出附加全格式(显示进程在执行时传入的参数)#ps-AlF 显示进程结构#ps-AlFH 在进程后显示线程#ps-AlLm 打印服务器上所有进程#ps ax#ps ax
10、u 打印进程树#ps-ejH#ps axjf#pstree 打印安全信息#ps-eo euser,ruser,suser,fuser,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,wc
11、han 只显示 Lighttpd 的进程 ID#ps-C lighttpd-o pid=或者#pgrep lighttpd 或者#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#6:free-内存使用情况内存使用情况 free 命令显示系统中空闲的、已用的物理内存及 swap 内存,及被内核使用的buffer。#free
12、 输出样例:total used free shared buffers cached Mem:12302896 9739664 2563232 0 523124 5154740-/+buffers/cache:4061800 8241096 Swap:1052248 0 1052248 相关链接:1.Linux Find Out Virtual Memory PAGESIZE 2.Linux Limit CPU Usage Per Process 3.How much RAM does my Ubuntu/Fedora Linux desktop PC have?#7:iostat#7:io
13、stat-CPUCPU 平均负载,硬盘活动平均负载,硬盘活动 iostat 命令可报告中央处理器(CPU)的统计信息,各种设备、分区及网络文件系统输入/输出的统计信息。#iostat 输出样例:Linux 2.6.18-128.1.14.el5(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
14、 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 相关链接:Linux Track NFS Directory/Disk I/O Stats#8:sar#8:sar-搜集和报告系统活动搜集和报告系统活动 sar 命令用来搜集、报告和储存系统活动信息。查看网路计数器,输入:#sar-n DEV|more 显示最近 24 小时网络计数器#sar-n DEV-f/var/log/sa/sa24|more 你亦可以用
15、 sar 显示实时情况#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.
16、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 相关链接:How to collect Linux system utilization data into a file#9:mpstat#9:mpstat-多处理器使用率多处理器使用率 mpstat 命令可以显示所有可用处理器的使用情况,处理器编号从 0 开始。mpstat-P ALL 显示每个处理器的平均使用率。#mpstat-P ALL 输出样例:Linux 2.6.18
17、-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 1218.04 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:4
18、8: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 5 3.26 0.08 0.28 0.03 0.01 0.10 0.00 96.23 14.98 06:48:11 PM 6 4.00 0.10 0.34 0.01 0.00 0.13 0.00 95.42 3.75 0
19、6:48:11 PM 7 3.30 0.11 0.39 0.03 0.01 0.46 0.00 95.69 76.89 相关链接:Linux display each multiple SMP CPU processors utilization individually.#10:pmap#10:pmap-进程的内存使用进程的内存使用 pmap 命令可以显示进程的内存映射,使用这个命令可以找出造成内存瓶颈的原因。#pmap-d PID 显示 PID 为 47394 进程的内存信息。#pmap-d 47394 输出样例:47394:/usr/bin/php-cgi Address Kbytes
20、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-000000000f67800
21、0 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
22、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 00002af8d4b160
23、00 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 最后一行非常重要:*ma
24、pped:933712K 内存映射所占空间大小 *writeable/private:4304K 私有地址空间大小 *shared:768000K 共享地址空间大小 相关链接:Linux find the memory used by a program/process using pmap command#11#11 和和#12:netstat#12:netstat 和和 ss ss-网络相关信息网络相关信息 netstat 可以显示网络链接、路由表信息、接口统计信息、伪装链接和多播成员(multicast memberships),ss 命令用来显示网络套接字信息,它允许显示类似netst
25、at 一样的信息。关于 ss 和 netstat 使用,可参考下列资源。相关链接:ss:Display Linux TCP/UDP Network and Socket Information Get Detailed Information About Particular IP address Connections Using netstat Command#13:iptraf#13:iptraf-网络实时信息网络实时信息 iptraf 是一个可交互式的 IP 网络监控工具。它可以生成多种网络统计信息包括:TCP 信息、UDP 数量、ICMP 和 OSPF 信息、以太网负载信息、节点状态
26、、IP 校验错误等。有下面几种信息格式:不同网络 TCP 链接传输量 不同网络接口 IP 传输量 不同协议网络传输量 不同 TCP/UDP 端口和不同包大小网络传输量 不同第二层地址网络传输量 图 02:一般接口信息:不同网络接口 IP 传输量 图 03:不同网络 TCP 链接传输量#14#14:tcpdumptcpdump:详细的网络流量分析:详细的网络流量分析 tcpdump 是一个简单网络流量转储工具,然而要使用好需要对 TCP/IP 协议非常熟悉。例如要显示关于 DNS 的网络流量,输入:#tcpdump-i eth1 udp port 53 显示所有进出 80 端口 IPv4 HTT
27、P 包,也就是只打印包含数据的包。例如:SYN、FIN 包和 ACK-only 包输入:#tcpdump tcp port 80 and(ip2:2-(ip0&0 xf)2)!=0)显示所有到的 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.tx
28、t src or dst port 80#15:strace#15:strace-系统调用系统调用 追踪系统调用和型号,这对于调试 Web 服务器和其他服务器非常有用。了解怎样追踪进程和他功能。#16:/proc#16:/proc 文件系统文件系统 -各种内核信息各种内核信息/proc 目录下文件提供了很多不同硬件设备和内核的详细信息。更多详情参见Linux kernel/proc。一般/proc 例如:#cat/proc/cpuinfo#cat/proc/meminfo#cat/proc/zoneinfo#cat/proc/mounts#17:Nagios#17:Nagios-服务器及网络监
29、控服务器及网络监控 Nagios 是一款非常流行的系统及网络监控软件。你可以轻松监控所有的主机、网络设备及服务。它能在发生故障和重新恢复后发送警讯。FAN 是Fully Automated Nagios的缩写。FAN 的目标就是由 Nagios 社群提供 Nagios 的安装。为了使安装 Nagios 服务器更加容易,FAN 提供一个标准 ISO 格式的光盘镜像。此发行版中还会包含一组增强用户使用体验的工具。#18:Cacti#18:Cacti-基于基于 WebWeb 的监控工具的监控工具 Cacti 是一套完成的网络图形化解决方案,基于 RRDTool 的资料存储和图形化功能。Cacti 提
30、供一个快速的轮询器、进阶的图形化模板、多种数据采集方法和用户管理功能。这些功能都拥有非常友好易用的界面,确保可以部署在一个包含数百台设备的复杂网络中。它提供关于网络、CPU、内存、已登录用户、Apache、DNS 等信息。关于怎样在 CentOS/RHEL 安装配置 Cacti,详见:http:/www.cyberciti.biz/faq/fedora-rhel-install-cacti-monitoring-rrd-software/#19:KDE S#19:KDE System Guardystem Guard KSysguard 是在 KDE 桌面下一个网络化的系统监控工具。这个工具可
31、以通过 SSH会话运行。它提供很多功能,例如可以监控本机和远程主机的客户端/服务器架构,前端图形界面使用所谓传感器得到信息并展现出来。传感器返回的可以是一个简单的数值或是一组表格的信息。针对不同的信息类型,提供一个或多个显示。这些显示被组织多个工作表中,可以工作表可以独体储存和加载。所以,KSysguard 不只是一个简单的任务管理器,还是一个可以控制多台服务器的强大工具。图 05:KDE System Guard 详细用法参见:the KSysguard handbook#20:Gnome System Monitor#20:Gnome System Monitor System Monitor 可以显示系统基本信息、监控系统进程、系统资源及文件系统使用率。你也可以使用 System Monitor 监控和修改系统行为。尽管没有 KDE System Guard 功能强大,但其提供的基本信息对于入门用户还是非常有用的。*显示关于计算机硬件和软件的各种基本信息。*Linux 内核版本*GNOME 版本*硬件*安装的内存*处理器及其速度*系统状态*当前可用的硬盘空间*进程*内存及交换空间*网络使用率*文件系统*所有挂载的文件系统及其基本信息 图 06:The Gnome System Monitor application