龙芯板卡内存压力测试方法

龙芯板卡内存压力测试方法

一、自动分配方式

推荐方法

1.1 准备工作:

  • 获取内存测试ddr.tar.gz包,提取码:dama
  • 解压ddr.tar.gz 包,解压 命令 tar -zxvf ddr.tar.gz ,解压后得到ddr目录
  • ddr目录里有:README.txt、run、 stressapptest 文件和 result 目录

1.2 帮助信息README.txt 内容

下内存压力测试程序说明
操作流程:

  • 启动到系统下,打开终端,进入超级用户下 sudo -i
  • 修改权限 chmod +x run
  • 开始测试,有三种模式,分别是
    a、执行 ./run 备注a: 不带参数直接运行 ./run 默认是3600s
    b、执行 ./run time 备注b:参数time 单位是秒
    c、执行 ./run -h time 备注c:参数time 单位是小时
    备注:脚本运行内容:将系统剩余的内存容量的80%进行压力测试,总共开10进程
  • 运行后,每间隔60s 检测一次是否有错误,如果出错立即停止
  • 结果保存到当前result目录里

结果:

  • 测试成功:
    终端下打印 "DDR test is OK ^_^ "。
  • 测试失败:
    终端下打印 “DDR test is error!!!”。 ,错误日志保存到当前result 目录下。

二、 手动分配方式

1、 测试工具

2、创建执行脚本ddr.sh,内容如下:

#!/bin/sh

filestr="./"
logname="ddr.log"
tmpname="tmp.log"
errname="err.log"

pwdfile=$filestr$logname    #存储log
errfile=$filestr$errname    #存储err
tmpfile=$filestr$tmpname    #临时文件

check=60                    #检测间隔

while true
do
echo -n "Input Range: 1 ~ 25\n"
echo -n "Input number of processes: "
read line1
if [ $line1 -lt 25 ]; then
    if [ $line1 -gt 0 ]; then
        echo Enter value: $line1
		echo $line1 > $tmpfile
        break
    fi
fi
done

cont=$(cat $tmpfile)
echo "\n"

while true
do
echo -n "Input Range: 1 ~ 1000\n"
echo -n "Input -M parameter: "
read line1
if [ $line1 -lt 1000 ]; then
    if [ $line1 -gt 0 ]; then
        echo Enter value: $line1
		echo $line1 > $tmpfile
        break
    fi
fi
done

size=$(cat $tmpfile)
echo "\n"


while true
do
echo -n "Input Range: 1 ~ 1000000\n"
echo -n "Input -s parameter: "
read line1
if [ $line1 -lt 1000000 ]; then
    if [ $line1 -gt 0 ]; then
        echo Enter value: $line1
		echo $line1 > $tmpfile
        break
    fi
fi
done

seco=$(cat $tmpfile)
echo "\n"

echo "stressapptest -M $size -s $seco"

rm $pwdfile -rf

date > $pwdfile

for i in $(seq 1 $cont) 
do
	echo "OPEN stressapptest conts --->$i "
	./stressapptest -M $size -s $seco >> $pwdfile &
    sleep 1
done

sleep 10
echo "----------------------------------------------------------------\n"
echo "View remaining memory capacity:\n"
free -m |tee -a  $pwdfile
echo "----------------------------------------------------------------\n"

for j in $(seq 1 $(($seco/$check))) 
do
    tail -2000  $pwdfile > $tmpfile
    grep "reread" $tmpfile > $errfile
	if [ $? -eq 0 ]; then
        rm $tmpfile -rf
		echo "DDR test is error!!!"
        echo "Stressapptest is running for $(($j*$check)) seconds, DDR test is error!" >> $errfile
		killall -9 stressapptest
		killall	sleep
        exit
	fi
	
	if [ -e "/sys/class/hwmon/hwmon0/temp1_input" ]; then
	  cat /sys/class/hwmon/hwmon0/name			|tee -a  $pwdfile
	  cat /sys/class/hwmon/hwmon0/temp1_input	|tee -a  $pwdfile
	fi

    sleep $check
    echo "Stressapptest is running for $(($j*$check)) seconds"
    
    if [ $(($j % 10)) -eq 0 ]; then
        free -m |tee -a  $pwdfile
	    echo "--$(date)-- clear caches tag[$j]" |tee -a  $pwdfile
        sync; echo 1 > /proc/sys/vm/drop_caches
        free -m |tee -a  $pwdfile
    fi
done

rm $tmpfile -rf

echo "DDR test is OK ^_^"

3、将ddr.shstressapptest放到一个目录下,修改执行权限 chmod 777 ddr.sh stressapptest
例如: 计划开5个进程,每个进程200M,测试1小时(3600秒),执行测试脚本./ddr.sh

为了保证内存压力达到最大,将free -m 看到的空闲内存尽量全部用没!!!

./ddr.sh
ddr

备注:

  1. 如果出错程序会停止,错误信息会保存到err.log文件里
  2. 整个测试过程log信息保存到ddr.log里
  3. 测试完成如没有出错则打印:DDR test is OK
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大 大猫

感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值