linux内存条排查

本文介绍了一种通过服务器日志信息来定位具体故障内存条的方法。通过解析内核日志中的错误信息并结合dmidecode命令获取的内存布局,确定了故障内存的具体位置。
已发现2个内存错误,应用名称(kernel:),日志内容(hangzhou-jishuan-DDS0248 kernel: sbridge: HANDLING MCE MEMORY ERROR hangzhou-jishuan-DDS0248 kernel: EDAC MC0: CE row 5, channel 0, label CPU_SrcID#0_Channel#3_DIMM#1:1 Unknown error(s): memory scrubbing on FATAL area : cpu=0 Err=0008:00c1 (ch=1), addr = 0x1c9bea000 = socket=0, Channel=3(mask=8), rank=5)
 
如何判断是第几条内存?
 
获取服务器内存信息(此信息可以在报修的时候提供给硬件厂商工程师,记得告诉他们仅供参考)。
 
shell命令:dmidecode | grep -A 9 -B 6 DIMM | grep Bank
 
        Bank Locator: BRANCH 0 CHANNEL 1 DIMM 0
        Bank Locator: BRANCH 0 CHANNEL 1 DIMM 1
        Bank Locator: BRANCH 0 CHANNEL 2 DIMM 0
        Bank Locator: BRANCH 0 CHANNEL 2 DIMM 1
        Bank Locator: BRANCH 0 CHANNEL 3 DIMM 0
        Bank Locator: BRANCH 0 CHANNEL 3 DIMM 1
        Bank Locator: BRANCH 1 CHANNEL 1 DIMM 0
        Bank Locator: BRANCH 1 CHANNEL 1 DIMM 1
        Bank Locator: BRANCH 1 CHANNEL 2 DIMM 0
        Bank Locator: BRANCH 1 CHANNEL 2 DIMM 1
        Bank Locator: BRANCH 1 CHANNEL 3 DIMM 0
        Bank Locator: BRANCH 1 CHANNEL 3 DIMM 1
 
内存顺序是从上向下1-12.根据报错信息CPU_SrcID#0_Channel#3_DIMM#1 : 得到CPU_SrcID 0,CHANNEL 3,DIMM 1。
 
可以判断为第六条条内存故障,也可以说第一颗cpu控制内存区域,CHANNEL为3,内存id为1。

转载于:https://www.cnblogs.com/dailidong/p/7571211.html

Linux 内存泄漏排查的方法有很多种,这里介绍一些常用的方法: 1. 使用 Valgrind 工具:Valgrind 是一个强大的开源工具集,可以用来检测内存泄漏、越界访问、使用未初始化的内存等问题。使用 Valgrind 工具可以非常方便地发现内存泄漏问题,具体使用方法如下: ```bash valgrind --leak-check=full ./your_program ``` 这条命令会在运行你的程序时启动 Valgrind 工具,并检查程序中的内存泄漏问题。Valgrind 工具会输出详细的检查结果,包括内存泄漏的位置、大小等信息。 2. 使用 GNU glibc 内存泄漏检测:GNU glibc 是 Linux 系统中常用的 C/C++ 库,它提供了一些内存泄漏检测的函数。具体使用方法如下: ```c++ #include <mcheck.h> int main(int argc, char* argv[]) { mtrace(); // your code here muntrace(); return 0; } ``` 这段代码会在程序启动时调用 `mtrace()` 函数,启用内存泄漏检测功能。在程序结束时,调用 `muntrace()` 函数来关闭检测功能。通过这种方法,可以在程序运行时检查内存泄漏问题,并输出相应的检测结果。 3. 手动检查代码:手动检查代码是一种比较耗时、费力的方法,但是可以帮助程序员深入了解程序的内部实现。具体方法是,在程序中添加日志输出或者调试信息,记录每个内存分配和释放的位置、大小等信息,然后分析这些信息来确定是否存在内存泄漏问题。 需要注意的是,内存泄漏只是 Linux 内存管理中的一个问题,还有很多其他问题也需要注意,比如内存越界访问、使用未初始化的内存等问题。因此,在开发程序时,应该注意遵循良好的编程习惯,确保程序的健壮性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值