百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Linux下的Nginx内存泄露定位

off999 2025-01-05 19:30 11 浏览 0 评论

有同事报他的机器上nginx存在内存泄露,都吃了4G内存没法忍了,于是赶紧查一查。

问题定位

1、先top -u work 查看进程内存占用情况,确认确实是占了4G没法忍了(下图只是整理文档时补的示例)。

2、ps -ef | grep nginx | grep -v grep | grep work

查看nginx进程确认是业务的nginx的某个worker子进程疑似存在内存泄露占了大量内存。

3、发现只有部分worker进程占用内容很大,并不是全部。cat error.log定位为什么不是worker进程都内存增大,只是个别worker进程内存占用很大?

4、发现并不是那个子进程没有内存泄露,而是那个子进程频繁被kill,然后master又重启新的子进程。

通过:dmesg | grep pid ,查看系统日志。确认那些内存占用低的worker进程是被oom kill了,然后被master又重启新的子进程。

5、确定是指定进程内存泄露后,查看该进程的内存分配,定位泄露信息。

①.通过 pmap -x pid dump出该进程的内存分配,确认确实存在超大块内存分配。

②.通过 cat /proc/pid/smaps查看内存段的具体起始位置。

③.通过gdb dump出那段内存存储内容。

gdb -p 42102

dump binary memory ./memory2.log 0x7fa1d0b57000 0x7FA1D0B70000

④.查看dump出的内容,发现是一个业务研发的nginx扩展存储的内容,确认是该扩展错在内容泄露。

  1. 问题明确后,具体修复问题就简单了,对应扩展修复问题后重新上线完成修复。

Linux进程内存分析常用工具命令

**top:**查看机器整体内存使用情况和各进程内存使用情况

**RES:**常驻内存,一般比较关心这个

**SHR:**共享内存

**VIRT:**虚拟内存

**DATA:**数据占用内存

**pmap:**pmap -x pid dump 进程的内存分配情况

**mtrace:**可以跟踪记录进程的内存分配

**gdb -p pid:**连接到进程

**cat /proc/pid/smaps:**查看内存块具体开始结束位置

**dump binary memory ./out.log 0x7fa1d0b57000 0x7FA1D0B70000:**dump出指定位置存储的内容


https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=toutiao×tamp=1661965200&author=Muller

相关推荐

Python如何操作Excel,xlrd和xlwt类库的使用

xlrd和xlwt类库简介xlrd和xlwt是Python中两个用于处理Excel文件的类库。xlrd用于读取Excel文件,xlwt用于写入Excel文件。这两个类库可以在Python中方便地处理E...

操作Excel,Python根本打不过VBA

很开心今天把一个与财务有关的Excel取数计算方面的项目收尾了。这次项目使用的是ExcelVBA语言开发。作为一名Python语言使用者,经历过这次项目开发后,更加坚定了Python根本不可能动摇V...

个人用户将Excel接入DeepSeek的详细步骤指南

个人用户将Excel接入DeepSeek的详细步骤指南,无需复杂编程基础,提供多种实现方式:一、准备工作:获取DeepSeekAPI密钥1.注册DeepSeek账号-访问[DeepSeek官网...

Python通过win32库操控Excel实战指南

Python通过win32库操控Excel实战指南。同学们,我是张老师。今天给大家讲的是Python通过win32库操控Excel实战指南。今天课的主要内容有:易开发、环境配置、二Excel基础操作实...

如何在Excel中直接使用DeepSeek的功能

在Excel中直接使用DeepSeek的功能(如AI模型能力),目前需通过间接集成方式实现,因为DeepSeek并未提供官方的Excel插件。以下是两种常用方法:方法1:通过API调用集成(推荐)若D...

Python自动化:xlrd读取excel

#pipinstallxlrd工作簿、工作表相关操作:importxlrd#打开工作簿people=xlrd.open_workbook('people1.xls')...

Python自动化:openpyxl读取excel,补充了些内容

打开工作簿,选择工作表importopenpyxl#打开已有工作簿wb=openpyxl.load_workbook('example1.xlsx')#sheetna...

Python自动化:openpyxl读取excel

#pipinstallopenpyxl工作簿、工作表相关操作:importopenpyxl#打开已有工作簿wb=openpyxl.load_workbook('example...

Java的优势:跨平台只是一部分

以下讨论只针对PC端和移动端。Java最大的优势真的在于跨平台吗?以前是,但现在已经不是了。有跨平台需求的仅仅是客户端应用,而不是服务端。例如桌面应用,你的客户可能是Windows用户,也可能是Lin...

都2023年了,为什么大家还都在吹捧 Python?

2023年,Python还可学吗?答案当然是可。近些年间,Python的火热有目共睹,作为一种功能强大的高级编程语言,在2018年的时候它的流行程度就得到了大幅提高。入门人工智能有很多种选择...

Python编程语言的优势有哪些?

1.简单易学:Python采用极简主义设计思想,语法简单优雅,不需要很复杂的代码和逻辑,即可实现强大的功能。这使得Python很适合初学者学习,可以帮助初学者快速入门。2.开源免费:Python所有内...

Python操作Excel库xlrd与xlwt常用操作详解

来源:早起Python作者:刘早起大家好,我是早起。在之前的Python办公自动化系列文章中,我们已经相信介绍了openyxl、xlsxwriter等Python操作Excel库。openpyxl操作...

python处理Excel,从此爱上python

python能干的事情太多,对于小白来说,只能望洋生叹,不过不要灰心,看看我是如何使用python处理Excel的,你就能理解python的简单和高效。一、Excel文件1、文件路径F:/...

软件测试|Python操作Excel制作报表,不要太方便

前言今天我们介绍的是Python操作Excel制作报表,我们需要用到的库是openpyxl,我们主要使用的功能有下列几个功能插入与查询数据分类数据统计数据可视化字体颜色修改基本操作表格初始数据如下图所...

python笔记52:python操作excel

主要内容:小目标:掌握excel模块主要内容:excel相关模块,openpyxl安装使用如果看完这篇文章,你还是弄不明excel相关操作;你来找我,我保证不打你,我给你发100的大红包。1.ex...

取消回复欢迎 发表评论: