用户工具

站点工具


02-工程实践:linux:系统监控工具

Linux监控工具

iostat

iostat 命令用来显示存储子系统的详细信息,通常用它来监控磁盘 I/O 的情况。要特别注意 iostat 统计结果中的 %iowait 值,太大了表明你的系统存储子系统性能低下。

[root@localhost ~]# iostat
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain)     2014年03月11日  _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.52    0.00    1.22    6.06    0.00   92.20

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda              12.31       819.69       204.27    1733622     432026
sdb               0.17         1.44         0.00       3044          8
dm-0             23.56       764.33        69.06    1616538     146064
dm-1             23.46        52.48       135.20     110992     285944

meminfo和free

Meminfo 可让你获取内存的详细信息,你可以使用 cat 和 grep 命令来显示 meminfo 信息:

cat /proc/meminfo

另外你可以使用 free 命令来显示动态的内存使用信息,free 只是给你大概的内存信息,而 meminfo 提供的信息更加详细。

mpstat

mpstat mpstat是MultiProcessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。

[root@localhost ~]# mpstat
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain)     2014年03月11日  _x86_64_        (1 CPU)

01时07分01秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
01时07分01秒  all    0.25    0.00    0.71    2.96    0.00    0.04    0.00    0.00   96.03

netstat

Netstat 和 ps 命令类似,是 Linux 管理员基本上每天都会用的工具,它显示了大量跟网络相关的信息,例如 socket 的使用、路由、接口、协议、网络等等,下面是一些常用的参数:

-a Show all socket information
-r Show routing information
-i Show network interface statistics
-s Show network protocol statistics

nmon

Nmon, 是 Nigel's Monitor 的缩写,是一个使用很普遍的开源工具,用以监控 Linux 系统的性能。Nmon 监控多个子系统的性能数据,例如处理器的使用率、内存使用率、队列、磁盘I/O统计、网络I/O统计、内存页处理和进程信息。Nmon 也提供了一个图形化的工具:

要运行 nmon,你可以在命令行中启动它,然后选择要监控的子系统,这些子系统都对应有一个快捷键,例如输入 c 可查看 CPU 信息,m用于查看内存,d用来查看磁盘信息等,你也可以使用 -f 命令将 nmon 的执行结果保存到一个 CSV 文件中,便于日后分析。

pmap

pmap 命令用来报告每个进程占用内存的详细情况,可用来看是否有进程超支了,该命令需要进程 id 作为参数

ps和pstree

ps 和 pstree 命令是 Linux 系统管理员最好的朋友,都可以用来列表正在运行的所有进程。ps 告诉你每个进程占用的内存和 CPU 处理时间,而 pstree 显示的信息没那么详细,但它以树形结构显示进程之间的依赖关系,包括子进程信息。一旦发现某个进程有问题,你可以使用 kill 来杀掉它。

[root@localhost ~]# ps
  PID TTY          TIME CMD
 2525 pts/2    00:00:00 bash
 2596 pts/2    00:00:00 ps
[root@localhost ~]# pstree
init─┬─auditd───{auditd}
     ├─crond
     ├─master─┬─pickup
     │        └─qmgr
     ├─memcached───5*[{memcached}]
     ├─6*[mingetty]
     ├─mysqld_safe───mysqld───{mysqld}
     ├─nginx───nginx
     ├─php-fpm───2*[php-fpm]
     ├─pptpd
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sshd─┬─2*[sshd───bash]
     │      └─sshd───bash───pstree
     └─udevd───2*[udevd]

sar

sar 程序是系统监控工具里的瑞士军刀。该程序包含三个工具:sar 用来显示数据,sa1 和 sa2 用来收集数据并保存。sar 可用来显示 CPU 使用率、内存页数据、网络 I/O 和传输统计、进程创建活动和磁盘设备的活动详情。sar 和 nmon 最大的不同就是 sar 跟适合用作长期的监控,而 nmon 可以让你快速的了解系统当前状态。

[root@localhost ~]# sar
Linux 2.6.32-431.el6.x86_64 (localhost.localdomain)     2014年03月11日  _x86_64_        (1 CPU)

00时10分02秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
00时20分01秒     all      0.00      0.00      0.23      0.19      0.00     99.58
00时30分01秒     all      0.02      0.00      0.39      0.35      0.00     99.24
00时40分01秒     all      0.00      0.00      0.32      0.03      0.00     99.65
00时50分01秒     all      0.02      0.00      0.39      0.30      0.00     99.30
01时00分02秒     all      0.01      0.00      0.27      0.09      0.00     99.63
01时10分01秒     all      0.01      0.00      0.34      0.16      0.00     99.50
平均时间:     all      0.01      0.00      0.32      0.18      0.00     99.48

strace

strace 经常被认为是程序员调试的工具,但不止如此。它可以记录进程进行系统调用的详情,因此它也是一个非常好的诊断工具,例如你可以使用它来找出某个程序正在打开某个配置文件。
Strace 也有一个缺陷,但它在跟踪某个进程时会让该进程的性能变得非常差,因此请谨慎使用。

tcpdump

Tcpdump 是一个简单、可靠的网络监控工具,用来做基本的协议分析,看看那些进程在使用网络以及如何使用网络。

top

top 命令显示当前的活动进程,默认它是按消耗 CPU 的厉害程度进行排序,每5秒钟刷新一次列表,你也可以选择不同的排序方式,例如 m 是按内存占用方式进行排序的快捷键。

uptime

uptime 命令告诉你这台服务器从开机启动到现在已经运行了多长时间了。同时也包含了从启动到现在服务器的平均负载情况。

vmstat

你可以使用 vmstat 来监控虚拟内存,一般 Linux 上的开发者喜欢使用虚拟内存来获得最佳的存储性能。该命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。

Nagios - 服务器及网络监控

Nagios 是一款非常流行的系统及网络监控软件。你可以轻松监控所有的主机、网络设备及服务。它能在发生故障和重新恢复后发送警讯。FAN是“Fully Automated Nagios”的缩写。FAN的目标就是由Nagios社群提供Nagios的安装。为了使安装Nagios服务器更加容易,FAN提供一个标准ISO格式的光盘镜像。此发行版中还会包含一组增强用户使用体验的工具。

Cacti - 基于Web的监控工具

Cacti是一套完成的网络图形化解决方案,基于RRDTool的资料存储和图形化功能。Cacti提供一个快速的轮询器、进阶的图形化模板、多种数据采集方法和用户管理功能。这些功能都拥有非常友好易用的界面,确保可以部署在一个包含数百台设备的复杂网络中。它提供关于网络、CPU、内存、已登录用户、Apache、DNS等信息。

相关阅读

02-工程实践/linux/系统监控工具.txt · 最后更改: 2020/04/07 06:34 由 annhe