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 中的内存泄漏:它在哪里? 的相关文章

  • 使用 pythonbrew 编译 Python 3.2 和 2.7 时出现问题

    我正在尝试使用构建多个版本的 python蟒蛇酿造 http pypi python org pypi pythonbrew 0 7 3 但我遇到了一些测试失败 这是在运行的虚拟机上 Ubuntu 8 04 32 位 当我使用时会发生这种情
  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • 为 Anaconda Python 安装 psycopg2

    我有 Anaconda Python 3 4 但是每当我运行旧代码时 我都会通过输入 source activate python2 切换到 Anaconda Python 2 7 我的问题是我为 Anaconda Python 3 4 安
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 如何使用 Ansible playbook 中的 service_facts 模块检查服务是否存在且未安装在服务器中?

    我用过service facts检查服务是否正在运行并启用 在某些服务器中 未安装特定的软件包 现在 我如何知道这个特定的软件包没有安装在该特定的服务器上service facts module 在 Ansible 剧本中 它显示以下错误
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • 如何使用 OpencV 从 Firebase 读取图像?

    有没有使用 OpenCV 从 Firebase 读取图像的想法 或者我必须先下载图片 然后从本地文件夹执行 cv imread 功能 有什么办法我可以使用cv imread link of picture from firebase 您可以
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • 如何在ipywidget按钮中显示全文?

    我正在创建一个ipywidget带有一些文本的按钮 但按钮中未显示全文 我使用的代码如下 import ipywidgets as widgets from IPython display import display button wid
  • Flask如何获取请求的HTTP_ORIGIN

    我想用我自己设置的 Access Control Allow Origin 标头做出响应 而弄清楚请求中的 HTTP ORIGIN 参数在哪里似乎很混乱 我在用着烧瓶 0 10 1 以及HTTP ORIGIN似乎是这个的特点之一object
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate

随机推荐

  • 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