热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

原文连接:管理员必备的Linux系统监控工具#1:top-进程活动top提供一个当前运行系统实时动态的视图,也就是正在运行进程。在默认情况下,显示系统中CPU使用率最高的任

原文连接:

管理员必备的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,那么这台机器的性能有严重问题。


推荐阅读
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 原理:dismiss再弹出,把dialog设为全局对象。if(dialog!null&&dialog.isShowing()&&!(Activity.)isFinishing()) ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
author-avatar
手机用户2602897411
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有