服务器内存问题总结

记一次问题排查的过程-服务器内存问题 记一次问题排查的过程 阅读详情

       http://blog.youkuaiyun.com/wclin88/article/details/7277028

       最近服务器总是不定时的奔溃,从core文件的堆栈上看,是奔溃在lua的实现文件里面,都是分配内存或是释放内存时发生的。

查看目录/var/log下的messages文件,可以发现有这样的日志
 *** glibc detected ***   free(): invalid next size (normal 或fast): 0x00000000d15bd970 *** 或
double free or corruption (fasttop): 0x0000000000c0d010 ***;
从网上搜索到的信息,出现第一种信息的原因是错误释放内存(有可能是由于malloc()调用时的参数不对或是使用指针越界了);
第二种是重复释放了同一块内存(free两次同一个指针)。
下面的一个例子:
这里操作越界没为问题,但是free时就出现了invalid next size(fast)的信息;
int main(int argc,char **argv)
{
        char    *str;
        str = (char*)malloc(sizeof(char)*MAX_NUM);
        if(!str)
                exit(-1);

       for(int i=0;i<MAX_NUM+12333;i++)
      {
                str[i] = 'a';
      }
       free(str);
       printf("Done\n");
       return 0;
}

郁闷的是现在服务器代码量太大,一时还找不到是什么地方出错,而且lua代码又是另一个同事写的,只能先对现在能找到的操作堆内存的数组加上进行大小检测的代码。
另外,从网上资料可以查到,上面出现的两个错误日志信息是linux一个叫glibc 的工具打印出来的。
在默认的情况下,产生错误的程序也会被中止。但是,这(以及是否产生错误信息)可以通过环境变量 MALLOC_CHECK_ 来控制。以下的设置 是被支持的:
0 - 不产生错误信息,也不中止这个程序
1 - 产生错误信息,但是不中止这个程序
2 - 不产生错误信息,但是中止这个程序
3 - 产生错误信息,并中止这个程序
备注
如果 MALLOC_CHECK_ 被设置为除 0 以外的值,这会使 glibc 进行更多的检查并可能影响到系统 的性能。

所以我先把出现问题频繁的服务器的MALLOC_CHECK_ 先设置为1,作为一个缓兵之计。
(把export MALLOC_CHECK_=1 放到/etc/profile里,然后执行.  /etc/profile使其生效)

其他资料:http://blog.youkuaiyun.com/ixidof/article/details/5662621

精:http://blog.youkuaiyun.com/tommy_lgj/article/details/2790452


后:记得当时试过上面的“缓兵之计”,但是没有生效。最后找到的原因时一个写入越界的代码引起的。

记录一次服务器内存使用率过高达到90%告警问题排查。 一大早就有一个电话过来:“你快看看,这台服务器怎么一直在告警,90%的使用率,一直下不去”。作为牛马的我立马就起身了,心里想:我也不是专业运维啊,啥事都来找我。抱着试一试的心态就上了堡垒机看那下。 阅读详情

相关推荐

IEC 62056协议栈深度拆解:从物理层握手到应用层AARQ,一次完整的DLMS通讯抓包分析

本文深入解析IEC 62056协议栈(DLMS/COSEM)的全流程通信机制,从物理层握手到应用层AARQ建立,提供详细的抓包分析和实战指南。涵盖RS-485配置、HDLC帧解析、OBIS编码解读等核心内容,并附有常见故障排查技巧,助力开发者高效实现电能表数据采集。

weixin_29182481的博客 312

超微主板BIOS常见报错代码

超微主板BIOS自检时,部分问题会在显示器上输出,debug码会在屏幕的右下角以数字和字母组合的方式显示。详细的debug码解释可以参照"超微主板_AMI_BIOS_POST_Codes_for_Grantley_Motherboards.pdf"中内容,以下内容为个人总结。问题描述:BIOS自检卡07,IPMI可以正常获取IP地址,且可以连接使用。问题描述:显示器接主板集成VGA接口,开机后,显示器输出报错,且无法继续。BIOS自检时卡在此报错,进BIOS中识别到的内存容量减少。

u013250861的博客 2万+

第 4 课 树莓派5的换源与中文输入法

树莓派换源、中文输入法的安装

嵌入式老牛的博客 2288

dell服务器查看内存详细信息,DELL R710服务器内存故障排错

DELL R710服务器内存故障排错dmidecode - DMI table decoder通过dmidecode可以得知,有点像windows下的资源管理器man dmidecode 可以得到详细的介绍和使用方法,dmidecode - DMI table decoder,DMI (Desktop Management Interface, DMI),其他不过多赘述。可以在linux下获取有关...

weixin_39843847的博客 3369

windows搭建IIS(FTP)

适用于参加网络系统管理的学生进行学习与参考

a1119619789的博客 280

Python控制Keysight DAQ973A/DAQ970A实现数据采集

