云计算-linux内存占用脚本
  fsRA5BavLkMu 2023年11月13日 37 0

现在需求,要求内存稳定占用一定比率,不能像之前一样使用资源消耗脚本,因为那样内存使用只会在一定时间内波动。

思路:

1、在Linux中挂载tmpfs是一种将内存作为文件系统使用的方法。tmpfs可以创建一个临时文件系统,将文件保存在内存中,这样就能消耗一定的内存空间

2、使用dd命令生成tmpfs文件,并挂载

3、检查当前内存使用率,使得内存利用率大于60%

脚本如下:

#!/bin/bash
#通过以下脚本可占用$USE大小的内存,达到提高内存使用率的目的

# 设置使用率大小
USE=60


# 获取内存信息
get_mem_info()
{
        # 剩余内存
        Free_Mem=$(free -m |grep Mem |awk '{print $NF}')

        # 总内存
        All_Mem=$(free -m |grep Mem |awk '{print $2}')

        # 当前使用内存
        Now_Use=$((All_Mem - Free_Mem))

        # 当前使用率
        Now_Rate=$((Now_Use * 100 / All_Mem))
}


#调用函数
get_mem_info

echo "空闲内存: $Free_Mem M"
echo "当前内存使用: $Now_Use M"
echo "当前内存使用率: $Now_Rate %"
echo "新增内存大小: $Set_Use M"

# 判断当前内存使用率是否小于 设置使用率
# 如果小于,则 dd创建 一定数量的 1G文件
if [[ $Now_Rate -lt $USE ]]; then

        # 新增文件大小
        Set_Use=$((All_Mem * (USE - Now_Rate) / 100))


        # 创建 临时挂载目录
        mkdir /tmp/memory

        # 挂在前先卸载
        umount /tmp/memory
        mount -t tmpfs -o size=$USE% tmpfs /tmp/memory


        # 生成几个1G的文件
        file_count=$((Set_Use / 1000))

        for ((a=1;a<=file_count;a++))
        do
                dd if=/dev/zero bs=10M count=124 of=/tmp/memory/tmpfile_can_delete_$a
        done

else

        echo "当前使用率大于 $USE"

fi

# 再次调用获取当前内存信息
get_mem_info

echo "空闲内存: $Free_Mem M"
echo "当前内存使用: $Now_Use M"
echo "当前内存使用率: $Now_Rate %"

echo "新增内存大小: $Set_Use M"

使用效果

云计算-linux内存占用脚本_临时文件

云计算-linux内存占用脚本_内存空间_02

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  ZFnT1TYZxoQn   2023年11月02日   56   0   0 ls命令文件大小
  lknfHUPOBmjT   2023年11月02日   32   0   0 git推送临时文件