Arpwatch被设计用来监控Linux上的以太网地址解析,系统自带的系统监控工具可以快速便捷地了解系统性能以及其它事项

、通过vmstat学习CPU和进程性能监控,他在一段时间内持续监控以太网活动并输出IP和MAC地址配对变动的日志

学学 linux 系统监控工具1,学学linux

充分利用好 linux
系统自带的系统监控工具可以快速便捷地了解系统性能以及其它事项,方便对系统进行分析和调试

学习文章:每个系统管理员都要知道的 30 个 Linux 系统监控工具
、通过vmstat学习CPU和进程性能监控

对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作。在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并运行是多么的不容易。基于此原因,我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每个Linux/Unix 系统管理员的工作。这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因。这个命令行工具列表提供了足够的工具,您可以挑选适用于您的监控场景的工具。

【1】top – 监控进程命令

命令 top 的实时监控图

1. 认识top

top (不同系统名字可能不一样,如 IBM 的 aix 中叫 topas )
命令显示系统的进程,提供实时动态视图(即对进程活动进行实时监控),默认情况下,top
命令显示 CPU 占用率最高的进程并每 5s 更新一次。

2. 主要作用
主要用来监控系统实时负载率、进程的资源占用率及其它各项系统状态属性是否正常。

3. 查看进程监控
终端输入命令 top

输出认识

  • 第一行:显示系统级的负载,平均负载有3个输出,分别代表在过去的1、5、15分钟时的平均负载。这部分的输出和命令
    uptime 一致。
  • 第二行:显示关于进程的一些大体信息比如当前的进程总数、运行或睡眠进程的数量。其中,标亮的进程列表中的
    S 列对应的值为 R 代表 running ,如果为 S 则为 sleeping
  • 第三行:显示 cpu 的一些负载信息,其中,特别是 %id%wa
    这两个指标尤为重要,很多的性能问题中,如果 %id 过低,%wa
    也很低,说明 cpu 使用率很高,可能有一些 sql 语句消耗了大量的 cpu
    资源,如果 %wa 很高的话,很可能是系统 IO 出现了问题。
  • 第四行:显示内存的使用情况,如果内存使用情况存在明显的异常,可以通过标亮的进程信息中查找
    %MEM 消耗比较高的进程。
  • 第五行:
    显示交换区的情况,如果内存足够或者系统负载不高,这个部分的数据没有什么大的变化。

Notte:关于 CPU 的状态信息参数说明
%Cpu(s): 9.5 us, 4.2 sy, 0.0 ni, 74.5 id, 11.7 wa, 0.0 hi, 0.1 si, 0.0
st

4. 常用快捷键
deepin 的 top 命令的 z 快捷键黑白切换模式

快捷键用法说明

  • t: 是否显示汇总信息
  • m: 是否显示内存信息
  • A:
    根据各种系统资源的利用率对进程进行排序,有助于快速识别系统中性能不佳的任务。
  • b: 打开或者关闭表中重要数字的加粗显示
  • c: 直接输入 top -c 或者(输入
    top,然后输入快捷键c)会切换显示进程的命令名或者是完成的命令行输入信息。
  • f: 进入 top 的交互式配置屏幕,用于根据特定的需求而设置 top 的显示。
  • o: 如果想定制显示 top 命令的输出顺序,比如默认是按照
    piduser的顺序来显示进程信息的,如果你想根据 userpid
    来显示,可以使用c
    快捷键。输入top,然后在显示屏幕上输入o,就会弹出一个交互界面。如果想先显示列
    USER,就输入 E,然后回车,结果就进行了重排。
  • r: 调整优先级(renice)
  • k: 杀掉进程(kill)
  • z: 切换彩色或黑白模式

1.Top-Linux进程监控

Linux下的Top命令是一个性能监控程序,许多系统管理员常常用它来监控Linux性能,在许多Linux或者类Unix操作系统里都有这个命令。Top命令用于按一定的顺序显示所有正在运行而且处于活动状态的实时进程,而且会定期更新显示结果。这条命令显示了CPU的使用率、内存使用率、交换内存使用大小、高速缓存使用大小、缓冲区使用大小,进程PID、所使用命令以及其他。它还可以显示正在运行进程的内存和CPU占用多的情况。对系统管理员来说,top命令式是一个非常有用的,它可用于监控系统并在需要的时候采取正确的处理动作。让我们看看实际中的top命令。

# top

Top命令举例
有关Top命令更多的例子,请阅读 :Linux下12个使用Top命令的例子。

【2】vmstat – 虚拟内存统计

1.认识 vmstat

