楼仔
2022/05/31阅读:28主题:橙心
线上问题排查高频命令,一网打尽!
大家好,我是楼仔!
大家有没有这种感觉,每当处理线上问题时,还需要百度各种命令的用法,因为有的命令长时间不用,慢慢就生疏了。
比如上次帮二哥解决问题时,就一边查问题,一边百度各种命令,效率不要太低,所以这次就把我之前排查问题的常用命令,系统总结一下。
我主要用来做记录,大家可以白嫖 + 收藏 + 转发哈 ~~
1. 机器资源
1.1 top
1.1.1 命令详解
top 命令经常用来监视系统活动进程和系统的资源负载信息等,在日常的运维工作中也是最基本的命令。

第一行:top - 10:51:41 up 4 days, 15:42, 0 users, load average: 0.01, 0.04, 0.07
-
系统时间 -
运行时间 -
登录终端数 -
系统负载(三个数值分别为 1 分钟、5 分钟、15 分钟内的平均值,数值越小意味着负载越低)
第二行:Tasks: 23 total, 1 running, 16 sleeping, 6 stopped, 0 zombie
-
进程总数 -
运行中的进程数 -
睡眠中的进程数 -
停止的进程数 -
僵尸的进程数。
第三行:Cpu(s): 0.1%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
-
用户占用资源百分比 -
系统内核占用资源百分比 -
改变过优先级的进程资源百分比 -
空闲的资源百分比 -
等待输入输出的 cpu 时间百分比 -
硬中断占用的 cpu 百分比 -
软中断占用的 cpu 百分比 -
用于虚拟 cpu 的情况
第四行:Mem: 2046756k total, 1965828k used, 80928k free, 124648k buffers
-
物理内存总量 -
内存使用量 -
内存空闲量 -
作为内核缓存的内存量
第五行:Swap: 1048572k total, 128k used, 1048444k free, 1312384k cached
-
虚拟内存总量 -
虚拟内存空闲量 -
虚拟内存使用量 -
已被提前加载的内存量
第六行:PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
-
PID:进程 ID -
USER:进程所有者的用户名 -
PR:优先级 -
NI:nice值(负值表示高优先级,正值表示低优先级) -
VIRT:进程使用的虚拟内存总量(KB) -
RES:进程使用的未被换出的物理内存大小(KB) -
SHR:共享内存大小(KB) -
S:进程状态 -
%CPU:进程上次更新到现在的 CPU 时间占用百分比 -
%MEM:物理内存占比 -
TIME+:进程使用的 CPU 时间总计(单位1/100秒) -
COMMAND:命令名
1.1.2 使用技巧
常用命令:
-
d:刷新时间 -
a:内存倒序排列 -
c:显示进程的命令行参数 -
n:只执行一次 -
p:指定线程
top // 常用,每隔5秒刷新,默认按照CPU占用量排序
top -d 2 // 每隔2秒刷新
top -a // 常用,每隔5秒刷新,按内存倒序排列
top -c // 每隔5秒刷新,并显示进程的命令行参数(默认只有进程名)
top -n 1 // 只执行一次
top -p 12345 -p 6789// 每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456 // 每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数
重点关注:
-
top 默认按照 CPU 的占用量来排序; -
使用命令 "top -ab -n 1 | grep php-fpm" 查询某个进程; -
通过快捷键更改显示内容: -
更改显示内容通过 f 键可以选择显示的内容(按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定) -
按 o 键可以改变列的显示顺序(按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动,最后按回车键确定)
-
考一下大家,命令 “top -d 2 -ac -n 1” 是什么意思呢?
1.2 uptime
uptime 命令能够打印系统总共运行了多长时间和系统的平均负载。

-
现在时间 -
系统已经运行了多长时间 -
目前有多少登陆用户 -
系统在过去的 1 分钟、5 分钟和 15 分钟内的平均负载。
相当于 top 的简单版!
1.3 free(内存)
1.3.1 命令详解
free 命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

-
total:总计物理内存的大小; -
used:已使用多少; -
free:可用内存多少; -
Shared:多个进程共享的内存总额; -
Buffers/cached:磁盘缓存的大小。
1.3.2 常用命令
-
m:以m为单位来显示内存的信息; -
g:以G为单位来显示内存的信息; -
s:每隔N秒打印一次内存信息。
free // 默认按照k(b)的计数单位统计
free -m // 常用,以m为单位来显示内存的信息
free -g // 常用,以G为单位来显示内存的信息
free -s 3 // 每隔3秒打印一次内存信息,直到用ctrl+c结束
1.4 df(磁盘)
1.4.1 命令详解
df 命令用来检查linux服务器的文件系统的磁盘空间占用情况。

1.4.2 常用命令
-
a:全部文件系统列表; -
h:方便阅读方式显示; -
i:显示inode信息。
df // 磁盘空间将以 1KB 为单位进行显示
df -h // 常用,使用人类可读的格式
df -i // 以inode模式来显示磁盘使用情况
df -h 和 df -i 的区别是什么?
同样是显示磁盘使用情况,为什么显示占用百分比相差甚远?
inode 包含的信息:文件的字节数,拥有者 id,组 id,权限,改动时间,链接数,数据 block 的位置,不表示文件大小。
1.5 du(文件)
du 会显示指定的目录或文件所占用的磁盘空间。

常用命令:
du // 查看当前目录、所有子目录大小(KB单位)
du -h // 常用,查看当前目录、所有子目录大小(MB单位)
du -sh // 常用,只展示当前目录的大小,所包含的目录统计在内(MB单位)
du -sh ./* // 常用,查看当前目录大小,展示所包含的所有目录大小(MB单位)
du -sh * | sort -rh // 常用,查看当前目录大小,并排序
du -h | awk '$1 ~ /G/' // 常用,找到 G 级别的目录
1.6 查询 CPU
cat /proc/cpuinfo

-
processor:系统中逻辑处理核的编号; -
cpu MHz:CPU 的实际使用主频; -
cache size:CPU 二级缓存大小; -
physical id:单个 CPU 的标号; -
siblings:单个 CPU 逻辑物理核数; -
core id:当前物理核在其所处 CPU 中的编号,这个编号不一定连续; -
cpu cores:该逻辑核所处CPU的物理核数; -
clflush size:每次刷新缓存的大小单位; -
cache_alignment:缓存地址对齐单位。
更多可查看:https://blog.csdn.net/lj19990824/article/details/120418884
Nginx
作者介绍