线上排查问题全套命令WIP(查看日志、端口占用、磁盘、CPU等)

本文主要是介绍线上排查问题全套命令WIP(查看日志、端口占用、磁盘、CPU等),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

线上排查问题全套命令WIP(查看日志、端口占用、磁盘、CPU等)

1 查看日志

1.1 less

①less xxx.log:查看日志文件
②less -N xxx.log:带行号查看日志
③g:定位到文件顶部
④G(shift+g键):定位到文件底部
⑤/keyword:向下查找
n:向下匹配下一处匹配文本
N:向上匹配下一处匹配文本
⑥?keyword:向上查找
n:向上匹配下一处匹配文本
N:向下匹配下一处匹配文本
⑦F:实时滚动文档

F(shift+f键):类似与tail -f a.log

ctrl+C退出实时滚动模式

1.2 grep

①grep -i:忽略大小写过滤
②grep -v:反向查找
  • grep -v “grep” 就是查找不含有 grep 字段的行
  • grep -v ^# /etc/profile就是不显示以#开头的行( ^在正则中匹配文件开头)
grep -v “grep” :查找不含有 grep 字段的行
grep -v ^# /etc/profile:过滤不以#开头的行
③grep -i ‘error’ a.log:忽略大小写过滤a.log中包含error的行
④grep ‘^2023’ upgrade.log:过滤2023开头的行

1.3 tail

①tail -n 200 a.log:查看最后200行日志
②tail -f a.log:追踪a.log,文件被删除时则暂停

当a.log有日志输出时,在终端也滚动输出

  • 等同于–follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
【Ctrl】+【S】 暂停刷新
【Ctrl】+【Q】继续刷新
【Ctrl】+【C】退出 tail 命令
③tail -F a.log:追踪日志,当有同名文件出现继续追踪

等同于–follow=name --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪

2 查看进程、端口占用

2.1 ps:查看进程

①ps -ef:显示系统中所有进程的列表,包括其他用户进程
ps -ef | grep java:过滤进程名包含java的进程
②ps -aux:显示详细的进程信息,包括CPU和内存使用情况
ps -aux | grep java:查看java进程详细信息

2.2 lsof(listen open files):查看端口等

① 查看端口占用:lsof -i :80
②查看端口被哪个进程占用:lsof -P -i :8080
③根据进程号查看进程使用的文件:lsof -p PID
④查看某个目录被哪些进程使用:lsof 目录名

2.3 netstat:查询进程名称和进程ID

netstat -tunlp
-t: 显示 TCP 连接
-u: 显示 UDP 连接
-n: 显示数字地址
-l: 列出状态是 LISTEN 的统计信息
-p: 显示程序的PID和名称

①netstat -tunlp | grep 3306:根据端口号查询
②netstat -tunlp | grep mysqld:根据进程名查询
③netstat -tunlp | grep 29520:根据进程ID查询

3 查看磁盘

3.1 df(disk free):查看文件系统的磁盘空间使用情况

df [选项] [文件]

-a 列出所有的文件系统,包括系统特有的 /proc 等文件系统
-k 以 KBytes 的容量显示各文件系统。命令 df -k 同命令 df
-m 以 MBytes 的容量显示各文件系统
-h 以人们较易阅读的 GBytes、MBytes、KBytes 等格式自行显示
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i 不用磁盘容量,而以 inode 的数量来显示
-l 只显示本地文件系统。命令 df -l 同命令 df
–no-sync 忽略 sync 命令
-P 输出格式为POSIX
–sync 在取得磁盘信息前,先执行sync命令
-T 连同该磁盘分区的文件系统名称(例如 xfs)也列出
–block-size=<区块大小> 指定区块大小
-t <文件系统类型> 只显示选定文件系统的磁盘信息
-x <文件系统类型> 不显示选定文件系统的磁盘信息
–help 显示帮助信息
–version 显示版本信息

例如:

