当前位置: 首页 > news >正文

国际阿里云:Linux实例负载高问题排查和异常处理!!!

问题描述

在您使用ECS实例过程中,可能会遇到实例系统负载较高的情况,负载过高,可能会引发一系列异常问题,简单说您如下:

  • CPU使用率或负载过高:一般来说,当CPU使用率≥80%时,定义为CPU使用率过高。CPU使用率持续过高,可能会导致实例运行速度变慢,自动关机或重启、无法登录等问题。

  • 带宽使用率过高:一般来说,带宽使用率≥当前带宽80%时,定义为带宽使用率过高。带宽使用率持续过高,将影响实例的网络连通性或网络吞吐,例如实例无法远程连接、网速过慢等。

  • 内存使用率过高:一般来说,当内存使用率≥80%时,定义为内存使用率过高。内存使用率过高,可能会出现系统卡顿、内部服务响应速度变慢等问题。

  • I/O使用率过高:一般来说,当前I/O读写≥该云盘I/O的80%时,定义为I/O使用率过高。I/O使用率过高,可能会出现文件读写变慢、应用性能下降或报错等问题。

问题排查

您可以使用SAR工具或htop工具定位该实例的负载过高及各资源的使用情况。

使用sar工具查看实例各资源使用情况

使用htop查看系统内各进程负载情况

sar是System Activity Reporter(系统活动情况报告)的缩写,sar工具对系统状态进行取样后,通过计算数据和比例来表达系统当前的运行状态。其特点是可以连续对系统取样,获得大量的取样数据。其取样数据和分析结果可以存入文件,所需的负载很小。

sar是Linux系统中较为全面的性能分析工具,可以从多个方面对系统的活动进行监控和报告,包括文件读写情况、系统调用使用情况、串口、CPU效率、内存使用情况、进程活动及IPC(Inter-Process Communication,进程间通信)等。

安装sar工具

如果您的ECS实例中默认未安装sar工具,可参考如下步骤进行安装。

  1. 使用VNC连接Linux系统的ECS实例。

    具体操作,请参见使用VNC登录实例。

  2. 执行如下命令,安装sar工具。

    yum install sysstat
    
  3. 执行如下命令,启动sysstat服务。

    systemctl start sysstat
    
  4. 执行如下命令,查看sysstat服务状态。

    systemctl status sysstat
    

    当返回系统中出现Active: active (exited)表示sysstat服务已启动。

查看CPU使用率

查看队列长度和CPU平均负载

查看磁盘使用情况

查看内存负载

查看I/O负载

查看swap分区页面交换情况

执行如下命令,查看CPU负载。

sar -u 1 5   #每隔一秒刷新,刷新5次

系统显示类似如下。

Linux 3.10.0-123.9.3.el7.x8664 (iZ23pddtofdZ)     07/04/2016     _x86_64    (1 CPU)
10:16:35 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:16:36 AM     all     14.14      0.00      1.01      0.00      0.00     84.85
10:16:37 AM     all     14.14      0.00      0.00      1.01      0.00     84.85
10:16:38 AM     all      0.00      0.00      1.01      0.00      0.00     98.99
10:16:39 AM     all      0.00      0.00      0.00      0.00      0.00    100.00
10:16:40 AM     all      1.00      0.00      0.00      0.00      0.00     99.00
Average:        all      5.86      0.00      0.40      0.20      0.00     93.54

显示结果主要字段说明

  • %user:用户模式下消耗的CPU时间比例。

  • %nice:通过nice改变了进程调度优先级的进程,在用户模式下消耗的CPU时间比例。

  • %system:系统模式下消耗的CPU时间比例。

  • %iowait:CPU等待磁盘I/O导致空闲状态消耗的时间比例。

  • %steal:利用Xen等操作系统虚拟化技术,等待其它虚拟CPU计算占用的时间比例。

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

常见sar命令参数

sar命令的参数说明如下,区分大小写。

  • -A:汇总所有的报告。

  • -a:报告文件读写使用情况。

  • -B:报告附加缓存的使用情况。

  • -b:报告缓存的使用情况。

  • -c:报告系统调用的使用情况。

  • -d:报告磁盘的使用情况。

  • -g:报告串口的使用情况。

  • -h:报告关于buffer使用的统计数据。

  • -m:报告IPC消息队列和信号量的使用情况。

  • -n:报告命名cache的使用情况。

  • -p:报告调页活动的使用情况。

  • -q:报告运行队列和交换队列的平均长度。

  • -R:报告进程的活动情况。

  • -r:报告没有使用的内存页面和硬盘块。

  • -u:报告CPU的利用率。

  • -v:报告进程、i节点、文件和锁表状态。

  • -w:报告系统交换活动状况。

  • -y:报告TTY设备活动状况。

相关文章:

  • 【中间件篇-Redis缓存数据库02】Redis高级特性和应用(慢查询、Pipeline、事务、Lua)
  • 未来的拥塞控制与 Linux EEVDF 调度器
  • 在AutoDL云环境上训练Stable Diffusion Lora模型
  • 美国材料与试验协会ASTM发布新版玩具安全标准 ASTM F963-23
  • 免费博客搭建笔记
  • 基于springboot实现驾校管理系统项目【项目源码】计算机毕业设计
  • vuex中的 actions 中,是不能使用 this.$message.error() 的
  • Java学习_对象
  • 关于安卓刷机,小米手机,各种安卓手机,理念+实践,如:小米8
  • Netty底层原理
  • acwing算法基础之搜索与图论--BFS
  • 【leaflet】1. 初见
  • 【系统架构设计】架构核心知识: 1 系统工程与信息系统基础
  • typora保护机制与注册逆向分析
  • 基于Amazon EC2和Amazon Systems Manager Session Manager的堡垒机设计和自动化实现
  • [译]如何构建服务器端web组件,为何要构建?
  • 78. Subsets
  • CentOS 7 防火墙操作
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • JS+CSS实现数字滚动
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Spring声明式事务管理之一:五大属性分析
  • 从伪并行的 Python 多线程说起
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 基于组件的设计工作流与界面抽象
  • 微信开放平台全网发布【失败】的几点排查方法
  • 主流的CSS水平和垂直居中技术大全
  • 通过调用文摘列表API获取文摘
  • # 安徽锐锋科技IDMS系统简介
  • #pragma预处理命令
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (C语言)共用体union的用法举例
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (四)Android布局类型(线性布局LinearLayout)
  • (正则)提取页面里的img标签
  • (转载)hibernate缓存
  • .gitignore文件_Git:.gitignore
  • .Net Core 中间件验签
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET 中的轻量级线程安全
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • /*在DataTable中更新、删除数据*/
  • /etc/sudoer文件配置简析
  • @ResponseBody
  • [Angularjs]ng-select和ng-options
  • [AR]Vumark(下一代条形码)
  • [BZOJ 3282] Tree 【LCT】
  • [DP 训练] Longest Run on a Snowboard, UVa 10285
  • [hdu2196]Computer树的直径
  • [java/jdbc]插入数据时获取自增长主键的值