可能重复: 在终止进程之前保存gmon.out
我正在尝试分析一个服务器(我可以使用源代码)。C-代码)在Linux环境中。此服务器像web服务器一样连续运行。我试图使用gprof来分析服务器。如果服务器本身退出,则生成gmon.out文件。我可以使用gprof和gmon.out来理解配置数据。现在我遇到的问题是,这个服务器一直在运行,等待传入的套接字连接、请求等等。如果我杀死这个服务器,就不会生成gmon.out。在这一点上,我看到以下选项。
编辑:服务器是多进程服务器.运行在FreeBSD 7.2上
我敢肯定,人们以前也解决过这类问题。我没有找到关于这样或外部的有用的信息。
我很欣赏人们的任何想法和解决方案。
谢谢一堆。
更新1:
不知何故,我设法弄到了港口,以供伐研之用。当我运行make时,我会得到以下错误。
=> valgrind-stable-352.tar.gz doesn't seem to exist in /usr/obj/ports/distfiles/.
=> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
fetch: ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/valgrind-stable-352.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://www.rabson.org/.
fetch: http://www.rabson.org/valgrind-stable-352.tar.gz: No address record
=> Couldn't fetch it - please try to retrieve this
=> port manually into /usr/obj/ports/distfiles/ and try again.
*** Error code 1我试着在网上找到稳定的-352.tar.gz。我发现的所有链接都死了。
我可能错了或者没有足够的信息。请纠正我并给出你的想法。我真的很感谢你的帮助。
UPDATE 2:我认为给出一些关于我试图分析的服务器的细节将是有帮助的。
发布于 2011-03-03 21:24:27
当然,您应该使用分析关键生产系统的方法,使用O形或/和系统抽头,但是它们可能已经包含在发行版中了。
发布于 2011-03-03 22:35:30
即使你有政府为你服务,也有问题。
测量是一回事,但是如果你想找到做不必要的事情的“瓶颈”,不管是CPU还是I/O,一个非常粗糙但有效的工具是lsstack (我认为它在SourceForge上)。
另外,看看缩放。它是一个用于Linux的墙壁时间堆栈采样器.它给出了线级百分比,我相信它可以与运行中的进程连接和分离。
发布于 2011-03-10 19:01:49
您可以使用PmcTools -FreeBSD的oProfile类替代方案。
https://stackoverflow.com/questions/5186621
复制相似问题