IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 性能篇:CPU -> 正文阅读

[系统运维]性能篇:CPU

CPU相关概念:

  • 处理器:物理芯片,一个或者多个
  • 核数:一个物理芯片上实现多个CPU功能,又称为芯片级多处理(chip-levelmultiprocessing,CMP)
  • 线程数:利用单个CPU中断间隙实现多线程,提升CPU效率,也就是我们说的开超线程(1*2)
  • 指令:一些列的命令,告诉CPU需要做什么操作,比如资源I/O、算术、逻辑控制。
  • 中断:中断是系统实现CPU能合理的服务计算机的资源,由于CPU中断和执行的快速,我们才能感觉到电脑上的程序都是同时运行的。
    • 硬中断:由硬件设备引发的中断,跟操作系统没关系
    • 软中断:由系统引发的中断
    • 参考:https://blog.csdn.net/yue530tomtom/article/details/76095739

性能指标:基础

  • 负载(饱和度):反应CPU的繁忙程度,占用CPU时间线程数和等待CPU时间线程数计算得出,负载为1,说明CPU已经饱和运转(单核)
  • 使用率:CPU一段时间内的忙于执行的时间,百分比表示
  • 用户时间/内核时间:
    • 用户时间:CPU用户执行用户态的代码时间
    • 内核时间:CPU用户执行内核态的代码时间
    • 计算密集性体现在用户态占用一般用户/内核时间之比接近99/1,I/O密集型体现系统调用频率较高,可能是用户/内核时间之比接近70/30
  • 进程/线程
    • 进程是系统资源分配最小的单元
    • 线程是代码执行的最小单元

性能工具使用
在这里插入图片描述

uptime
在这里插入图片描述

平均负载,后面的3个数值分别是1分、5分钟、15分钟的平均负载
值的意义,平均负载大于CPU 数量表示CPU 不足以服务线程,有些线程在等待

判断方向:

  • CPU饱和度影响性能

备注:Linux 目前把在不可中断状态执行磁盘I/O 的任务也计入了平均负载,所以还需要借助vmstat和mpstat提供一些数据观察

vmstat
在这里插入图片描述

vmstat从整体上查看资源情况,进程、内存、交换分区、I/O、系统、CPU
r:可运行进程的数量(正在运行或等待运行时)
b:等待 I/O 完成的阻塞进程数
CPU:CPU总时间的百分比
us:用户态的时间
sy:内核态的时间
id:闲置时间
wa:等待I/O 时间,即线程被阻塞等待磁盘I/O 时的CPU 空闲时间

判断方向:

  • 是否进程数太多,导致性能问题
  • CPU的性能是单个导致还是整个(%usr + %sys)
  • CPU密集类型(计算或I/O)

参考:https://www.man7.org/linux/man-pages/man8/vmstat.8.html

mpstat
在这里插入图片描述

查看单个CPU的详细情况(-P ALL用来打印每个CPU 的报告)
CPU:逻辑CPU ID,或者all 表示总结信息。
● %usr:用户态时间
● %nice:以nice 优先级运行的进程用户态时间
● %sys:系统态时间(内核)
● %iowai:I/O 等待
● %irq:硬件中断CPU 用量
● %soft:软件中断CPU 用量
● %steal:耗费在服务其他租户的时间
● %guest:花在访客虚拟机的时间
● %idle:空闲

重要指标:%usr、%sys、%iowai、%irq、%soft、%idle
判断方向:

  • CPU的性能是单个导致还是整个(%usr + %sys)
  • CPU密集类型(计算或I/O)
  • CPU中断导致的性能问题

ps
在这里插入图片描述

用于查看进程资源使用情况
● %CPU:进程使用CPU资源总和,一个CPU显示100%
● %MEM:进程使用的总内存资源比例
● TIME:进程消耗CPU总时长
● VSZ:进程申请的内存(kb),并不是真正使用这么多
● RSS:进程固定使用的内存(kb)
● TTY:进程在哪个终端运行
Stat状态:
S 可中断睡眠 (休眠中, 受阻, 在等待某个条件的形成或接受到信号)
R 运行,严格来说,应是“可运行”,即在运行队列中,处于正在执行或即将运行状态
D 不可中断睡眠 (通常是在IO操作) 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生
T (terminate)停止。通常是被shell作业控制所停止,或者进程正处于调试器的控制之下
Z (zombie)僵尸进程,通常是该进程已经死亡,但父进程没有调用wait类函数来释放该进程的资源
N (nice)低优先级任务
s 进程是会话期首进程
+ 进程属于前台进程组
l 进程是多线程的
< 高优先级任务

参考:https://linuxconfig.org/ps-output-difference-between-vsz-vs-rss-memory-usage

top

以上工具的各种资源集合
top进去后,按1 可以查看到单个CPU的资源
第一行:负载(uptime类似)
第二行:进程(ps类似)
第三行:CPU信息(hi硬中断,si软中断)
第四行:内存信息
第五行:交换分区信息
第六行:系统进程信息(
VIRT:申请内存,RES:使用内存,S:状态,SHR:共享内存(kb),
NI 是优先值,是用户层面的概念, PR是进程的实际优先级, 是给内核(kernel)看(用)的,一般情况下,PR=NI+20, 如果一个进程的优先级PR是20, 那么它的NI(nice)值就是20-20=0,可以通过改变NI来改变PR: PRI(new) = PRI(old) + nice)

pidstat
在这里插入图片描述

查看进程的CPU、内存、线程、设备IO资源占用情况
-r 显示各个进程的内存使用统计
-d 显示各个进程的IO使用情况
-p 指定进程号(ALL 所有)
-t 显示选择任务的线程的统计信息外的额外信息

使用技巧:

  • watch -n 1 -d “vmstat 1 1 | column -t” #可以实时看到变换和显示平整的数据
  • ps aux | sort -k 3 -r | head #查看进程使用CPU资源的前10
  • time ls #real:CPU执行总时间 user和sys(用户态和内核态)

参考书籍:性能之巅:洞悉系统、企业与云计算

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-13 12:00:08  更:2022-05-13 12:02:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:23:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码