vmstat [options] [delay [count]]

vmstat 命令是最常见的 Linux/Unix
监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率、内存使用、虚拟内存交换情况以及
IO 读写情况。

vmstat 命令的 man

2. 主要功能
vmstat 命令报告有关进程、内存、分页、块 IO、中断和 CPU 活动等信息。

3. 查看内存统计

vmstat 监控

Note:关于参数说明
procs ———–memory———- —swap– —–io—- -system– ——cpu—–
Procs
r b swpd free buff cache si so bi bo in cs us sy id wa st

  1. r:
    处于运行队列中的内核线程数目(进程数),这个值也可以判断是否需要增加CPU。(长期大于1)
  2. b:置于等待队列(等待资源、等待输入/输出)的内核线程数目;
    处于block 队列中不可中断的进程数
    Memory
  3. swpd: 可用的虚拟交换内存,如果 swpd 的值不为 0,但是 SISO
    的值长期为0,这种情况不会影响系统性能
  4. free:空闲物理内存大小
  5. buff:用作缓冲的内存大小
  6. cache:用作缓存的内存大小,如果 cache 值很大的时候,说明
    cache 处的文件数多,如果频繁访问到的文件都能被 cache
    处,那么磁盘的读IO bi会非常小。
    Swap
  7. si: 从磁盘到内存的交换页数目 (单位/S)
    8.so: 从交换内存到磁盘的交换页数目(单位/S)
    IO
    9.bi: 接收到块设备的块数(块/秒)
    10.bo: 发送到块设备的块数(块/秒)
    System
    11.in: 每秒中断数,包括时钟中断
    12.cs: 每秒上下文切换数
    CPU
    13.us:
    所有进程用户态消耗CPU的时间百分比。us值比较高时,说明进程用户态消耗的CPU时间多,如果长期大于50%,需要考虑优化应用程序
    14.sy: 内核系统进程执行时间百分比(system time)。sy
    值比较高时,说明进程内核态消耗的 CPU时间多;如果 us+sy 超过 80%
    ,就表明CPU资源存在不足。
    15.id: CPU 空闲时间百分比
  8. wa: IO等待时间百分比
  9. st: 虚拟机占用 CPU 时间百分比。如果 wa 值超过 20%,说明 IO
    等待严重。st 仅在 Linux 系统 vmstat 中显示

4. 选项(options)

选项用法说明

  • a:显示活动和非活动的页
  • f:显示启动后创建的进程总数
  • m:显示 slab 信息
  • n:头信息仅显示一次
  • s:以表格方式显示事件计数器和内存状态
  • d:显示磁盘相关统计信息
  • p:显示指定磁盘分区统计信息
  • S:输出信息的单位。参数有 k 、K 、m 、M
    ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024
    bytes)
  • V:显示 vmstat 版本信息。

5.参数

  • delay:刷新时间间隔。如果不指定,只显示一条结果。
  • count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。

6.使用实例

实例一:一般 vmstat
通过两个数字参数来完成,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,

vmstat 2 1

实际上,在应用过程中,常常习惯在一段时间内一直监控,不想监控直接结束
vmstat

实例二:显示活跃和非活跃内存

vmstat -a 2 3

使用 -a 选项显示活跃和非活跃内存时,所显示的内容增加 inact
active

字段补充说明
Memory(内存):
inact: 非活跃内存大小(当使用 -a 选项时显示)
active: 活跃的内存大小(当使用 -a 选项时显示)

实例三:查看系统已经 fork 了多少次

vmstat -f

查看评论

linux 系统监控工具1,学学linux 充分利用好
linux
系统自带的系统监控工具可以快速便捷地了解系统性能以及其它事项,方便对系统进行…

2. VmStat – 虚拟内存统计

Linux 的 VmStat 命令用于显示虚拟内存、内核线程、磁盘、系统进程、I/O 块、中断、CPU 活动 等的统计信息。缺省情况下, vmstat 命令在 Linux 系统下不可用,你需要安装一个包含了 vmstat 程序的 sysstat 软件包。命令格式的常见用法是:

# vmstatprocs ———–memory———- —swap– —–io—- –system– —–cpu—– r b swpd free inact active si so bi bo in cs us sy id wa st 1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0

更多的 vmstat 例子,请阅读 : 6 Linux 下的 Vmstat 命令实例

3.Lsof-列出打开的文件

在许多Linux或者类Unix系统里都有lsof命令,它常用于以列表的形式显示所有打开的文件和进程。打开的文件包括磁盘文件、网络套接字、管道、设备和进程。使用这条命令的主要情形之一就是在无法挂载磁盘和显示正在使用或者打开某个文件的错误信息的时候。使用这条命令,你可以很容易地看到正在使用哪个文件。这条命令最常用的格式如下:

# lsofCOMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEinit 1 root cwd DIR 104,2 4096 2 /init 1 root rtd DIR 104,2 4096 2 /init 1 root txt REG 104,2 38652 17710339 /sbin/initinit 1 root mem REG 104,2 129900 196453 /lib/ld-2.5.soinit 1 root mem REG 104,2 1693812 196454 /lib/libc-2.5.soinit 1 root mem REG 104,2 20668 196479 /lib/libdl-2.5.soinit 1 root mem REG 104,2 245376 196419 /lib/libsepol.so.1init 1 root mem REG 104,2 93508 196431 /lib/libselinux.so.1init 1 root 10u FIFO 0,17 953 /dev/initctl

有关lsof命令的用法和例子的更多信息,请参考: Linux下10个使用lsof命令的例子。

4.Tcpdump-网络包分析器

Tcpdump是最广泛使用的网络包分析器或者包监控程序之一,它用于捕捉或者过滤网络上指定接口上接收或者传输的TCP/IP包。它还有一个选项用于把捕捉到的包保存到文件里,以便以后进行分析。在几乎所有主要的Linux发布里,tcpdump都可以使用。

# tcpdump -i eth0tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 964822:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 964822:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347

要想获得更多有关tcpdump用法的信息,请参阅: Linux下12个使用Tcpdump命令的例子。

5.Netstat-网络状态统计

Netstat是一个用于监控进出网络的包和网络接口统计的命令行工具。它是一个非常有用的工具,系统管理员可以用来监控网络性能,定位并解决网络相关问题。

# netstat -a | moreActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 *:mysql *:* LISTENtcp 0 0 *:sunrpc *:* LISTENtcp 0 0 *:realm-rusd *:* LISTENtcp 0 0 *:ftp *:* LISTENtcp 0 0 localhost.localdomain:ipp *:* LISTENtcp 0 0 localhost.localdomain:smtp *:* LISTENtcp 0 0 localhost.localdomain:smtp localhost.localdomain:42709 TIME_WAITtcp 0 0 localhost.localdomain:smtp localhost.localdomain:42710 TIME_WAITtcp 0 0 *:http *:* LISTENtcp 0 0 *:ssh *:* LISTENtcp 0 0 *:https *:* LISTEN

有关Netstat更多的例子,请参阅: Linux下20个使用Netstat命令的例子。

6. Htop – Linux进程监控

Htop 是一个非常高级的交互式的实时linux进程监控工具。 它和top命令十分相似,但是它具有更丰富的特性,例如用户可以友好地管理进程,快捷键,垂直和水平方式显示进程等等。 Htop是一个第三方工具,它不包含在linux系统中,你需要使用YUM包管理工具去安装它。 关于安装的更多信息,请阅读下文.

# htop

Htop 命令示例截图

对于Htop的安装,请读 : 在Linux安装Htop(Linux进程监控)

7.Iotop-监控Linux磁盘I/O

Iotop命令同样也非常类似于top命令和Htop程序,不过它具有监控并显示实时磁盘I/O和进程的统计功能。在查找具体进程和大量使用磁盘读写进程的时候,这个工具就非常有用。

# iotop

Iotop命令举例的截图
有关如何安装和使用iotop的信息,请阅读: 在Linux下安装Iotop。

8.Iostat-输入/输出统计

Iostat是一个用于收集显示系统存储设备输入和输出状态统计的简单工具。这个工具常常用来追踪存储设备的性能问题,其中存储设备包括设备、本地磁盘,以及诸如使用NFS等的远端磁盘。

# iostatLinux 2.6.18-238.9.1.el5 (tecmint.com) 09/13/2012avg-cpu: %user %nice %system %iowait %steal %idle 2.60 3.65 1.04 4.29 0.00 88.42Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtncciss/c0d0 17.79 545.80 256.52 855159769 401914750cciss/c0d0p1 0.00 0.00 0.00 5459 3518cciss/c0d0p2 16.45 533.97 245.18 836631746 384153384cciss/c0d0p3 0.63 5.58 3.97 8737650 6215544cciss/c0d0p4 0.00 0.00 0.00 8 0cciss/c0d0p5 0.63 3.79 5.03 5936778 7882528cciss/c0d0p6 0.08 2.46 2.34 3847771 3659776

有关iostat用法和举例的更多信息,请访问: Linux下6个使用iostat命令的例子。