我的LAMP应用程序似乎最终会耗尽我服务器的所有内存和交换空间。我的直觉是,它与我必须调用的外部过程有关(因为这是问题出现的唯一时间)。LAMP和内存/交换空间问题
我需要不断地调用GhostScript,ImageMagick的“convert”,PDFTK等。当这些进程正在运行时,那是当我看到我的内存用完了。所以,问题:
我应该使用哪些技术来确定哪个进程实际上导致内存问题?我现在的计划是单独运行这些进程,并通过* nix命令“top”观察内存使用情况。有没有一种方法可以通过编程方式来完成?
有没有我可以使用的“内存冲洗”解决方案?这是一个好主意吗?
这些外部进程通过PHP的exec()调用。这是否构成分叉?这些进程不应该在完成时释放内存吗?或者我应该做些什么?我如何知道他们是否不释放内存? – StackOverflowNewbie 2010-10-03 13:05:56
是的,php exec使用fork创建子进程。只要您没有重定向由于某种原因而被阻塞的输入/输出文件,它将在应用程序完成时释放内存。 – 2010-10-03 13:13:09
您能否详细说明您的评论:“解决此问题的方法是运行一个小型驻留脚本/程序,在套接字或命名管道上侦听以启动外部程序。”? – StackOverflowNewbie 2010-10-03 14:36:52