news 2026/7/14 21:55:56

性能监控(操作系统层面-CPU)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
性能监控(操作系统层面-CPU)

性能监控(操作系统层面-CPU)

一、性能监控概述

1.监控的重要性

  • 必须做监控:做性能测试必须监控,否则不知道问题出在哪里

  • 监控是性能测试的核心环节

2.监控的两个维度

  • 操作系统维度:所有系统都必须监控(通用)

    • 监控对象:CPU、内存、网络、磁盘

    • 适用性:无论什么语言(PHP、Python、Java、Go、C)都需要

  • 应用程序维度:监控特定语言的应用程序

    • 如:Java应用、C++应用、Python应用等

二、监控方法论

1.学习路径建议

  • 先学底层:先掌握操作系统原生命令

  • 再学工具:再学习高级监控工具/平台

  • 原因

    • 面试重点考察基础命令

    • 理解原理后才能更好使用高级工具

    • 类比:先学SQL再学可视化工具(如Navicat)

2.监控原则

  • 掌握根本:底层原生命令是基础

  • 理解原理:知道监控数据如何计算得出

三、CPU监控详解

1.监控命令:top

  • 功能:Linux下的实时交互式监控工具

  • 监控范围:CPU、内存、进程

  • 刷新频率:默认每3秒刷新一次

  • 退出方式:按Ctrl + C

2.CPU监控关键指标

(1)CPU使用率计算
  • 核心公式CPU使用率 = 100% - %ID

  • %ID(idle):CPU空闲率

  • 示例:%ID = 98.3%,则CPU使用率 = 1.7%

(2)CPU使用率各组成部分
指标英文含义说明
%ususer用户进程占用CPU用户自己启动的进程(如Tomcat、MySQL)
%sysystem系统进程占用CPU操作系统自带进程
%ididleCPU空闲率可直接计算CPU使用率
%wawaitCPU等待磁盘操作时间占比值高表示磁盘慢/有瓶颈
%hihard interrupt硬中断时间占比硬件(鼠标、键盘、网卡)中断造成
%sisoft interrupt软中断时间占比软件(多线程上下文切换)造成
(3)理解要点
  • 计算基础:CPU使用率基于时间统计

  • 计算方法:CPU处理任务时间 ÷ 总时间 = CPU使用率

  • 统计周期:top命令统计过去3秒的平均值

3.多核CPU监控

(1)关键前提
  • 每个CPU核心:同一时刻只能执行一个任务

  • 多核CPU:n个核心同一时刻可执行n个任务

(2)多线程实现原理
  • 单核多线程:通过快速切换实现"同时"运行多个线程

  • 切换速度:CPU切换速度极快,人类无法感知

  • 实际并发:1万个并发线程用8核CPU处理 → 需要快速切换

(3)查看多核使用情况
  • 默认显示:所有CPU核心的平均值

  • 按数字1:显示每个核心的详细使用情况

  • 作用

    • 查看CPU核心数

    • 分析各核心负载是否均衡

4.进程监控与排序

(1)进程列表
  • 显示内容:各进程消耗的CPU和内存数据

  • 默认排序:按CPU使用率降序排列

  • 内存排序:按大写M键切换到内存使用率排序

  • 切回CPU排序:按P键切回CPU排序

(2)关键字段解析
  • PID:进程ID

  • %CPU:进程占用CPU百分比

  • %MEM:进程占用内存百分比

  • RES:进程占用的物理内存(单位:KB)

    • 示例:277MB ≈ 15%内存使用率(基于2GB总内存)

(3)重要特性
  • 进程%CPU可能超过100%

    • 原因:统计的是进程占用所有CPU核心使用率之和

    • 上限:n核CPU上限为 n × 100%

    • 示例:16核CPU上,进程%CPU可达1600%

  • 与整体CPU使用率的区别

    • 整体CPU:所有核心的平均值(上限100%)

    • 进程CPU:占用各核心之和(上限为n×100%)

5.CPU问题排查流程

(1)排查步骤
  1. 发现CPU使用率高:top命令看到整体CPU使用率高

  2. 定位问题进程

    • 查看进程列表(默认按CPU排序)

    • 找到占用CPU最高的进程

  3. 分析归属

    • 如果是压测程序 → 程序本身问题

    • 如果是其他程序 → 系统其他问题

  4. 深入分析:按1查看各核心负载情况

(2)实战案例
  • 挖矿病毒案例

    • 现象:CPU持续100%但无压测

    • 排查:top发现陌生高CPU进程

    • 确认:百度搜索进程名确认为挖矿程序

    • 解决:重装系统、修改密码

  • 教训:定期检查服务器异常进程

四、监控实战技巧

1.产生测试负载

  • 目的:模拟真实场景观察监控数据变化

  • 方法

    • 使用JMeter等压测工具

    • 对Web应用接口施加压力

    • 观察监控数据动态变化

2.监控时机

  • 压测期间:持续监控系统资源使用情况

  • 日常运维:定期检查异常进程

  • 问题排查:出现性能问题时第一时间监控

3.监控数据解读

  • 动态变化:监控数据随负载变化而变化

  • 基准对比:建立系统正常状态下的基准值

  • 阈值报警:设定关键指标的报警阈值

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 19:21:23

vue+uniapp+springboot易趣校园二手跳蚤市场的 卖家 微信小程序h55ot

文章目录技术栈与平台架构核心功能模块特色与优化主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!技术栈与平台架构 系统采用Vue.jsUniApp构建微信小程序前…

作者头像 李华
网站建设 2026/7/14 19:21:16

vue+uniapp+springboot运动健身打卡目标计划系统 微信小程序_xnxwb

文章目录 系统概述功能模块技术实现应用场景 主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 系统概述 VueUniappSpringBoot运动健身打卡目标计划系统是一…

作者头像 李华
网站建设 2026/7/14 19:21:25

【年终总结】2026年元旦我回望了过去一年,发现了......

前言:今天是元旦假期的最后一天,不知不觉间悄然迈进了2026年,2025年已经成为了历史。过往一年中无论是那些好的、成功的、兴奋的,还是坏的、失败的、颓丧的人事物都会随着跨年钟声的响起一起流淌进时间的长河当中。但是我们回望那…

作者头像 李华
网站建设 2026/7/14 19:14:50

艺术字体与广告牌识别:HunyuanOCR在智慧城市中的潜在用途

艺术字体与广告牌识别:HunyuanOCR在智慧城市中的潜在用途 在城市街头走一圈,你会发现文字无处不在——商铺门头的花体招牌、地铁站里的双语导视、立交桥下的巨幅广告。这些看似普通的文字信息,实则是城市管理中一块长期难啃的“硬骨头”。尤其…

作者头像 李华
网站建设 2026/7/14 20:13:29

HunyuanOCR实战案例:从发票识别到护照信息抽取的全流程实现

HunyuanOCR实战案例:从发票识别到护照信息抽取的全流程实现 在企业数字化转型不断加速的今天,每天有海量的纸质文档——发票、合同、身份证件、报关单——被扫描录入系统。传统处理方式依赖人工录入或拼接多个OCR模块,效率低、错误率高、维护…

作者头像 李华
网站建设 2026/7/14 20:14:22

手游画质为何高低配差距这么大?

你可能也有过这种体验: 同一款手游—— 你在顶配旗舰上打开:光影柔和、人物皮肤有质感、金属反光都挺自然,截图发朋友圈,评论区一片“这画质牛啊!” 换到家里旧手机上一试:光没了、阴影糊了、衣服像塑料、脸像“冰淇淋抹平版”,你自己都怀疑是不是下错了游戏。 更神奇的…

作者头像 李华