linux内存测试(占用)脚本

内存测试脚本,有bug,继续更新中...

#!/bin/bash
################################################################
#       mem used script
#       eg. ./mem.sh 60G 3600(unit: s) to start testing
#       eg. ./mem.sh stop  to stop testing and clear env
#       update: 2019-1-22  pansaky
################################################################
num=$1
tm=$2

start()
{
sudo mkdir /tmp/memory
sudo mount -t tmpfs -o size=$num tmpfs /tmp/memory
dd if=/dev/zero of=/tmp/memory/block
sleep $tm
}

stop()
{
pid=`ps -ef |grep "mem.sh"|grep -v grep|awk '{print $2}'`
if [ -n "$pid" ];then
        kill -9 $pid
fi
sudo rm -rf /tmp/memory/block
sudo umount /tmp/memory
sudo rmdir /tmp/memory
}
main()
{
if [ $num == 'stop' ];then
        stop
else
        start > mem.log 2>&1
fi
}

if [ $# = 2 -o $# = 1 ];then
        main
#elif [ -z $1 -a -z $2 ];then
else
        echo 'Usage: ./mem.sh 60G 3600(unit: s) or ./mem.sh stop'
fi

更新后脚本,第一个留着鄙视自己哈~

#!/bin/bash
################################################################
#       mem used script
#       eg. ./mem.sh 60G & to start testing
#       eg. ./mem.sh stop  to stop testing and clear env
#       update: 2019-1-22  pansaky
################################################################
num=$1
user=`whoami`

start()
{
if [ -d /tmp/memory ];then
        echo "the dir "/tmp/memory" is already exist!, use it." >> mem.log
else
        sudo mkdir /tmp/memory
        mount -t tmpfs -o size=$num tmpfs /tmp/memory
fi
dd if=/dev/zero of=/tmp/memory/block >> mem.log 2>&1
}

stop()
{

rm -rf /tmp/memory/block
umount /tmp/memory
rmdir /tmp/memory
if [ -d /tmp/memory ];then
        echo "Do not remove the dir \"/tmp/memory\", please check "
else
        echo "clear env is done!"
fi
}
main()
{
if [ $num == 'stop' ];then
        stop
elif [ $user != "root" ];then
        echo "please use the \"root\" excute script!"
        exit 1
else
        start
fi
}

if [ $# = 2 -o $# = 1 ];then
        main
else
        echo 'Usage: <./mem.sh 60G &> to start  or <./mem.sh stop>  to clear env'
fi

看到别人写的c脚本 拉过来用一哈

/*usage: cc mem.c -o mem.out 后 使用./mem.out 100 & 消耗对应数字MB单位的内存,释放时杀掉对应进程即可*/
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

#define UNIT (1024*1024)

int main(int argc, char *argv[])
{
        long long i = 0;
        int size = 0;

        if (argc != 2) {
                printf(" === argc must 2\n");
                return 1;
        }
        size = strtoull(argv[1], NULL, 10);
        if (size == 0) {
                printf(" argv[1]=%s not good\n", argv[1]);
                return 1;
        }

        char *buff = (char *) malloc(size * UNIT);
        if (buff)
                printf(" we malloced %d Mb\n", size);
        buff[0] = 1;

        for (i = 1; i < (size * UNIT); i++) {
                if (i%1024 == 0)
                        buff[i] = buff[i-1]/8;
                else
                        buff[i] = i/2;
        }
        pause();
}

猜你喜欢

转载自blog.csdn.net/pansaky/article/details/86599280