无法跟踪Linux中的内存泄漏

Unable to track memory leak in Linux

本文关键字:内存 泄漏 Linux 跟踪      更新时间:2023-10-16

我有一个实时应用程序基于RTMP流应用程序,如果运行,内存泄漏。不幸的是,我不能通过valgrind运行它,因为它是一个实时应用程序

问题在这里1. 应用程序PID内存即使在数小时后也保持恒定的3.8%2. 通过平板电脑的内核内存保持不变3.在meminfo中,我看到可用内存不断减少!

我怎么知道谁占用了这个内存?我怀疑是TCP缓冲区之类的。有人能帮帮我吗?

仅凭我们提供的信息,我们不可能知道你们在哪里泄密。

如果你不能使用Valgrind,我建议你试着隔离程序的各种功能/模块。然后,试着禁用/启用这些模块,看看当你禁用/启用它时是否有泄漏。

例如,尝试禁用应用程序的网络模块,看看它是否继续泄漏。这样,您可以将问题缩小到一个/多个模块,而不是整个应用程序。

我找到了根本原因。将Linux中的tcp内存设置为32MB会导致问题。将其重置为87KB,这是Centos 7.2中的默认值

不确定为什么将其设置为高值会导致问题