一:内存的测试脚本
方式1: 备份大数据
简化版脚本
1:脚本范列
#!/bin/bash
mkdir -p /tmp/skyfans/memory
mount -t tmpfs -o size=10240M tmpfs /tmp/skyfans/memory
dd if=/dev/zero of=/tmp/skyfans/memory/block
sleep 60
rm /tmp/skyfans/memory/block
umount /tmp/skyfans/memory
rmdir -p /tmp/skyfans/memory
1: mkdir -p
创建多级目录
2: mount -t tmpfs -o size
t 表示类型,也就是挂载文件系统的类型,表面你是挂载tmpfs文件系统;
O 表示选项: 选项里的size=10240M表示10G.挂载10G到/tmp/skyfans/memory
3: dd if=/dev/zero of=/tmp/skyfans/memory/block
表示将/dev/zero 全盘数据备份到指定路径的block文件
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2
if=文件名,输入文件名,缺省为标准输入。即指定源文件。< if=input file >
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
4:umount /tmp/skyfans/memory
卸载挂载点
5:rmdir -p /tmp/skyfans/memory
删除多级目录
方式2:优化后的脚本
#!/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=`root`
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
-----------------------------
脚本执行: ./mem_test.sh 3G &
3:测试
内存测试,每间隔10秒采集一次,共计采集10次
sar -r 60 10