栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux 性能的命令 和 平均负载概念

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux 性能的命令 和 平均负载概念

本文主要的知识点有:Linux 性能分析 平均负载
Linux性能分析,话不多说,先上图。

此图源自 Netflix 高级性能架构师 Brendan Gregg 的一次分享。


下面是性能分析的排查思路:

  1. 系统的平均负载,使用top或者htop命令查看,平均负载体现的是系统的一个整体情况,他应该是cpu、内存、磁盘性能的一个综合,一般是平均负载的值大于机器cpu的核数,这时候说明机器资源已经紧张了
  2. 平均负载高了以后,接下来就要看看具体是什么资源导致,在top中看cpu每个核的使用情况,如果占比很高,那瓶颈应该是cpu,接下来就要看看是什么进程导致的
  3. 内存,首先是用free去查看内存使用情况,还要结合cache和buffer,了解具体是什么进程占用了过高的内存,top进行排序
  4. 磁盘,用iostat去查看
  5. 带宽问题,一般会用iftop去查看流量情况,看看流量是否超过的机器给定的带宽
  6. 涉及到具体应用的话,就要根据具体应用的设定参数来查看,比如连接数是否查过设定值等
  7. 如果系统层各个指标查下来都没有发现异常,那么就要考虑外部系统了,比如数据库、缓存、存储等
top 命令


上图是 top 命令的腾讯云服务器截图

第一行 : 21:20:41–系统时间 up 3 min–系统已经运行了3分钟 1 user-- 当前有1个用户登陆系统 load average: 1.50,0.88,0.37 三个数分别是1分钟、5分钟、15分钟的负载情况。

第二行:任务进程状态 运行中的1个、63个在休眠、stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行: CPU状态信息 、

us (user CPU time) 用户空间占用CPU 百分比
sy (system CPU time) 内核空间占用CPU百分比
ni (nice CPU time) 用户进程空间改变过优先级的进程占用CPU百分比
id (idle) 空闲CPU百分比
wa (iowait) 等待输入输出的CPU时间百分比
hi (hardware irq) 硬件中断
si (software irq) 软件中断
st (steal time) 实时

sy 比较大的时候:是否有多线程操作,排查是否有死锁
软中断是程序由于需要等待其他操作等发出的中断
硬中断是硬件有数据传入而发出的CPU中断来处理该输入
一般压测情况下,us占用cpu比较高,其他几个指标都比较低

第四行: 1876964 total – 内存总大小为1876964 1392064 free --空闲的内存大小 163332 userd – 使用中的内存 1556152 buff/cache 缓存内存量

使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。

第五行:0 total --交换分区总量, 0 free–交换分区空闲量, 0.0 used – 交换分区使用量. 1556152 avail Mem --交换分区可用量

used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

第七行以下: 各进程的状态监控

PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 I=空闲
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)


上图是 htop命令的腾讯云服务器截图

free 命令

查看当前系统内存的使用情况


total 内存总数、used 已经使用内存数、free 剩余内存数、shared 多个进程共享的内存总额、 buffers/cache内存数 、available

total=used+free

iostat 命令

将对系统的磁盘操作活动进行监视

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.29    0.00    0.28    0.03    0.00   99.41

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               4.49         0.23        38.16    4811702  807627360
scd0              0.00         0.00         0.00       6218          0

说明:
cpu属性值说明:

%user:CPU处在用户模式下的时间百分比。

%nice:CPU处在带NICE值的用户模式下的时间百分比。

%system:CPU处在系统模式下的时间百分比。

%iowait:CPU等待输入输出完成时间的百分比。

%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。

%idle:CPU空闲时间百分比。

注意:如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

iftop命令

可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等


上图是 iftop 命令界面,图源
界面参数说明

=>代表发送数据
<=代表接收数据
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
平均负载

上面有 top命令 查看了 load average 即平均负载。

平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。

可运行状态的进程,是指正在使用 CPU 或者正在等待 CPU 的进程,也就是我们常用 ps 命令看到的,处于 R 状态(Running 或 Runnable)的进程。
不可中断状态的进程则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的 I/O 响应,也就是我们在 ps 命令中看到的 D 状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程。

平均负载为多少时合理

  1. 等于CPU个数,表示所有CPU刚好被完全占用,
  2. 小于CPU个数,表示有CPU有空闲
  3. 大于CPU个数,表示系统出现了过载

附上命令:

查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq

查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/962104.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号