linux 占用内存 脚本,linux内存测试(占用)脚本

内存测试脚本,有bug,继续更新中...#!/bin/bash#################################################

内存测试脚本,有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: to start or to clear env'

fi

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

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

#include #include #include #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();

}