Python Twisted 中的内存泄漏:它在哪里?

2023-11-24

我有一个负载下的 Twisted 服务器。当服务器处于负载状态时,内存使用量会增加,并且永远不会被回收(即使没有更多的客户端)。下次进入高负载时,内存使用量会再次增加。这是当时情况的快照:

  • RSS 内存为 400 MB(通常最大客户端数应为 200MB)。
  • 垃圾回收是空的,所以没有不可收集的对象。
  • Using objgraph.py显示没有明显的泄漏候选者(正常、健康的过程和泄漏过程之间没有显着差异)。
  • Using pympler显示了 Python 对象(主要是 dict、list、str 和其他本机容器)使用的几十 MB(仅)。
  • Valgrind启用leak-check=full 不会显示任何重大泄漏(只有几个MB“最终丢失”) - 因此C 扩展不是罪魁祸首。总内存也不等于显示的 400MB+top:

    ==23072== HEAP SUMMARY:
    ==23072== in use at exit: 65,650,760 bytes in 463,153 blocks
    ==23072== total heap usage: 124,269,475 allocs, 123,806,322 frees, 32,660,215,602 bytes allocated

我能找到的唯一解释是,某些对象没有被垃圾收集器跟踪,因此 objgraph 和 pympler 不会显示它们,但会使用大量 RAM。

我还有哪些其他工具或解决方案?使用 sys.getobjects 在调试模式下编译 Python 解释器是否有帮助?


