Linux 资源性能分析相关命令

 

查看 Linux 内核版本

uname

Linux 资源性能分析相关命令

查看 Linux 系统版本

cat /etc/issue

查看静态的进程

ps -ef
ps -aux

Linux 资源性能分析相关命令

Linux 资源性能分析相关命令

通过进程名查看 pid

pgrep 进程名称

Linux 资源性能分析相关命令

查看动态的进程

top

Linux 资源性能分析相关命令

第一行

load average:系统平均负载,三个值分别是平均最近5分钟、平均最近10分钟、平均最近15分钟,如果长时间大于1表示CUP忙不过来

user:表示登录用户数

Tasks

total:表示进程总数

running:表示正在运行的进程,一般 < 核数

sleeping:表示

stopped:被强行停止

zombie:僵尸进程

%Cpu(s)

us:表示用户进程使用百分比

sy:表示系统内核使用百分比,一般 < 5%

id:表示CPU空间时间百分比

wa:如果很大,说明磁盘很满,CPU等待磁盘时间长

hi:硬中断

si:软中断

KiB Mem

total:总内存

used:已使用内存

free:空闲内存

buffers:缓冲,马上要写入磁盘还没有写入磁盘,为了与磁盘交互提高效率

KiB Swap

total:总内存

used:已使用内存

free:空闲内存

cached:缓存

进程详细信息

PID:进程id

USER:所属用户

PR:优先级

VIRT:虚拟内存空间

SHR:共享内存空间

S:进程状态,R -- running,S -- sleeping

%CPU:CPU 占用百分比

%MEM:内存占用百分比

TIME:进程在CPU中运行的时间

COMMAND:进程是那个程序启动的

1)按 h 键,显示帮助信息(按 q 返回)

Linux 资源性能分析相关命令

2)按 u,输入用户回车,可以过滤出该用户的进程

Linux 资源性能分析相关命令

CPU耗用型进程分析

Linux 资源性能分析相关命令

分析 CPU 步骤:

1、load average > 核数,running > 核数,说明存在进程等待

2、%id = 0.0 ,说明 CPU 很忙,空闲时间为0

3、%wa = 0.0,说明没有磁盘等待,瓶颈不在磁盘

4、内存的 used < 50%,且无变化,瓶颈不在内存

可以看出该进程完全为 CPU 消耗性的,一般是进程中存在死循环,或大量的循环。

vmstat(虚拟内存统计)-- 低开销工具

vmstat 秒数

3秒钟显示一次结果

Linux 资源性能分析相关命令

procs(进程)

r:运行的进程,同 top 的 running

b:阻塞的进程

memory

swpd:交换到磁盘

free:内存

buff:缓冲,即将要写入磁盘的数据,延迟写

cache:缓存,从磁盘读出来的数据,联想读

swap

si:swap 的换进

so:swap 的换出

io

bi:写磁盘

bo:读磁盘

system

in:系统终端

cs:上下文切换

cpu

us:用户态

sy:系统态

id:空闲态

wa:等待

查看内存信息

free

Linux 资源性能分析相关命令

TCP 信息统计

netstat -tans

Linux 资源性能分析相关命令

IcmpMsg(ICMP 消息统计)

 InType:收到数量

OutType:发出数量

ICMP 消息较多时,会消耗系统网络带宽

可以在防火墙中设置拒绝 ICMP 消息

TCP

active connections openings:打开的 TCP 连接数

failed connection attempts:失败的 TCP 连接

segments received:收到的数据段个数

segments send out:发出的数据段个数

segments retransmited:重传数量,值较大时,说明网络不稳定,网络拥塞

TcpExt

TCP data loss events:丢包数量,说明网络拥塞

firewalld 防火墙禁止 ICMP 包

firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp drop' #禁止 ICMP 包
firewall-cmd --reload #重启防火墙

Linux 资源性能分析相关命令

Linux 资源性能分析相关命令

查看磁盘信息

df -h

Linux 资源性能分析相关命令

IO 耗用型进程分析

1)新建脚本 dd.sh(将 test.log 的数据写入 conteng.log 文件中,每次写 100M,写 50次)

dd if=/test/test.log of=conteng.log bs=100M count=50

2)执行脚本,并使用 vmstat 命令查看系统资源信息

./dd.sh
vmstat 3

Linux 资源性能分析相关命令

分析步骤:

1、r = 3 > 核数,说明存在进程等待

2、us = 5%,sy = 90%,用户进程使用CPU很少,系统使用CPU很多,因为写文件是系统调用;

3、bi、bo 很大,说明块的写入写出很多;

4、wa = 5%,CPU 使用5%的时间在等待,说明磁盘等待导致CPU卡顿。

可以看出瓶颈在磁盘,而不在 CPU