本文介绍了如何通过编程实现Keysight DAQ973A数据采集系统的自动化温度测量。首先,通过GPIB线将PC与仪器连接,并使用热电耦测量线连接被测装置。接着,通过查阅Keysight官网提供的编程手册,获取了实现温度测量所需的SCPI指令。然后,使用pyvisa库编写代码,与仪器进行交互,发送SCPI指令并读取测量结果。代码中整合了配置和查询指令,并将测量结果转换为浮点数格式。最后,将整个流程封装为命令行工具,用户可以通过配置文件设置参数,并执行自动化测试,测试结果将保存为CSV文件。整个过程实现了温

xgh1951的博客 1884

超微主板IPMI常见报错代码

问题描述:有一台服务器,经常死机重启。查看IPMI日志,虽然只有4条内存但是所有内存槽报同样错误,检查内存温度时,发现内存温度显示也不正常。问题描述:内存识别不全,查看IPMI日志发现内存报错,接显示器后看到,服务器开机BIOS自检时报内存错误。使用ipmiview连接可以正常连接,并读取信息,但是无法打开远程窗口。问题描述:有一台服务器,启动非常慢,经常无法正常启动。问题描述:服务器使用异常,蓝屏、死机。问题描述:内存识别正常,使用异常。解决办法:更换同型号、同容量内存。产生原因:内存故障导致报错。

子燕若水的博客 9753

家用扫地机器人实物拆解报告-从顶盖到每一颗螺丝 · 逐层拆解旗舰扫拖一体机器人

2026年旗舰扫拖机器人拆解报告:采用D形机身设计,主机重4.5kg,基站重12kg。核心配置包括RK3588S+STM32H743双处理器、8颗21700电池、LDS激光雷达和双摄像头+结构光导航系统。创新设计亮点:锥形滚刷自动排毛发、活水循环拖地系统、基站集成450W强力集尘和自动上下水模块(带三重防漏保护)。整机采用模块化设计,关键部件均支持快速更换,在密封性、防呆设计和降本增效方面展现出成熟的工程智慧。

智能硬件研发,欢迎交流 515

电脑服务器出现内存错误的信息,内存异常会出现什么问题

内存异常会出现什么问题你知道吗?内存分为两种,一种是运行内存,比如4GB以及6GB这些常听到的配置。还有一种则是64GB以及128GB,这些并非运行内存。一起来看看内存异常会出现什么问题,欢迎查阅!内存导致CPU专用很高的问题1:服务器上的CPU使用率很高,以前遇到的一般是某个进程有问题,或者是服务器的CPU散热不好导致的,小哥也发过文章如下:服务器CPU使用率高问题案例分享2:今天我遇到的又是服...

weixin_42098251的博客 2393

pyradiomics使用——1. 医学影像的组学特征值(Radiomics Features)提取

文章目录1. 使用插件1.1 插件安装1.2 插件使用2. 使用python代码2.1 安装2.2 使用2.2.1 官方示例2.2.2 快速使用2.2.3 其它使用3. 组学特征字段意义说明 Github地址:https://github.com/AIM-Harvard/pyradiomics 官方文档地址:https://pyradiomics.readthedocs.io/en/latest/features.html 1. 使用插件 从pyradiomics的Github仓库中可以知道,pyradio

啷个哩个啷 7367

清洁机器人之屏幕(中,大LCD)方案--ITE 联阳986x系列 soc显控芯片介绍

清洁机器人之屏幕(中,大LCD)方案--ITE 联阳986x系列 soc显控芯片介绍

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 2661

【Linux服务器】内存问题排查

Linux服务器内存问题解决思路总结

gma999的博客 4498

【面试系列】数据工程师高频面试题及详细解答

本文针对数据工程师岗位,提供了详尽的面试题库和解答,分为初级、中级和高级三个层次。初级面试题主要涉及基本的数据处理和ETL工具的使用,如SQL查询、数据清洗和基本的数据建模。中级面试题重点考察数据管道设计、数据库优化和大数据平台的应用。高级面试题则深入探讨高级数据处理技术、分布式系统架构和数据湖的实现。通过这些问题和解答,候选人可以全面了解数据工程师岗位所需的技能,帮助其更好地准备面试。常考知识点总结部分则系统归纳了数据工程师岗位的关键技能领域。

在路上的专栏 2375

4服务器内存和普通内存_Java服务器内存过高&CPU过高问题排查

一、内存过高1、内存过高一般有两种情况:内存溢出和内存泄漏(1)内存溢出:程序分配的内存超出物理机的内存大小,导致无法继续分配内存,出现OOM报错(2)内存泄漏:不再使用的对象一直占据着内存不释放,导致这块内存浪费掉,久而久之,内存泄漏的对象堆积起来,也会导致物理机的内存被耗尽,出现OOM报错2、内存过高的检测办法:通常我们的Java服务器部署在Linux机器上面,可以通过jvm自带的命令进行一些...

