国际阿里云: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设备活动状况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/139840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PROFINET和UDP、MODBUS-RTU通信速度对比实验

这篇博客我们介绍PROFINET 和MODBUS-RTU通信实验时的数据刷新速度,以及这种速度不同对控制系统带来的挑战都有哪些,在介绍这篇对比实验之前大家可以参考下面的文章链接: S7-1200PLC和SMART PLC的PN智能从站通信 S7-200 SMART 和 S7-1200PLC进行PROFINET IO通信-CSDN博客文…

【Redis系列】Redis的核心命令(上)

哈喽,大家好,我是小浪。那么上篇博客教会了大家如何在Linux上安装Redis,那么本篇博客就要正式开始学习Redis啦,跟着俺的随笔往下看~ 1、启动Redis 那么如何启动Redis呢?最常用的是以下这个命令: redis-cl…

jedis、lettuce与redis交互分析

概念梳理: redis是缓存服务器,jedis、lettuce都是Java语言下的redis客户端,用于与redis服务器进行交互。springboot项目中一般使用的是spring data redis,spring data redis依赖与jedis或lettuce,可以进行配置&#x…

物联网AI MicroPython学习之语法 network网络配置模块

学物联网,来万物简单IoT物联网!! network介绍 模块功能: 用于管理Wi-Fi和以太网的网络模块参考用法: import network import time nic network.WLAN(network.STA_IF) nic.active(True) if not nic.isconnected():…

要找事做,我真怕被闲死

要找事做,我真怕被闲死 | 昨晚睡足了5个多小时,元气开始恢复,今晨6点钟醒来,如厕后无睡意,便窝在被子里闭目养神,同时想心事。 7点钟翻身起床穿衣洗刷后,烧瓶开水泡杯浓茶,打开电脑…

无人机航迹规划:五种最新智能优化算法(GRO、SWO、COA、LSO、KOA)求解无人机路径规划MATLAB

一、五种算法(GRO、SWO、COA、LSO、KOA)简介 1、淘金优化算法GRO 淘金优化算法(Gold rush optimizer,GRO)由Kamran Zolf于2023年提出,其灵感来自淘金热,模拟淘金者进行黄金勘探行为。VRPTW&am…

idea配置tomcat参数,防止nvarchar保存韩文、俄文、日文等乱码

描述下我的场景: 数据库服务器在远程机器上,数据库使用的Oracle,字符集是ZHS16GBK,但保存韩文、俄文、日文等字段A的数据类型是nvarchar(120),而nvarchar使用的是Unicode 编码,有点乱。。 遇到的问题&…

Thinkphp8 - 连接多个数据库

// 数据库连接配置信息connections > [mysql > [// 数据库类型type > mysql,// 服务器地址hostname > 127.0.0.1,// 数据库名database > thinkphp,// 用户名username > env(DB_USER, root),// 密码password >…

Java图像编程之:Graphics

一、概念介绍 1、Java图像编程的核心类 Java图像编程的核心类包括: BufferedImage:用于表示图像的类,可以进行像素级的操作。Image:表示图像的抽象类,是所有图像类的基类。ImageIcon:用于显示图像的类&a…

3、FFmpeg基础

1、FFmpeg 介绍 FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库。 2、FFmpeg 组成 - libavformat:用于各种音视频[封装…

敏捷开发是什么?敏捷开发流程是怎么样的?

1. 什么是敏捷开发? 敏捷开发是一种迭代、增量式的软件开发方法,旨在通过灵活、协作和快速响应变化的方式,提高开发团队的效率和产品的质量。相较于传统的瀑布式开发模型,敏捷开发更加注重用户需求的响应和团队协作&#xff0…

tomcat+idea--如何在idea上发布项目

对应于idea2022以后的版本 (一)如何配置idea上的tomcat? 1、新建一个项目,左上角File,new,project,新建后就和普通的java项目一样。 2、然后点击项目名,右键选择“Add framework s…

JUL日志

文章目录 JUL日志JUL日志讲解Properties配置文件编写日志配置文件Lombok快速开启日志Mybatis日志系统 JUL日志 如果使用System.out.println来打印信息,项目中存在大量的控制台输出语句,会显得很凌乱,而且日志的粒度是不够细的,假…

汽车ECU的虚拟化技术初探(二)

目录 1.概述 2.U2A虚拟化方案概述 3.U2A的虚拟化功能概述 4.虚拟化辅助功能的使能 5.留坑 1.概述 在汽车ECU的虚拟化技术初探(一)-CSDN博客里,我们聊到虚拟化技术比较关键的就是vECU的虚拟地址翻译问题,例如Cortex-A77就使用MMU来进行虚实地址的转换…

C语言——贪吃蛇

一. 游戏效果 贪吃蛇 二. 游戏背景 贪吃蛇是久负盛名的游戏,它也和俄罗斯⽅块,扫雷等游戏位列经典游戏的⾏列。 贪吃蛇起源于1977年的投币式墙壁游戏《Blockade》,后移植到各种平台上。具体如下: 起源。1977年,投币式…

KDE Plasma 6 将不支持较旧的桌面小部件

KDE Plasma 6 进行了一些修改,需要小部件作者进行调整。开发人员,移植时间到了! KDE Plasma 6 是备受期待的桌面环境版本升级版本。 最近,其发布时间表公布,第一个 Alpha 版本将于 2023 年 11 月 8 日上线&#xff0…

Elasticsearch概述

Elasticsearch(ES)是一个基于Lucene库构建的开源搜索引擎。它提供了一个分布式、多租户的全文搜索引擎,具有RESTful Web界面。Elasticsearch的主要特点包括: 分布式搜索引擎: Elasticsearch被设计为一个分布式系统&…

SpringCloud——负载均衡——OpenFeign

Feign是一个声明式的客户端接口,相比RestTemplate,更好的简化了微服务之间的调用方式。而且Feign默认集成了Ribbon,可以实现负载均衡。 1.OpenFeign与Feign OpenFeign在Feign的基础上支持SpringMVC的注解。OpenFeign的FeignClient可以解析Re…

NestJS——基于Node.js 服务器端应用程序的开发框架

文章目录 前言什么是 NestJS? 一、NestJS特性?二、使用步骤Typescript 知识后端开发基本知识新建项目目录结构 前言 Nestjs中文文档 什么是 NestJS? Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架。它利用…

HuggingFace模型头的自定义

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 在本文中我们将介绍如何使HuggingFace的模型适应你的任务,在Pytorch中建立自定义模型头并将其连接到HF模型的主体&#…