如果代码仅在负载下泄漏(您验证了这一点吗?),我会查看缓冲消息的所有位置。进程本身的内存使用量是否增加?还是系统内存使用量增加了?如果是后一种情况,您的服务器可能太慢而无法跟上传入消息并且操作系统缓冲区已满。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Twisted 中的内存泄漏:它在哪里? 的相关文章

  • 使用 mmap 将正则表达式应用于整个文件

    我正在尝试使用以下代码将正则表达式应用于整个文件 不仅仅是每一行 import mmap re ifile open ifilename data mmap mmap ifile fileno 0 print data mo re sear
  • 使用中序和前序遍历输出二叉树

    class Node def init self data left None right None self data data self left left self right right def inorderTraversal r
  • 如何绘制日期和月份

    我有一张随时间变化的每日趋势图表 年份与此处无关 我只想显示日期和月份 我知道你可以显示年份和月份 但事实并非如此 我尝试创建一个名为 Day Month 的新变量 import datetime as dt df Day df date
  • 从 STEP 文件中提取体积

    我的目标是编写一个Python程序来提取物体的体积STEP文件 我找到了步骤实用程序 https pypi org project steputils and 奥交换 https pypi org project aocxchange 是
  • Python启动脚本[重复]

    这个问题在这里已经有答案了 我想执行一个脚本work py在Python中 执行一些初始化脚本后init py 如果我正在寻找交互式会话 请执行python i init py或设置PYTHONSTARTUP path to init py
  • 在 SQLAlchemy 中选择 NULL 值

    这是我的 PostgreSQL 表 test gt create table people name varchar primary key marriage status varchar test gt insert into peopl
  • Anaconda / 求解环境:初始冻结求解失败。使用灵活的求解重试

    我尝试安装 anaconda 软件包 出现以下消息 求解环境 初始冻结求解失败 使用灵活的解决方案重试 解决环境 current repodata json 中的 repodata 失败 将使用下一个 repodata 源重试 收集包元数据
  • 使用Python下载YouTube视频到某个目录

    我已尝试使用以下代码在 YouTube 中下载视频并且它可以正常工作 但我想将视频保存在特定位置 现在它正在将视频保存在C Users Download 如果我想将视频保存在桌面上 我需要对代码进行哪些更改 from future impo
  • lmfit 最小化失败并出现 ValueError:数组太大

    我正在尝试使用 暴力 方法来最小化 20 个变量的函数 它因神秘错误而失败 这是完整的代码 import random import numpy as np import lmfit def progress update params i
  • 从 MySQL 将数字数据加载到 python/pandas/numpy 数组的最快方法

    我想从 MySQL 表中读取一些数字 双精度 即 float64 数据 数据大小约为 200k 行 MATLAB 参考 tic feature accel off conn database c fetch exec conn select
  • 多输出回归问题的多重损失

    所以我试图训练一个 CNN 模型来预测 4 个实值输出 回归问题 我尝试使用均方误差作为损失函数 我的问题是我是否将输出层分支为 4 个不同的输出层 其中有 4 个不同的输出层由于最后一层的权重是单独更新的 loss 4 MSE 确实可以使
  • 如何在 difflibs html 输出中突出显示每行超过两个字符

    我在用difflib HtmlDiff比较两个文件 我希望在输出的 html 中突出显示差异 当一行中最多有两个不同的字符时 这已经有效 a 2 000 b 2 120 但是 当一行上有更多不同的字符时 在输出中整行将被标记为红色 在左侧
  • 如何删除Python中特定字符之前的所有字符?

    我想删除指定字符或字符集之前的所有字符 例如 intro lt gt I m Tom 现在我想删除 lt gt before I m 或者更具体地说 I 有什么建议么 Use re sub 只需匹配所有字符即可I然后将匹配的字符替换为I r
  • 返回实例的类方法的类型注释

    我应该如何注释 classmethod返回一个实例cls 这是一个不好的例子 class Foo object def init self bar str self bar bar classmethod def with stuff ap
  • 修改Keras中的层权重

    我正在尝试修改 Keras 中某个层的输出 我有一个编码器 它将时间序列转换为潜在空间 之后 对于每个压缩的时间序列 我想向时间序列添加一些数字 例如我有 input d Input 100 h1 d Reshape 100 1 input
  • 带约束的简单线性回归

    我开发了一种算法来循环 15 个变量并为每个变量生成一个简单的 OLS 然后算法再循环 11 次以产生相同的 15 个 OLS 回归 但 X 变量的滞后每次增加 1 我选择具有最高 r 2 的自变量 并使用 3 4 或 5 个变量的最佳滞后
  • Django 查询集和生成器

    出乎意料的是 我想知道以下使用生成器迭代结果集的方式是否会对正常迭代产生任何积极或消极的影响 eg def all items generator for item in Item objects all yield item for it
  • 如何从本地计算机或网络资源在 Jupyter Notebook 中嵌入图像或图片?

    我想将图像包含在 jupyter 笔记本中 如果我执行以下操作 它会起作用 from IPython display import Image Image img picture png 但我想将图像包含在 markdown 单元格中 并且
  • 如何将焦点集中到 python Tkinter 文本小部件?

    我希望能够打开应用程序 GUI 并让它自动将光标放置到特定的文本小部件中 最好的情况是 应用程序启动后 有人就可以开始输入 而无需单击文本小部件 这只是显示问题的一个小示例 from Tkinter import root Tk Windo
  • 导入 matplotlib.pyplot 挂起

    我正在尝试在 OS X 10 8 4 上启动并运行 matplotlib 我已经安装了 matplotlib 和依赖项 libping freetype numpy scipy 我可以很好地导入 matplotlib 但是 如果我尝试导入

