CPU、内存、进程实时监控

top

  • 能够实时监控系统运行状态,并且可以按照CPU、内存等进行排序。

top参数

  • -h :帮助
  • -p :监控指定进程,监控多个进程ID之间用 , 分割

top任务区命令

  • M :按内存使用率排序
  • P :按CPU使用率排序
  • z:彩色/黑白显示

top中的load average

  • 系统的运行队列的平均利用率,也可以认为是可运行进程的平均数。三个值分别表示在最后的1分钟、5分钟、15分钟的平局负载值。load average负载大小应根据CPU核数进行换算。

vmstat

  • 可以监控操作系统的进程状态、内存、虚拟内存、磁盘IO、CPU的信息。

vmstat参数

  • -s :使用指定单位显示。参数有k、K、m、M,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

vmstat语法

  • vmstat 1 2
  • 第一个参数表示时间间隔
  • 第二个参数表示显示次数

free

  • 能够监控系统内存使用状态。其中,total:总计物理内存的大小;Used:已使用大小;Free:剩余可用大小;Shared:多个进程共享的内存总额;buffers/cached:磁盘缓存的大小。

free参数

  • -h :以更易理解的方式显示

mpstat

  • 特点:可以查看多核心CPU中每个计算核心的统计数据。
  • 非系统自带命令,可以yum install -y sysstat

mpstat语法

  • mpstat [-P{|ALL}] [internal [count]]
    mpstat 1 5 :表示间隔1秒,显示5次信息

mpstat参数

  • -P{|ALL} :表示监控具体哪个CPU,CPU在[0,总核心数]中取值
  • internal :采样间隔时间
  • count :采样的次数,count只能和delay一起使用

mpstat注意点

  • 当没有参数时,mpstat则显示系统启动以来所有信息平均值。有internal时,第一行信息显示系统自启动以来的平均值。从第二行开始显示internal间隔时间内的平均信息。

监控指标说明

  • %usr :用户使用时间
  • %sys :系统使用时间
  • %idle :空闲的时间

网络实时监控

netstat

  • 用于显示本机网络链接、运行端口、路由表等信息。

netstat参数

  • -n :拒绝显示别名,能够显示数字的全部转化为数字。
  • -l :仅列出有在Listen(监听)的服务状态。
  • -p :显示建立相关链接的程序名。
  • -t(tcp) :仅显示tcp相关的选项。
  • -u(udp):仅显示udp相关的选项。
  • -i :显示自动匹配接口的信息。
  • -c :每隔一个固定时间,执行netstat命令。 不写-c参数直接写数字也可以识别。

netstat -i 监控指标说明

  • Iface :网络设备接口名称
  • MTU :最大传输单元,单位byte
  • RX-OK :准确接收数据包数量
  • TX-OK :准确发送数据包数量
  • RX-ERR :接收错误数据包数量
  • TX-ERR :发送错误数据包数量
  • RX-DRP :接收丢包数量
  • TX-DRP :发送丢包数量
  • RX-OVR :进入Ring Buffer 后因其他原因(如内存不足)导致的丢包数
  • TX-OVR :Ring Buffer 溢出导致的丢包数

磁盘实时监控

iostat

  • iostat是对系统磁盘IO操作进行监控,它主要输出磁盘读写操作的统计信息,同时给出cpu使用情况。

iostat参数

  • -x device 输出指定要统计的磁盘设备名称,默认为所有磁盘设备。

iostat监控指标说明

  • tps :一次IO请求数据大小

iostat -x 监控指标说明

  • rrqm/s : 每秒合并读操作的次数
  • wrqm/s: 每秒合并写操作的次数
  • r/s :每秒读操作的次数
  • w/s : 每秒写操作的次数
  • rMB/s :每秒读取的MB字节数
  • wMB/s: 每秒写入的MB字节数
  • %util: 工作时间或者繁忙时间占总时间的百分比

万能的sar命令

