Linux服务器监控命令
top
-
能够实时监控系统运行状态,并且可以按照CPU、内存等进行排序。
top参数
-
-h :帮助
-
-p :监控指定进程,监控多个进程ID之间用 , 分割
-
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下载与安装
-
tar gxvf nmon_linux_14i.tar.gz
-
根据自己的操作系统选择nmon可执行文件,如:
mv nmon_x86_64_centos6 nmon
-
cp nmon /usr/bin/
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 *
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)