开发者

Python subprocess.Popen slow under uWSGI

开发者 https://www.devze.com 2023-02-13 12:34 出处:网络
I\'ve set up a development server runnin开发者_StackOverflow中文版g Cherokee on Fedora 14, using uWSGI to interface with my WSGI application.

I've set up a development server runnin开发者_StackOverflow中文版g Cherokee on Fedora 14, using uWSGI to interface with my WSGI application.

When the application is hit with the first request, I spawn a process like so:

from subprocess import Popen
Popen(['bash'])  # bash is just an example; the problem happens with all programs

The first request takes 10-15 seconds to complete (subsequent ones take less than a second). Without the creation of the Popen object, the first request only takes about 2-3 seconds to complete. When I execute the same Popen request from a Python shell, it's instantaneous.

What could be causing this behaviour? Have I missed something obvious?


--close-on-exec

Otherwise your new process will inherit the socket

(this is a UNIX standard behaviour)


If you prefer to handle this in your python code, you have the option to pass close_fds=True to Popen() then any sockets will not be inherited by the forked process.

0

精彩评论

暂无评论...
验证码 换一张
取 消