weixin_39996101的博客 111

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【线上问题】线上服务器内存使用量已达到90%报警-内存泄漏

2016-05-06中午11:56,收到“[sentry2]2016-05-06 11:56:09 xxxxxxhost xxx.xxx.xxx.xxx 内存使用已达到90.18%”报警。首先在脑海浮现的,应该哪里出现内存泄漏了。 一、确认问题 马上到 Sentry 监控系统查看了该服务的“服务器监控”指标,发现其中2台机器的内存使用量都超过了90%,另外2台尽然没有监控数据(以前是...

简放视野的专栏 7037

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

服务器换内存系统出问题吗,服务器换内存系统出问题

服务器换内存系统出问题 内容精选换一换裸金属服务器安装Agent后,裸金属实例出现在云监控服务管理控制台的“主机监控 > 弹性云服务器”列表中。主机监控Agent根据169.254.169.254提供的服务来判断是弹性云服务器还是裸金属服务器。如果该地址的路由被修改,则获取裸金属服务器的标识将会失败,系统默认上报数据到弹性云服务器上。手动修改Agent配置文件,在配置文件中增服务器频繁死机,...

weixin_33728584的博客 412

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

服务器新增内存不识别问题处理

服务器新增内存不识别问题处理

大新新大浩浩的博客 2360

服务器增加内存无法识别的问题分析

服务器增加内存无法识别的问题分析 一个客户在我们机房托管的服务器,联想万全的。昨天给我拿过来一条内存,说要加到服务器上。结果呢,怎么装都不行,但是内存是好好的。 后来才检查出来,是内存型号跟原装内存型号不同。 问题原因找到 ,接下来就顺利进行了。 服务器托管、租用 联系我QQ:725017833 ...

weixin_30852367的博客 1893

linux服务器内存快要溢出问题排查与解决

今天在工作的过程中,发现有一台服务器的内存达到了90%以上,所以立即对该台服务器进行了问题排查。 一、 问题排查思路 利用top命令查看进程信息(整体来看) top //使用top命令用于实时显示 process 的动态信息 按大写的M,进行排序内存大的排在前面,按小写的c命令,查看运行命令的绝对路径 查看情况如下图所示: 我们先来看一下java进程占用系统内存高的排查方法 (1) 定...

xiaoleilei666的博客 6294

JVM内存随着服务器内存的升高而升高问题排查

JVM内存随着服务器内存的升高而升高问题排查

M1275601161的博客 1133

Linux服务器内存持续上涨问题记录

本章主要记录:服务器因大量sleep进程耗尽内存的排查与解决方法。

qq_42515722的博客 1442

关于Redis服务器闪退的问题解决--内存分配的问题

关于Redis服务器闪退的问题解决-内存分配的问题 前言:对于使用redis时出现了,闪退问题 我在用idea时,启动redis服务器出现闪退,当时没注意,以为启动了出现了以下错 连接超时的问题 first:先确定是否是内存问题 找到redis的根目录 启动cmd(也可win+r一点一点找你的目录) 回车就好,并输入命令:redis-server.exe 出现这个错误说明是内存问题 有两个解决办法 ①输入命令:redis-server redis.windows.conf --maxmemory 2

qq_43573667的博客 650

服务器内存过高的问题

服务器维护期间可能会出现内存飙高的情况,这时候我们该如何去处理呢?一、通过 命令 free -h 查看当前内存使用情况。二、通过top命令查看内存占用率最高的进程。

Nicolege678的博客 2500

服务器内存超限问题_一次IM服务崩溃问题分析总结

自我感觉我们的IM服务还是挺稳定的,我们的demo服务运行了两年多,中间可能时不时更新版本,一直没有出现过问题。更有很多早期客户一直在运行都没有停过,从来没有听有客户反馈运行崩溃的问题。这两天有个客户忽然报告说他们的IM服务会反复崩溃,这让我们一下子心情紧绷起来,于是放下手中的活跟客户一起检查起来。首先看日志,发现有内存dump,说明有oom现象发生。客户...

weixin_39710462的博客 288

eclipse占用内存过大_Java服务器内存过高&CPU过高问题排查

一、内存过高1、内存过高一般有两种情况:内存溢出和内存泄漏(1)内存溢出:程序分配的内存超出物理机的内存大小,导致无法继续分配内存,出现OOM报错(2)内存泄漏:不再使用的对象一直占据着内存不释放,导致这块内存浪费掉,久而久之,内存泄漏的对象堆积起来,也会导致物理机的内存被耗尽,出现OOM报错2、内存过高的检测办法:通常我们的Java服务器部署在Linux机器上面,可以通过jvm自带的命令进行一些...

weixin_39689622的博客 2805
上一篇: C语言结构体里的成员数组和指针
下一篇: c++ 拷贝构造函数优缺点
horst_hu
博客等级 码龄15年 38粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值