陵水黎族自治县网站建设_网站建设公司_Oracle_seo优化
2026/1/3 18:26:50 网站建设 项目流程

性能监控(操作系统层面-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.监控数据解读

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

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询