[root@ziyi ~]# df
Filesystem            1K-blocks    Used Available Use% Mounted on
/dev/mapper/rhel-root  17811456 1196004  16615452   7% /
devtmpfs                 497216       0    497216   0% /dev
tmpfs                    508188       0    508188   0% /dev/shm
tmpfs                    508188    6736    501452   2% /run
tmpfs                    508188       0    508188   0% /sys/fs/cgroup
/dev/vda1               1038336  141508    896828  14% /boot
tmpfs                    101640       0    101640   0% /run/user/01、Filesystem:代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);2、1K-blocks:说明下面的数字单位是  1KB,可利用 -h-m 来改变容量;3、Used:使用掉的磁盘空间;4、Available:也就是剩下的磁盘空间大小;用户也许会感到奇怪的是,第3,4列块数之和不等于第2列中的块数。这是因为缺省的每个分区都留了少量空间供系统管理员使用。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间清单中;5、Use%:就是磁盘的使用率,如果使用率高达 90%  以上,最好注意一下,免得容量不足造成系统问题,例如最容易占满的  /var/spool/mail  这个保存邮件的目录;6、Mounted  on:就是磁盘的挂载目录(挂载点)。
df -h:以可读方式显示磁盘和空间使用情况
[root@ziyi ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   17G  1.2G   16G   7% /
devtmpfs               486M     0  486M   0% /dev
tmpfs                  497M     0  497M   0% /dev/shm
tmpfs                  497M  6.6M  490M   2% /run
tmpfs                  497M     0  497M   0% /sys/fs/cgroup
/dev/vda1             1014M  139M  876M  14% /boot
tmpfs                  100M     0  100M   0% /run/user/0

3.2 du(disk usage):显示每个文件和目录的磁盘使用空间

df [选项] [文件]

-a或-all 列出所you的文件与目录容量,因为默认仅统计目录下面的文件量
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或–kilobytes 以KB(1024bytes)为单位输出。
-m或–megabytes 以MB为单位输出。
-s或–summarize 仅显示总量,只列出最后加总的值,而不列出每个个别的目录占用容量。
-S或–separate-dirs 不包括子目录下的总计,与 -s 有点差别
-h或–human-readable 以K,M,G为单位,提高信息的可读性。
-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或–dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
–exclude=<目录或文件> 略过指定的目录或文件。
-D或–dereference-args 显示指定符号链接的源文件大小。
-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或–count-links 重复计算硬件链接的文件。

du -h upgrade.log:显示upgrade.log所用空间
du -h dir0:查看dir0目录所占空间
du -h --max-depth=1:查看当前目录下各个子目录所用空间

df与du区别:df某些情况下更精准

1、du :是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
2、 df: 通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件,df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。
当文件系统也确定删除了该文件后,这时候du与df就一致了。

4 查看内存

4.1 free

free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。

free [-bkmhotV][-s <间隔秒数>]

-b  以Byte为单位显示内存使用情况。
-k  以KB为单位显示内存使用情况。
-m  以MB为单位显示内存使用情况。
-h  以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
B = bytes
K = kilos
M = megas
G = gigas
T = teras

-o  不显示缓冲区调节列。
-s<间隔秒数>  持续观察内存使用状况。
-t  显示内存总和列。
-V  显示版本信息。

[root@ziyi ~]# free
total used free shared buffers cached
Mem: 254772 184568 70204 0 5692 89892
-/+ buffers/cache: 88984 165788
Swap: 524280 65116 459164Mem行(单位均为M):total   系统总的可用物理内存大小used    已被使用的物理内存大小free    还有多少物理内存可用shared  被共享使用的物理内存大小buff/cache  被 buffer 和 cache 使用的物理内存大小available   还可以被 应用程序 使用的物理内存大小(-/+ buffers/cache)行:(-buffers/cache): 真正使用的内存数,指的是第一部分的 used - buffers - cached(+buffers/cache): 可用的内存数,指的是第一部分的 free + buffers + cachedSwap行指交换分区		
free -th:以总和形式查看内存使用信息

在这里插入图片描述

free -s 2:每2s查询内存使用信息

-h:以人类可阅读形式展示

在这里插入图片描述

5 查看CPU

5.1 top:查看进程占用CPU、内存

top:“实时查看” ,按q退出 (实时动态显示)

  • top的使用方式 top [-d number] | top [-bnp]
top 各个参数含义

在这里插入图片描述

top+其他按键组合(区分大小写)

在这里插入图片描述

top+P:以CPU使用情况排序
top+M:以内存使用情况排序
top+N:以pid排序显示
top+T:由进程使用时间累计排序显示
q:退出top命令
执行top后,各参数含义

在这里插入图片描述

top - 14:49:28 up 1:33, 1 user, load average: 0.00, 0.00, 0.00

在这里插入图片描述

Tasks: 80 total, 2 running, 78 sleeping, 0 stopped, 0 zombie

在这里插入图片描述

Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

在这里插入图片描述

Mem: 1922488k total, 406936k used, 1515552k free, 11940k buffers

在这里插入图片描述

Swap: 835576k total, 0k used, 835576k free, 111596k cached

在这里插入图片描述

top显示进程各个参数信息

默认进入top时,各进程是按照CPU的占用量来排序的。

在这里插入图片描述

参考:
https://blog.csdn.net/JMW1407/article/details/107902100
https://blog.csdn.net/weixin_45465395/article/details/115728520

这篇关于线上排查问题全套命令WIP(查看日志、端口占用、磁盘、CPU等)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/626242

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存