生产环境中常用Linux命令

太简单的我就不讲解啦,浪费时间,直接将生产中常用的

文章目录

  • 1.总纲
  • [2.整机 top](#2.整机 top)
  • [3.CPU vmstat](#3.CPU vmstat)
  • [3. 内存 free](#3. 内存 free)
  • [4. 硬盘: df](#4. 硬盘: df)
  • [5. 磁盘IO iostat](#5. 磁盘IO iostat)
  • [6. 网络IO ifstat](#6. 网络IO ifstat)
  • [7: 内存过高的情景排查](#7: 内存过高的情景排查)

1.总纲

  1. 整机:top
  2. cpu:vmstat
  3. 内存:free
  4. 硬盘:df
  5. 磁盘io: iostat
  6. 网络io:ifstat

2.整机 top

首先们要查询整机的状况 top -H

如果三个值得综合/3*100%>60% 就说明负担有点高啦,按下q按键退出

其中uptime命令为负载均衡的精简版窗口

3.CPU vmstat

命令 vmstat -n 2,3 2秒的时间,采样3个数据

扩展:

查看所有的CPU核信息:mpstat -P ALL 2 每两秒采样一次

每个进程使用CPU的用量分解信息 pidstat -u 1 -p 进程编号

3. 内存 free

free -m 以MB的形式显示,更加精确

(如果没有安装,请执行 yum install sysstat)

扩展:查看额外内存 pidstat -p 进程号 -r 采样的间隔数

MEN 展示 的这个进程占用内容的百分比

top

top -Hp pid

printf %x 11129

jstack -l 11095 |grep 11129 >> jstack.log


按进程的CPU使用率排序

运行top命令后,键入大写P。

有两种途径:

a) 打开大写键盘的情况下,直接按P键

b) 未打开大写键盘的情况下,Shift+P键

按进程的内存使用率排序

运行top命令后,键入大写M。

有两种途径:

a) 打开大写键盘的情况下,直接按M键

b) 未打开大写键盘的情况下,Shift+M键


4. 硬盘: df

df -h 查看磁盘剩余空间数

du * -h | sort -hr | head -100 , 由大到小,查询前100个送占用磁盘的文件路径

du /home -h | sort -hr | head -100 , 自定义路径

顺便分享下MySQL磁盘的定位分析

sql 复制代码
//不用做修改,查看当前mysql连接下,每个库的总大小
select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024/1024,2), 'GB') as data_size, concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size 
from information_schema.tables 
group by TABLE_SCHEMA 
order by data_length desc;

//修改 tp 数据库的名称,查看当前数据库下,每个表的总大小
select TABLE_NAME, concat(truncate(data_length/1024/1024/1024,2),'GB') as data_size, concat(truncate(index_length/1024/1024/1024,2), 'GB') as index_size 
from information_schema.tables where TABLE_SCHEMA = 'tp' 
group by TABLE_NAME 
order by data_length desc;

5. 磁盘IO iostat

参数含义

-c: 显示CPU使用情况

-d: 显示磁盘使用情况

-N: 显示磁盘阵列(LVM) 信息

-n: 显示NFS 使用情况

-k: 以 KB 为单位显示

-m: 以 M 为单位显示

-t: 报告每秒向终端读取和写入的字符数和CPU的信息

-V: 显示版本信息

-x: 显示详细信息

-p:[磁盘] 显示磁盘和分区的情况

具体的使用

iostat -xdk 2 3

每隔2秒,显示一次设备统计信息.总共输出3次, 显示的单位以kb为单位

结果参数说明

具体参数 参数含义
rkB/s 每秒读取数据量kb
wkB/s 每秒写入数据量Kb
svctm I/O请求的平均时间,单位毫秒
await I/O请求的平均等待时间,单位毫秒,值越小,性能越好
util 一秒钟有百分几的时间用于处理I/O操作,当达到100%时,标识磁盘宽带跑满,需要优化程序或者增加磁盘,是重要的指标

排查总结

  1. 如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷该磁盘可能存在瓶颈。
  2. 如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;
  3. 如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。
  4. 如果avgqu-sz比较大,也表示有当量io在等待

单独进程的磁盘IO pidstat -d 2 -p 进程号

6. 网络IO ifstat

默认本地是没有网络IO,下载ifstat

  1. wget http://gael.roualland.free.fr/ifstat/ifstat-1.1.tat.gz
  2. tar ifstat-1.1.tat.gz
  3. cd ifstat-1.1
  4. ./configure
  5. make
  6. make install

7: 内存过高的情景排查

1: 利用top命令,得到占用内存最高的进程PID

java 复制代码
top

2.查看此进程中占用CPU较高的线程排行

java 复制代码
ps -mp PID(这里替换) -o THREAD,tid,time|sort -rn|head -n 20

3.将此线程id转换成16进制,为我们接下来的操作做准备。

java 复制代码
printf "%x\n" tid

4:用jstack查看一下

jstack pid |grep tid -A 30

相关推荐
程序猿编码11 分钟前
一个授予普通进程ROOT权限的Linux内核级后门:原理与实现深度解析
linux·运维·服务器·内核·root权限
小夏子_riotous15 分钟前
openstack的使用——9. 密钥管理服务Barbican
linux·运维·服务器·系统架构·centos·云计算·openstack
梦想的旅途21 小时前
自动化运营如何防封?解析 API 协议下的拟人化风控算法
运维·自动化
六点的晨曦1 小时前
VMware安装Ubuntu的记录
linux·ubuntu
AC赳赳老秦2 小时前
OpenClaw text-translate技能:多语言批量翻译,解决跨境工作沟通难题
大数据·运维·数据库·人工智能·python·deepseek·openclaw
w6100104662 小时前
CKA-2026-Service
linux·服务器·网络·service·cka
andeyeluguo2 小时前
docker总结
运维·docker·容器
w6100104662 小时前
cka-2026-etcd
运维·服务器·etcd·cka
HXQ_晴天2 小时前
castor什么时候已有的 .cdh 数据可以直接用,不需要重新从 root 转换?
linux
航Hang*2 小时前
VMware vSphere 云平台运维与管理基础——第5章:VMware vSphere 5.5 高级特性
运维·服务器·开发语言·windows·学习·虚拟化