随机推荐

  • OneToMany 带注释的列表中的重复项

    我正在使用 JPA 2 Hibernate 4 2 6 开发一个 Java 项目 但我遇到了奇怪的行为 在我的模型中 我有两个相关的实体 Question and Answer Entity public class Question On
  • Angular 2 什么时候使用 DI、provider 还是纯导入?

    我有点困惑什么时候适合使用什么 1 用静态函数定义类 只需导入并使用导入的名称 然后使用函数 共享类 export class SomeClass static someFunction 使用导出类的类 import SomeClass f
  • 使用 PyMySQL 的 SELECT 结果列顺序错误

    我正在通过 python 在 MySQL 数据库上执行 SQL SELECT 查询 使用 PyMySQL 作为接口 以下是执行该任务的代码摘录 try with self connection cursor as cursor sql SE
  • 适用于 Iphone 的 ABBYY 移动 OCR 引擎 [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我希望为我的下一个 iPh
  • flutter - 应用程序栏在灵活空间中滚动并显示重叠内容

    我正在尝试使用 flutter 在灵活空间中重新创建应用程序栏滚动和重叠内容 该行为如下所示 http karthikraj net 2016 12 24 scrolling behavior for appbars in android
  • 下载 MacPorts 依赖项而不安装

    默认的 MacPorts 安装会下载每个依赖项 构建并安装它 然后下载 构建并安装下一个依赖项 依此类推 这意味着在整个安装过程中需要持续的网络连接 在我的配置中 持续的网络连接是不可行的 这意味着安装大依赖包可能需要很长时间 如何在开始时
  • 如何在列表框上实现增量搜索?

    我想对绑定到列表框的键值对列表实现增量搜索 如果我有三个值 AAB AAC AAD 那么用户应该能够在可用列表框中选择一个项目并键入 AAC 并且该项目应该突出显示并处于焦点位置 它也应该以增量方式进行 处理这个问题的最佳方法是什么 向 K
  • Grails Spring Core 安全插件 - 无法解析类

    我正在使用 Grails 2 2 2 并且已经通过在 BuildConfig groovy 文件中添加以下行来安装 spring security core 2 0 RC2 Under the plugins compile spring
  • jQuery 在带有 rowspan 的表中选择可视列

    我见过一些类似的问题 但没有回答这个具体问题 考虑下表 table border 1px tr td one td td two td td three td td four td td five td tr tr td two td td
  • 使用 RestSharp 发布数据时序列化对象

    我最近开始使用 RestSharp 来使用使用 XML 的 REST 服务 它使得将 XML 对象反序列化为自定义对象集合变得非常简单 但我的问题是最好的方法是什么重新序列化什么时候发回服务 我应该使用 LINQ to XML 重新序列化吗
  • 如何以编程方式将 mp3 转换为 itunes 可播放的 aac/m4a 文件?

    我一直在寻找一种以编程方式或通过命令行将 mp3 转换为 aac 的方法 但没有成功 理想情况下 我有一段代码可以从我的 Rails 应用程序中调用 将 mp3 转换为 aac 我安装了 ffmpeg 和 libfaac 并能够使用以下命令
  • 大O符号之和[重复]

    这个问题在这里已经有答案了 可能的重复 将不同的例程组合在一起时的大O 什么是O n O log n 减少到 我的猜测是O n 但无法给出严格的推理 我明白O n O 1 应该减少到O n since O 1 只是一个常数 好吧 自从O f
  • 使用 ClosedXML 将 Gridview 导出到 Excel,而不发出警告:您尝试打开的文件格式不同

    我正在开发 ASP NET 4 5 Webform 并且有一个 Gridview 具有自定义 TemplateField 并从 sqlDataSource 获取数据 我有这个事件将 gridview 内容导出到 Excel 工作表 它的工作
  • 如何从 C# 中的一组图像创建 H.264 编码的电影?

    我今天做了很多搜索 C 库 这将允许我创建 H 264 编码的视频文件 有谁知道是否存在这样的库或第三方组件 Use ffmpeg 我建议直接运行 ffmpeg 进程 如本示例所示 http jasonjano wordpress com
  • 递归释放 C 结构体

    我有一个结构 仅包含指向我分配的内存的指针 有没有一种方法可以递归地释放每个作为指针的元素 而不是对每个元素调用 free 例如 假设我有这样的布局 typedef struct vertex typedef struct normal t
  • 如何将 SQL 数据库嵌入/附加到 Visual C# 中?

    这是我第一次使用 SQL 这可能是一个愚蠢的问题 但我做了一些研究 但我认为我没有找到我想要的东西 我想要的是一种创建将在我的 C 程序中使用的私有 SQL 数据库的方法 我已经在 SQL Server Express 中创建了一个数据库
  • C++中虚表的结构是怎样的?

    例如 我有两个 接口 和类类型 class IPlugin public virtual void Load void 0 virtual void Free void 0 class IFoo public virtual void Fo
  • 在哪里下载 your_client_secret_File.json 文件

    我正在使用 YouTube API 但首先 我需要凭证文件 your client secret File json 通过遵循本教程https developers google com youtube analytics referenc
  • Clang 中 __int128_t 的错误?

    这段小代码可以使用 GCC 和 Clang 进行编译 但会给出不同的结果 include
  • Python Twisted 中的内存泄漏:它在哪里?

    我有一个负载下的 Twisted 服务器 当服务器处于负载状态时 内存使用量会增加 并且永远不会被回收 即使没有更多的客户端 下次进入高负载时 内存使用量会再次增加 这是当时情况的快照 RSS 内存为 400 MB 通常最大客户端数应为 2