6-测试内存告警

在 CentOS 8 中,如果你无法直接找到 epel-release 包或是遇到其他仓库配置问题,你可能需要使用其他方式添加EPEL仓库。由于 CentOS 8 已经达到了其生命周期的结束,官方仓库和EPEL仓库的管理可能会有所不同。这里有一种方法可以手动添加EPEL仓库:

手动添加EPEL仓库

  1. 下载 EPEL Release 包:
    你可以手动下载并安装 EPEL release 包。首先需要找到合适的下载链接。通常情况下,你可以从 Fedora项目的EPEL页面获得这些链接。

    在这里,我会提供一个通用的命令来下载并安装EPEL release,但请确保从可靠的来源获取最新的信息:

    sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    
  2. 安装 stress:
    安装了 EPEL 仓库后,尝试再次安装 stress

    sudo dnf install stress
    

验证安装

安装完成后,你可以运行以下命令来确认 stress 是否已正确安装:

stress --version

如果这些步骤仍然不起作用,可能是因为网络问题或是仓库配置问题。在这种情况下,考虑检查网络设置或是尝试从其他可靠来源手动下载 stress 的RPM包进行安装。

此外,因为 CentOS 8 的支持已经结束,考虑升级到一个得到支持的系统版本,如 CentOS Stream 或其他类似的发行版,可能会更有助于解决软件包管理和安全更新的问题。

如果你希望通过脚本模拟内存使用增加,达到系统内存利用率的提高,我们可以使用一种更直接的方法,即分配并锁定内存,使得它不会被操作系统回收。在Linux环境中,这可以通过使用mlock在C语言程序中实现,或者通过特定的命令行工具。

下面是一个简单的shell脚本示例,使用stress工具来增加内存使用。stress是一个通用的系统压力测试工具,可以很容易地安装并用于生成高内存负载。

安装stress

首先,你需要安装stress。在Ubuntu或Debian系统上,可以使用以下命令安装:

sudo apt-get update
sudo apt-get install stress

编写脚本

这个脚本将使用stress来创建内存压力,并监控内存使用情况,直到达到95%:

#!/bin/bash# 目标内存使用率
TARGET_USAGE=95# 函数:获取当前内存使用率
get_mem_usage() {echo $(free | grep Mem | awk '{print int($3/$2 * 100)}')
}# 检查当前内存使用率
CURRENT_USAGE=$(get_mem_usage)
echo "Current memory usage is $CURRENT_USAGE%."# 如果当前使用率低于目标,则使用stress增加内存使用
if [ "$CURRENT_USAGE" -lt "$TARGET_USAGE" ]; then# 计算需要多少内存来达到目标使用率TOTAL_MEM=$(free | grep Mem | awk '{print $2}')TARGET_MEM=$(echo "($TOTAL_MEM * $TARGET_USAGE / 100) - ($TOTAL_MEM * $CURRENT_USAGE / 100)" | bc)TARGET_MEM_MB=$(echo "$TARGET_MEM / 1024" | bc)echo "Increasing memory usage by $TARGET_MEM_MB MB to reach $TARGET_USAGE%."# 使用stress工具增加内存使用stress --vm-bytes ${TARGET_MEM_MB}M --vm-keep -m 1 &STRESS_PID=$!# 定期报告内存使用情况while :doCURRENT_USAGE=$(get_mem_usage)echo "Memory usage: $CURRENT_USAGE%."sleep 5# 检查是否达到或超过目标使用率if [ "$CURRENT_USAGE" -ge "$TARGET_USAGE" ]; thenecho "Target memory usage reached. Stopping stress."kill -SIGTERM $STRESS_PIDwait $STRESS_PIDbreakfidone
elseecho "Memory usage is already at or above the target."
fiecho "Press [CTRL+C] to stop..."

运行脚本

  1. 将上述内容保存到一个文件中,如increase_memory.sh
  2. 赋予脚本执行权限:
    chmod +x increase_memory.sh
    
  3. 运行脚本:
    ./increase_memory.sh
    

注意事项

  • 运行此脚本可能对系统性能产生严重影响,特别是在内存使用率接近设定的上限时。
  • 这个脚本将持续运行,直到你手动中断它(使用CTRL+C)。
  • 使用stress增加内存可能导致系统不稳定,特别是在没有足够空闲内存的情况下。
  • 脚本运行期间,stress命令将占用指定的内存量,不会释放,直到脚本停止。确保你的系统可以承受这种高内存需求的测试。

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

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

相关文章

【笔记】EF文件中定义的SPN显示协议规则

规则配置 SPN_bit 和PLMN_bit对应EF_SPN的bit1和bit2 如EF_SPN: bit10;bit2 0, 则HOME显示SPN,ROAMING显示SPN-PLMN SPN_bit 2, PLMN_bit 0 显示SPN,不显示PLMN。 客制化通过CarrierConfig “spn_display_condition_override_…

【Spring进阶系列丨第九篇】基于XML的面向切面编程(AOP)详解

文章目录 一、基于XML的AOP1.1、打印日志案例1.1.1、beans.xml中添加aop的约束1.1.2、定义Bean 1.2、定义记录日志的类【切面】1.3、导入AOP的依赖1.4、主配置文件中配置AOP1.5、测试1.6、切入点表达式1.6.1、访问修饰符可以省略1.6.2、返回值可以使用通配符,表示任…

静电场中的导体与介质

静电场可能分布于填充了各种媒质的区域。虽然媒质宏观上保持电中性,但其内部的各种微观带电系统不可避免地会与静电场相互作用。 一般而言,媒质可分为三类:导体、介质(绝缘体)和半导体。在静电场中半导体特性与导体类似,因此仅就…

10. TypeScript面向对象的类(Class)

在 TypeScript 中,类是面向对象编程的基础,它们提供了一种方式来封装数据和行为。本文将详细介绍 TypeScript 中类的概念和用法。TypeScript扩展了ES的功能,跟JAVA关于面向对象的概念和写法很类似。 1. 类的基本概念 在 TypeScript 中&#…

964: 数细胞

样例: 解法: 1.遍历矩阵 2.判断矩阵[i][j],若是未标记细胞则遍历相邻所有未标记细胞并标记,且计数 实现:遍历相邻所有未标记细胞 以DFS实现: function dfs(当前状态) {if (终止条件) {}vis[标记当前状…

.NET 设计模式—迭代器模式(Iterator Pattern)

简介 迭代器模式(Iterator Pattern)是一种行为型设计模式,它允许我们通过提供一种方法来访问聚合对象中的元素,而不需要暴露聚合对象的内部实现。在迭代器模式中,我们通过创建一个迭代器对象来遍历聚合对象中的元素&a…

PyQt5结合Yolo框架打包python为exe文件完整流程

一、准备 1.安装 pyinstaller pip install pyinstaller 更新(初次安装忽略) pip install --upgrade pyinstaller 2.安装 auto-py-to-exe 安装 pip install auto-py-to-exe 打开工具 auto-py-to-exe.exe auto-py-to-exe 可视化转换工具&#xff1…

JAVAEE之Spring AOP

1. AOP概述 AOP是Spring框架的第⼆⼤核⼼(第⼀⼤核⼼是IoC) 1.1 什么是AOP? • Aspect Oriented Programming(⾯向切⾯编程) 什么是⾯向切⾯编程呢? 切⾯就是指某⼀类特定问题, 所以AOP也可以理解为⾯向特定⽅法编程. 什么是⾯向特定⽅法编…

jenkins+docker集成harbor实现可持续集成

目录 一、前言 二、Harbor介绍 2.1 什么是Harbor 2.1.1 Harbor架构图 2.2 Harbor 特征 2.3 Harbor 核心组件 2.4 Harbor使用场景 三、Harbor部署 3.1 安装docker compose 3.1.1 安装方式一 3.2 基于python3 pip安装docker compose 3.2.1 安装python3 3.2.2 安装pyt…

Linux makefile文件

makefile格式: make makefile/Makefile(大小写都可以): make是一个命令,makefile是一个目录文件 现在你写了一个test.c文件,要编译运行。 输入命令:vim makefile 在makefile文件内输入: myte…

Vue项目Nginx配置自定义路径别名

第一步:在vite.config.js中配置base的路径 在打包项目之前需要在vite.config.js中配置base的路径,路径名为服务器自定义的路由别名: 比如: import { fileURLToPath, URL } from "node:url";import { defineConfig } from "v…

什么是隐马模型

目录 什么是隐马模型 举例简单理解 什么是隐马模型 隐马尔可夫模型(Hidden Markov Model,HMM)是一种统计模型,用于描述一个含有隐含未知参数的马尔可夫过程。其难点在于从可观察的参数中确定该过程的隐含参数,并利用这些参数来作进一步的分析,例如模式识别。 隐马尔可…

互联网轻量级框架整合之设计模式

反射技术 Java的反射技术能够通过配置类的全限定名、方法和参数完成对象的初始化,甚至反射某些方法,大大的增强了Java的可配置型,这也是Spring IoC的底层原理,Java的反射技术覆盖面很广,包括对象构建、反射方法、注解、…

JavaScript 中什么应用场景下必须用 map 而不是对象来实现功能

前言 很多情况下,能用 map 实现的功能用对象也可以实现,都是基于键值对,但是在一些情况下,必须要使用 map 才可以。 必须用 map 而不是 object 的情况 键的类型不限:普通对象的键总是被转换为字符串或者 Symbols&a…

C#简单工厂模式的实现

using System.Diagnostics.Metrics; using System.Runtime.InteropServices; using static 手写工厂模式.Program;namespace 手写工厂模式 {internal class Program{public interface eats {void eat();}//定义了一个接口public class rice : eats{public void eat() {Console.…

Qt快速入门(Opencv小案例之人脸识别)

Qt快速入门(Opencv小案例之人脸识别) 编译出错记录 背景 因为主要使用qt,并且官网下载的win版本的编译好的opencv默认是vc的,所以我们需要自己下载opencv的源码使用mingw自行编译,我直接使用的vscode。 报错 报错…

【JavaWeb】Day43.MySQL概述——索引

介绍 索引(index):是帮助数据库高效获取数据的数据结构 。简单来讲,就是使用索引可以提高查询的效率。 优点: 1. 提高数据查询的效率,降低数据库的IO成本。 2. 通过索引列对数据进行排序,降低数据排序的成本&#…

C++系列-C++前言

什么是C C语言是结构化和模块化的语言,适合处理较小规模的程序,对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适,为了解决软件危机,20世纪80年代,计算机界提出…

Ant Design Vue Table 自定义渲染与自定义单元格

自定义渲染 自定义渲染主要通过customRender属性来实现,它允许你针对特定的列定义自己的渲染逻辑。通常情况下,你需要提供一个函数,这个函数会接收三个参数:text(待渲染的文本)、record(整行数…

Python 编程 深入了解内存管理机制、深拷贝与浅拷贝

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、对象和引用、内存管理机制 Python 中的一切都是对象,包括数字、字符串、列表和函数等。为了简化内存管理并提高效率,Python 采用了统一的对象模型。在这个模型中&#xff0c…