线上排查问题全套命令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

相关文章

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

关于@MapperScan和@ComponentScan的使用问题

《关于@MapperScan和@ComponentScan的使用问题》文章介绍了在使用`@MapperScan`和`@ComponentScan`时可能会遇到的包扫描冲突问题,并提供了解决方法,同时,... 目录@MapperScan和@ComponentScan的使用问题报错如下原因解决办法课外拓展总结@

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li