管理员必备的Linux系统监控工具

时间:2023-03-08 22:59:57
管理员必备的Linux系统监控工具

管理员必备的Linux系统监控工具

#1: top - 进程活动

  top提供一个当前运行系统实时动态的视图,

  也就是正在运行进程。在默认情况下,显示系统

  中CPU使用率最高的任务,并每5秒钟刷新一次。

  #2: vmstat -系统活动、硬件及系统信息

  使用vmstat命令可以得到关于进程、内存、

  内存分页、堵塞IO、traps及CPU活动的信息。

  #3: w - 显示谁已登录,他们正在做什么?

  w命令显示系统当前用户及其运行进程的信息。

  #4:uptime - 告诉系统已经运行了多久?

  uptime命令过去只显示系统运行多久。现在,

  可以显示系统运行多久、当前有多少的用户登录、

  在过去的1,5,15分钟里平均负载时多少。

  #5:ps - 显示进程

  ps命令显示当前运行进程的快照。使用-A或-

  e 显示所有进程。ps 与 top 非常相似,但ps 提

  供更多的信息。

  #6: free - 内存使用情况

  free命令显示系统中空闲的、已用的物理内存

  及swap内存,及被内核使用的buffer。

  #7: iostat - CPU平均负载,硬盘活动

  iostat命令可报告*处理器(CPU)的统计

  信息,各种设备、分区及网络文件系统输入/输出

  的统计信息。

  #8: sar - 搜集和报告系统活动

  sar命令用来搜集、报告和储存系统活动信息。

  #9:mpstat - 多处理器使用率

  mpstat命令可以显示所有可用处理器的使用

  情况,处理器编号从 0开始。mpstat -P ALL 显

  示每个处理器的平均使用率。

  #10: pmap - 进程的内存使用

  pmap命令可以显示进程的内存映射,使用这

  个命令可以找出造成内存瓶颈的原因。

  #11:netstat - 网络相关信息

  netstat 可以显示网络链接、路由表信息、接

  口统计信息、伪装链接和多播成员(multicast

  memberships)

  #12:ss - 网络相关信息

  ss命令用来显示网络套接字信息,它允许显示

  类似netstat一样的信息。

  #13: iptraf - 网络实时信息

  iptraf是一个可交互式的IP网络监控工具。它

  可以生成多种网络统计信息包括:TCP 信息、

  UDP数量、ICMP和OSPF信息、以太网负载信

  息、节点状态、IP校验错误等。

  #14:tcpdump:详细的网络流量分析

  tcpdump 是一个简单网络流量转储工具,然

  而要使用好需要对TCP/IP协议非常熟悉。

  #15:strace - 系统调用

  追踪系统调用和型号,这对于调试 Web服务

  器和其他服务器非常有用。了解怎样追踪进程和

  他功能。

  #16:/proc文件系统 - 各种内核信息

  /proc目录下文件提供了很多不同硬件设备和

  内核的详细信息。

  #17:Nagios - 服务器及网络监控

  Nagios 是一款非常流行的系统及网络监控软

  件。你可以轻松监控所有的主机、网络设备及服

  务。它能在发生故障和重新恢复后发送警讯。

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

  Cacti是一套完成的网络图形化解决方案,基

  于RRDTool的资料存储和图形化功能。Cacti提

  供一个快速的轮询器、进阶的图形化模板、多种

  数据采集方法和用户管理功能。这些功能都拥有

  非常友好易用的界面,确保可以部署在一个包含

  数百台设备的复杂网络中。它提供关于网络

  CPU、内存、已登录用户、Apache、DNS等信

  息。

  #19:KDE System Guard

  KSysguard 是在 KDE 桌面下一个网络化的系

  统监控工具。这个工具可以通过SSH会话运行。

  它提供很多功能,例如可以监控本机和远程主机

  的客户端/服务器架构,前端图形界面使用所谓传

  感器得到信息并展现出来。传感器返回的可以是

  一个简单的数值或是一组表格的信息。针对不同

  的信息类型,提供一个或多个显示。这些显示被

  组织多个工作表中,可以工作表可以独体储存和

  加载。所以,KSysguard不只是一个简单的任务

  管理器,还是一个可以控制多台服务器的强大工

  具。

  #20:Gnome System Monitor

  System Monitor可以显示系统基本信息、监

  控系统进程、系统资源及文件系统使用率。你也

  可以使用System Monitor监控和修改系统行为。

  尽管没有KDE System Guard功能强大,但其提

  供的基本信息对于入门用户还是非常有用的。

  Linux常用监控命令简介 - top

  指令介绍

  -b : 批次模式运行。

  -c : 显示执行任务的命令行。

  -d : 设定延迟时间

  -h : 帮助

  -H : 显示线程。将显示所有进程产生的线程。

  -i : 显示空闲的进程。

  -n : 执行次数。一般与-b搭配使用

  -u : 监控指定用户相关进程

  -U : 监控指定用户相关进程

  -p : 监控指定的进程。

  -s : 安全模式操作

  -S : 累计时间模式

  -v : 显示top版本,然后退出。

  -M : 自动显示内存单位(k/M/G)

  top作为日常管理工作中最常用也是最重要的

  Linux 系统监控工具之一,可以动态观察系统进

  程状况。top命令显示的项目很多,默认值是每

  5秒更新一次,按q键可以退出。显示的各项目

  为:

  输出数值解读 为:

  15:06:57 up 129 days, 19:03, 5 users, load average: 1.21, 1.20, 1.25

  uptime 该项显示的是系统启动时间、已经运行的时间和三个平均负载值(最近1秒,5秒,15秒的

  负载值)。

  222 processes: 219 sleeping, 2 running, 1 zombie, 0 stopped

  processes 自最近一次刷新以来的运行进程总数。这些进程被分为正在运行的,休眠的,停止的。

  CPU states: cpu user nice system irq softirq iowait idle

   total 0.9% 0.0% 27.4% 0.0% 0.0% 0.2% 71.2%

   cpu00 1.9% 0.0% 19.4% 0.0% 0.0% 0.0% 78.6%

   cpu01 0.0% 0.0% 33.0% 0.0% 0.0% 0.0% 66.9%

   cpu02 1.9% 0.0% 22.3% 0.0% 0.0% 0.9% 74.7%

   cpu03 0.0% 0.0% 35.2% 0.0% 0.0% 0.0% 64.7%

  CPU states 显示用户模式,系统模式,优先级进程(只有优先级为负的列入考虑)和闲置等各种

  情况所占用CPU时间的百分比。优先级进程所消耗的时间也被列入到用户和系统的时间中,所以总

  的百分比将大于100%。

  Mem: 16214336k av, 15682832k used, 531504k free, 0k shrd, 215016k buff

   10896844k actv, 3379680k in_d, 446432k in_c

  Mem 内存使用情况统计,其中包括总的可用内存,空闲内存,已用内存,共享内存和缓存所占内存

  的情况。

  Swap: 10482404k av, 0k used, 10482404k free 14856500k cached

  Swap 交换空间统计,其中包括总的交换空间,可用交换空间,已用交换空间。

  PID USER PRI NI SIZE rss SHARE STAT %CPU %MEM TIME CPU COMMAND

  27869 root 25 0 460M 460M 455M R 25.0 2.9 12559m 1 vmware-vmx

  31819 root 16 0 6016 6016 5048 S 1.6 0.0 17573m 2 magicdev

  27837 root 15 -10 460M 460M 455M S < 0.7 2.9 1328m 0 vmware-vmx

  27868 root 15 -10 460M 460M 455M S < 0.3 2.9 644:35 3 vmware-vmx

  PID 每个进程的ID。PPID 每个进程的父进程ID。UID 每个进程所有者的UID 。

  USER 每个进程所有者的用户名。

  PRI 每个进程的优先级别。

  NI 该进程的优先级值。

  SIZE 该进程的代码大小加上数据大小再加上堆栈空间大小的总数。单位是KB。

  TSIZE 该进程的代码大小。对于内核进程这是一个很奇怪的值。

  DSIZE 数据和堆栈的大小。

  TRS 文本驻留大小。

  D 被标记为“不干净”的页项目。

  LIB 使用的库页的大小。对于ELF进程没有作用。

  RES 该进程占用的物理内存的总数量,单位是KB。

  SHARE 该进程使用共享内存的数量。

  STAT 该进程的状态。S=休眠;D=不可中断的休眠;R=运行;Z=僵死;T=停止或跟踪。

  TIME 该进程自启动以来所占用的总CPU时间。如果进入的是累计模式,那么该时间还包括这个进程

  子进程所占用的时间。且标题会变成CTIME。

  %CPU 该进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。

  %MEM 该进程占用的物理内存占总内存的百分比。

  COMMAND 该进程的命令名称,如果一行显示不下,则会进行截取。内存中的进程会有一个完整的命

  令行。

  :Linux常用监控命令简介 – vmstat,ps等

  vmstat [-a] [-n] [delay [ count]]

  vmstat [-f] [-s] [-m]

  vmstat [-S unit]

  vmstat [-d]

  vmstat [-p disk partition]

  vmstat [-V]

  指令介绍

  -a:显示活跃和非活跃内存

  -f:显示从系统启动至今的fork数量 。

  -m:显示slabinfo

  -n:只在开始时显示一次各字段名称。

  -s:显示内存相关统计信息及多种系统活动数。

  delay:刷新时间间隔。如果不指定,只显示

  一条结果。

  count:刷新次数。如果不指定刷新次数,但

  指定了刷新时间间隔,这时刷新次数为无穷。

  -d:显示磁盘相关统计信息。

  -p:显示指定磁盘分区统计信息

  -S:使用指定单位显示。参数有 k , K, m, M,

  分别代表 1000, 1024, 1000000, 1048576

  字节。默认单位为K(1024 bytes)

  -V:显示vmstat版本信息。

  方便用法推荐

  每2秒输出一条结果

  vmstat 2

  显示活跃和非活跃内存

  vmstat -a 2

  输出数值解读

  (Procs)r: 运行队列中进程数量

  (Procs)b: 等待IO的进程数量

  (Memory)swpd: 使用虚拟内存大小

  (Memory)free: 可用内存大小

  (Memory)buff: 用作缓冲的内存大小

  (Memory)cache: 用作缓存的内存大小

  (Swap)si: 每秒从交换区写到内存的大小

  (Swap)so: 每秒写入交换区的内存大小

  (IO)bi: 每秒读取的块数

  (IO)bo: 每秒写入的块数

  (System)in: 每秒中断数,包括时钟中断。

  (System)cs: 每秒上下文切换数。

  (CPU)us: 用户进程执行时间(user time)

  (CPU)sy: 系统进程执行时间(system time)

  (CPU)id: 空闲时间(包括IO等待时间)

  (CPU)wa: 等待IO时间

  ps 命令

  ps [options]

  指令介绍

  -e 显示所有进程。

  -f 全格式。

  -h 不显示标题。

  -l 长格式。

  -w 宽输出。

  a 显示终端上的所有进程,包括其他用户的

  r 只显示正在运行的进程。

  x 显示没有控制终端的进程。

  方便用法推荐

  查看使用Vivek用户名运行的进程

  # ps -U vivek -u vivek u

  只显示Lighttpd的进程ID

  # ps -C lighttpd -o pid=

  找出消耗内存最多的前10名进程

  # ps -auxf | sort -nr -k 4 | head -10

  找出使用CPU最多的前10名进程

  # ps -auxf | sort -nr -k 3 | head -10

  free 命令

  free [-b|-k|-m][-o][-s delay][-t][-V]

  指令介绍

  -b 以Byte为单位显示内存使用情况。

  -k 以KB为单位显示内存使用情况。

  -m 以MB为单位显示内存使用情况。

  -o 不显示缓冲区调节列。

  -s<间隔秒数> 持续观察内存使用状况。

  -t 显示内存总和列。

  -V 显示版本信息。

  输出数值解读

  total used free shared buffers cached

  Mem: 3266180 3250004 16176 0 110652

  2668236

  -/+ buffers/cache: 471116 2795064

  Swap: 2048276 80160 1968116

  total:总计物理内存的大小。

  used:已使用多大。

  free:可用有多少。

  Shared:多个进程共享的内存总额。

  Buffers/cached:磁盘缓存的大小。

  used:已使用多大。

  free:可用有多少。

  uptime 命令

  uptime

  uptime [-V]

  输出数值解读

  18:02:41 up 41 days, 23:42, 1 user,

  load average: 0.00, 0.00, 0.00

  10:19:04:系统当前时间

  up 257 days, 18:56:主机已运行时间,时间越

  大,说明你的机器越稳定。

  12 user:用户连接数,是总连接数而不是用户

  数

  load average:系统平均负载,统计最近1, 5,

  15分钟的系统平均负载

  如果每个CPU内核的当前活动进程数不大于3的

  话,那么系统的性能是良好的。如果每个CPU内

  核的任务数大于5,那么这台机器的性能有严重

  问题。

标签: linux