sar

  • (System Activity Reporter 系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统活动进行报告。

sar的性能监控范围

  • 文件读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。

sar语法

  • sar [options] [-A] [-o file] t [n]

sar语法说明

  • t 和 n 两个参数组合起来定义采样间隔和次数,t为采样间隔,n为采样次数;-o file 表示将命令结果以二进制格式存放到指定文件中。

sar参数

  • -A :所有报告的总和
  • -u :CPU利用率
  • -v :进程、节点、文件和锁表状态
  • -r :显示系统内存使用情况
  • -B :内存分页情况
  • -b :缓冲区(buffer)使用情况

Linux下的进程追踪命令

strace

  • strace是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的。

strace参数

  • -tt:在每行输出的前面,显示毫秒级别的时间
  • -f:跟踪目标进程,以及目标进程创建的所有子进程
  • -e:过滤要跟踪的事件和跟踪行为,比如指定要跟踪的系统调用名称
  • -e trace=file 跟踪和文件访问相关的调用(参数中有文件名)
  • -e trace=process 和进程管理相关的调用,比如fork/exec/exit_group
  • -e trace=network 和网络通信相关的调用,比如socket/sendto/connect
  • -e trace=signal 信号发送和处理相关,比如kill/sigaction
  • -e trace=desc 和文件描述符相关,比如write/read/select/epoll等
  • -e trace=ipc 进程通信相关,比如shmget等
  • -o:把 strace 的输出单独写到指定的文件
  • -p:指定要跟踪的进程 pid,要同时跟踪多个 pid,重复多次 -p 选项即可
  • -T:显示每次系统调用所花费的时间
  • -c :统计系统调用情况和其所花的时间
  • -s:当系统调用的某个参数是字符串时,最多输出指定长度的内容,默认是 32 个字节
  • -v:对于某些相关调用,把完整的环境变量,文件 stat 结构等打出来。
     

strace语法

strace  -tt  -f  -e  trace=process  ./test_exit

Linux监控工具

nmon

  • nmon能在系统运行过程中实时捕捉系统资源使用情况,并且能输出结果到文件中,通过nmon_analyzer工具产生数据文件与图形化结果。

nmon下载与安装

nmon用法

  • -f 必选参数,并且必须放在第一个,就是输出文件的意思,文件名默认为hostname_data_time.nmon
  • -F 自定义文件名称输出
  • -s 采集频率
  • -c 采集次数
  • -t 输出最消耗资源的进程数据
  • -h 查看帮助

nmon语法

nmon  -f  -F  demo.nmon  -s  1  -c  10  -t

nmon的结果分析

  • nmon_analyzer的作用就是分析nmon数据采集后的结果,需要借助excel的宏。WPS默认没有安装宏,需要下载插件。

nmon_analyzer下载

https://community.ibm.com/community/user/legacy?lang=en#!/wiki/Power+Systems/page/nmon_analyser

nmon_analyzer重点sheet页

  • SYS_SUMM :系统汇总页,包含cpu占有率变化情况、磁盘IO变化情况
  • AAA :关于操作系统及nmon本身的一些信息
  • CPUnn :执行时间内CPU占用情况
  • CPU_ALL :所有CPU概述,显示所有CPU平均占用情况
  • CPU_SUMM :每一个CPU在执行时间内占用情况
  • DGBUSY :磁盘组每个hdisk设备平均占用情况
  • DGREAD :每个磁盘组平均读情况
  • DGWRITE :每个磁盘组平均写情况
  • DGSIZE :每个磁盘组平均读写情况
  • DGXFER :每个磁盘组每秒I/O操作
  • MEM :内存使用、空闲大小
  • NET :每个网络适配器的数据传输率(KB/s)

Linux定时任务

crontab

  • Linux系统是由cron这个系统服务来控制的。Linux系统提供了使用者控制计划任务的命令。

crontab的启动

  • /sbin/service crond status 查看定时任务是否启动
  • start/stop/restart 启动服务/停止服务/重启服务
  • reload 重新载入配置(重新读取设置的定时任务)

crontab服务权限

  • crontab权限管理存储在cron.allow文件与cron.deny文件中。如果没有可创建在etc目录下
  • cron.allow文件存储允许哪些用户使用crontab
  • cron.deny文件存储不允许哪些用户使用crontab

crontab使用场景说明

  • 当两个文件都不存在时,只允许root用户使用crontab
  • 2个文件都存在并且用户在2个文件中都有时,以cron.allow文件为准

crontab使用

  • 命令:crontab -e 进入编辑页面
  • crontab -l :查看计划任务列表

crontab的编辑格式

  • 基本格式:minute hour day month week command
  • 对应单位:分 时 日 月 周 命令

crontab时间单位说明

  • 第一列表示分钟00~59
  • 第二列表示小时00~23
  • 第三列表示日期01~31
  • 第四列表示月份01~12
  • 第五列表示星期0~6(0表示星期天)
  • 每(分/时/日/月/星期)用* 或 */1 表示
  • - 代表从取值范围
  • , 分割几个不同的数字

crontab语法

1.每分钟定时执行一次规则:每1分钟执行: */1 * * * 或者每5分钟执行: */5 * * * *

2.每小时定时执行一次规则:每小时执行: 0 * * * *或者0 */1 * * *每天上午7点执行:0 7 * * *每天上午7点10分执行:10 7 * * *

3.每天定时执行一次规则:每天执行 0 0 * * *

4.每周定时执行一次规则:每周执行 0 0 * * 0

5.每月定时执行一次规则:每月执行 0 0 1 * *

6.每年定时执行一次规则:每年执行 0 0 1 1 *