perl - 如何追踪 mod_perl 内存泄漏?

标签 perl apache memory memory-leaks mod-perl

我正在使用 mod perl 1.3.0 和 apache 1.3.41 perl 版本 5.8.6,并且内存大小似乎每 3rd 或 4th 请求增长约 4k。我们正在运行的 Perl 脚本很简单:

print "Content-type: text/html\n\n";  print "baby";

然而,当我们用 apache 基准测试抨击 apache 进程时,它只会不断增长。我们正在击中它:
ab -n 100000 -c 1 http://localhost/search/search.cgi &> /dev/null

我们观察到进程大小在大约 20000 个请求后从大约 4 兆字节增长到 24 兆字节。

要回答以下问题:
我们正在 redhat Enterprise 4.7 上执行此操作。
它被挑出来是因为我们遇到了一个静态文件,或者一个直接的 cgi 请求并且内存没有增长。当我们使用 PerlHandler Apache::Registry 或 PerlRun,或者只是将 PerlHandler 指向一些作为处理程序的代码时,它们都会泄漏。

有没有人见过这样的,或者知道发生了什么?

编辑:

谢谢各位的回答。我已经使用了 Devel::Cycle 并发现了一个漏洞,但这里的问题是我们已经剥离了我们的代码来打印标题和语句。 Perl 中的打印功能不可能泄漏(我希望......)。我已经阅读了 Practical Modperl 中的内存泄漏部分,但它处理编码问题,而且除非 Perl 的打印功能存在问题,否则它不是代码。

最佳答案

你看过优秀的Practial mod_perl和它的 chapter on memory leaks ?

关于perl - 如何追踪 mod_perl 内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/466601/

相关文章:

linux - Perl 编写 excel 以在各种工作表中创建包含包含公式的单元格的图表

linux - Perl:如何在 Linux 中从 .txt 文件添加用户

apache - 504 Gateway Time-out 服务器未及时响应。如何修复它?

php - Wordpress 重定向到 xampp 的仪表板,主页除外

java - 为什么将 ""附加到字符串可以节省内存?

perl - 将类子例程作为回调传递

ios - IO::Socket::INET 返回一个空套接字

PHP-FPM 和 Nginx : "Resource temporarily unavailable" errors in proxy_error_log

android - windows下android模拟器768M以上如何分配内存?

c - 任何查询分配 block 大小的函数?