服务器内存测试用例

stream测试
测试memory的带宽 :Copy,Scale,Add,Triad
STREAM 是业界广为流行的综合性内存带宽实际性能 测量 工具之一。STREAM支持Copy 、Scale 、 Add、 Triad四种操作。

void tuned_STREAM_Copy()
{
    int j;
        for (j=0; j<N; j++)
            c[j] = a[j];
}
void tuned_STREAM_Scale(double scalar)
{
    int j;
    for (j=0; j<N; j++)
        b[j] = scalar*c[j];
}
void tuned_STREAM_Add()
{
    int j;
    for (j=0; j<N; j++)
        c[j] = a[j]+b[j];
}
void tuned_STREAM_Triad(double scalar)
{
    int j;
    for (j=0; j<N; j++)
        a[j] = b[j]+scalar*c[j];
}

Copy操作最为简单,它先访问一个内存单元读出其中的值,再将值写入到另一个内存单元。
Scale操作先从内存单元读出其中的值,作一个乘法运算,再将结果写入到另一个内存单元。
Add操作先从内存单元读出两个值,做加法运算, 再将结果写入到另一个内存单元。
Triad的中文含义是将三个组合起来,在本测试中表示的意思是将Copy、Scale、Add三种操作组合起来进行测试。具体操作方式是:先从内存单元中中读两个值a、b,对其进行乘加混合运算(a + 因子 * b ) ,将运算结果写入到另一个内存单元。

计算内存理论带宽值时,一定要用内存实际运行频率
dmidecode -t memory |grep ‘Configured Clock Speed’
内存理论带宽值计算方式:
內存理论带宽值(MB/s) = 內存实际运行频率(MHz)×channel总数×64bit÷8

stress测试:
服务器的内存稳定性,一般是通过linux下通过stressapptest来验证,一般跑20个小时,跑的内存大小一般把内存跑的仅剩100M左右即可,每次跑完,free一下还剩多少内存;

1,首先要确保测试环境的搭建,比如用什么样的系统,什么版本的bios,BMC,kernel,CPLD等等。

2,所有的测试环境搭建好后,需要在bios 里查看一下内存,版本的型号和客户要求的确定一下。

3,所需要的指令。
查询CPLD的版本,需要用到一个工具 FlashTool,
u盘挂载 : mount /dev/sdb /mnt
卸载U盘: umount /mnt
modprobe ipmi_devintf
./FlashTool164Bit -p balder -t cpld -i 1 -v

查询BMC的版本
ipmitool mc info

查询BIOS的版本号
dmidecode -s bios-version

查询内核版本
uname -r
cat/prob/version
lsb_release -a

查询内存信息
查看内存,已经使用多少插槽.每条内存多大
modprobe ipmi_devintf
ipmitool sel list
dmidecode -t memory | grep size
dmidecode -t 17 | grep “mhz” wc -l

4 确定版本信息无误以后需要修改时间
修改系统时间
date -s “2020-08-12 15:30:23”
修改BMC时间
hwclock --systohc

5 确保以上信息无误后,重启一下网络,检查IP
service network restart
ifconfig
6 在运行stress和stream测试之前,最好清理一下log
python Logxxxxxxx.py --before

7 开始测试stress,
./stressappt -s 72000 -M 900000 -l stress.log
-s 代表秒数, 比如20个小时 即72000秒
-M代表大小 , 比如64G161024*0.9=940000M
-l 代表结果log,跑出来的结果会存放在stess.log里边

8, 测试stream。
运行脚本即可
9,测试完需要收集log,并检查error信息
python Logxxxxxxx.py --after
10,开启SSH服务
service sshd start
或者 /etc/init.d/sshd start
注意:Debian从8.0开始,默认关闭了SSH。打开的方式如下:
1,修改sshd_config文件,命令:vi /etc/ssh/sshd.config
2, 将 #PemitRootLogin 设置为yes
3,启动SSH服务
service sshd start 或者 /etc/init.d/sshd start
4,查看SSH服务状态,命令:/etc/init.d/ssh status
5, 添加开机自启动 update-rc.d ssh enable,关闭为:update-rc.d ssh disabled

所遇问题:
1 CPU过热触发CPU保护机制,导致stress运行几十秒,便reboot
解决办法:将几台置放在机架里进行测试
2.设置参数过大,导致运行reboot
解决方法:可以将参数设置偏小一点,比如0.8乘内存
3,网卡没有启动,没有IP
有时需要配置静态IP
vim /etc/sysconfig/network-scripts/ifcon-xxxx
ONBOOT=yes
BOOTRROTO=dhcp
IPADDR=172.17.0.232
NETMASK=255.255.254.0

4.mcelog 不停弹出 需要关闭
error分析:mcelog 硬件检测日志,重新安装一下固件
service mcelogd stop

5.出现错误:Free memory/Total memory (free %) :
分析:很有可能是硬件问题。比如CPU,DIMM 没有插好,重新安装后,正常运行

6 mce log 分析
name server cannot be used, reason: Temporary failure in name resolution
原因分析:
做同步时间的时候,执行命令操作:
[root@zhanglin ~]# /usr/sbin/ntpdate pool.ntp.org
会报错:
Name server cannot be used, exiting18 Dec 19:39:39 ntpdate[3592]: name server cannot be used, reason: Temporary failure in name resolution

1、首先确认ntpd 服务是开启的。
[root@retail-153 ~]# /etc/init.d/ntpd start
正在启动 ntpd: [确定]

2、检查你的DNS是否添加,如果没有添加,就把你所使用的添加上去。
编辑文件:

[root@zhanglin ~]# vi /etc/resolv.conf

nameserver 202.99.144.12
nameserver 202.99.143.11

或者添加通用DNS: nameserver 8.8.8.8

测试:
[root@zhanglin ~]# ntpdate pool.ntp.org
18 Dec 13:40:32 ntpdate[23722]: the NTP socket is in use, exiting
[root@retail-153 ~]# date -R
Thu, 18 Dec 2014 13:40:36 +0800

failed to prefill DIMM database from DMI data

kernel: [ 467.888916] mce: [Hardware Error]: Machine check events logged

MCE 0
CPU 0 BANK 8
MISC 200400c02fe01086 ADDR 6ebfc0bdc0
TIME 1597312040 Thu Aug 13 17:47:20 2020
MCG status:
MCi status:
Error overflow
Corrected error
Error enabled
MCi_MISC register valid
MCi_ADDR register valid
MCA: MEMORY CONTROLLER RD_CHANNEL1_ERR
Transaction: Memory read error
STATUS dc10000001010091 MCGSTATUS 0
MCGCAP f000c14 APICID 0 SOCKETID 0
CPUID Vendor Intel Family 6 Model 85
Hardware event. This is not a software error.

原因分析:

通过mcelog工具分析是在读内存的时候Error overflow(虽然是ECC内存,但也无奈错误太多),估计是内存硬件故障,如果再次出现的话就得考虑更换内存。

最终原因:硬件故障,应该是主板问题,因为是线上服务器为减少计划内停机时间,同时更换主板和内存解决。

mcelog: Corrected memory errors on page 6ea50e0000 exceed threshold 10 in 24h: 10 in 24h

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值