hincky的主页 hincky的主页
  • 2023

    • nginx
    • prometheus
    • 小工具
    • 部署
  • 数据库

    • MySQL是怎么使用/运行的
    • Redis核心技术与实战
  • 极客时间

    • Web协议详解与抓包实战
    • SQL必知必会
    • MySQL45讲
个人日常
  • 分类
  • 标签
  • 归档
  • 随笔
GitHub (opens new window)

Hincky

当有趣的人,做想做的事
  • 2023

    • nginx
    • prometheus
    • 小工具
    • 部署
  • 数据库

    • MySQL是怎么使用/运行的
    • Redis核心技术与实战
  • 极客时间

    • Web协议详解与抓包实战
    • SQL必知必会
    • MySQL45讲
个人日常
  • 分类
  • 标签
  • 归档
  • 随笔
GitHub (opens new window)
  • 编程语言

  • 数据库

  • 极客时间

    • Web协议详解与抓包实战

    • GO语言第一课

    • MySQL45

    • SQL必知必会

    • Linux性能优化实战

      • 性能指标
        • 没有监控的排查步骤
        • 平均负载
  • 读书笔记
  • 极客时间
  • Linux性能优化实战
hincky
2023-02-28
目录

性能指标

日常性能优化最关注的就是高并发和响应快,就对应吞吐和延时

性能分析六个步骤:

  1. 选择指标评估应用程序和系统的性能;
  2. 为应用程序和系统设置性能目标;
  3. 进行性能基准测试;
  4. 性能分析定位瓶颈;
  5. 优化系统和应用程序;
  6. 性能监控和告警。

# 没有监控的排查步骤

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

# 平均负载

top``uptime命令会显示过去 1 分钟、5 分钟、15 分钟的平均负载(Load Average),它和 CPU 使用率并没有直接关系

平均负载:指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数

可运行状态进程:ps命令看到的R状态(Running或Runnable)的进程,指正在使用 CPU 或者正在等待 CPU 的进程

不可中断状态进程:ps 命令中看到的 D状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程,则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的 I/O 响应

编辑 (opens new window)
SQL如何执行

← SQL如何执行

最近更新
01
集成chatgpt的工具
05-24
02
修改服务器ssh默认连接端口
05-22
03
阿里云免费证书
05-15
更多文章>
Theme by Vdoing | Copyright © 2022-2023 Hincky | MIT License | 粤ICP备2022120427号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式