Apache2+mod_wsgi+Django,其中 wsgi 工作在 DaemonProcess 模式下,Apache 的 MPM 模式是 event。
Django 有两个应用需要 load 大体积文件,所以每个 apache 进程占用内存 1.5GB 左右。服务器资源是双核+8GB。
现在的问题是服务器会时不时自行启动新的进程,而旧的进程却并没有被释放掉。猜测是在尝试重启进程,因为 graceful restart Apache 的时候会有相同的进程沉积问题。
由于我们 Apache 进程开销很大,所以这样几次以后就会占满内存导致服务崩溃,活不过半天。
而定期重启的 dirty hack 也不是很理想,因为服务整个启动起来会花十多秒,如果太频繁会影响可用性。
Apache 的错误日志已经是 info 级别,只能看到 wsgi 进程启动的事实,看不到任何别的异常。
请问这样的问题怎样排查和解决呢?
Django 有两个应用需要 load 大体积文件,所以每个 apache 进程占用内存 1.5GB 左右。服务器资源是双核+8GB。
现在的问题是服务器会时不时自行启动新的进程,而旧的进程却并没有被释放掉。猜测是在尝试重启进程,因为 graceful restart Apache 的时候会有相同的进程沉积问题。
由于我们 Apache 进程开销很大,所以这样几次以后就会占满内存导致服务崩溃,活不过半天。
而定期重启的 dirty hack 也不是很理想,因为服务整个启动起来会花十多秒,如果太频繁会影响可用性。
Apache 的错误日志已经是 info 级别,只能看到 wsgi 进程启动的事实,看不到任何别的异常。
请问这样的问题怎样排查和解决呢?