如何阻止MAMP产生过多的httpd进程?

时间:2018-05-11 23:01:56

标签: laravel apache mamp macos-high-sierra

我在OSX High Sierra上运行MAMP Pro 4.4,过了一段时间我在使用Laravel 5.2应用程序时遇到了500错误。我打开了活动监视器,发现有40个httpd进程正在运行,其中大多数都有18个线程。我尝试通过命令行杀死它们,停止并启动MAMP,但是当MAMP再次启动时它们都会返回。研究这个问题时我能找到的最接近的是:

Stop a number of httpd processes starting on MacBook Pro running Mac OS X Lion?

有没有其他人遇到此事? (我不确定它是否与httpd进程有关,因为我使用MAMP的其他本地站点会加载正常,但它似乎是我唯一能说出来的可能导致问题的原因。)

1 个答案:

答案 0 :(得分:0)

Apache多处理模块(MPM)实现了混合多进程多线程服务器。通过使用线程来处理请求,它能够以比基于进程的服务器更少的系统资源来提供大量请求。

单个控制进程(父进程)负责启动子进程。每个子进程创建一个固定数量的服务器线程和侦听器线程,它监听连接并将它们传递给服务器线程,以便在它们到达时进行处理。

Apache HTTP Server始终尝试维护备用或空闲服务器线程池,这些线程随时准备为传入的请求提供服务。通过这种方式,客户端无需等待创建新线程或进程,然后才能提供请求。

问题很可能出在您尝试提供的页面中,而不是在http服务器中。检查错误日志以查看问题的原因。您应该能够从 / Applications / MAMP / logs / apache_error_log

中找到错误日志