4

exec() と cgi を介して Python スクリプトを実行する php アプリケーションがあります。

私はこれを行うページを多数持っており、長期的には WSGI がより良い方法であることは知っていますが、少量/中量のトラフィックの場合、この配置が受け入れられるかどうか疑問に思っています。

いくつかの投稿で、Apache が Python インタープリターのインスタンスごとに新しいプロセスを生成する必要があり、オーバーヘッドが増加することが言及されているため、質問しますが、小規模なプロジェクトにとってそれがどれほど重要かはわかりません。

ありがとうございました。

4

1 に答える 1

0

CGI の場合、サーバーはリクエストを受け取るたびに PHP インタープリターのコピーを開始します。次に、PHP は Python プロセスを開始しますが、これは exec() の後に強制終了されます。2 つのプロセスを開始し、すべてのリクエストですべてのインポートを実行すると、大きなオーバーヘッドが発生します。

FastCGI または WSGI の場合、サーバーはいくつかのプロセスをウォームアップし続けます (実行中のプロセスの最小量と最大量は構成可能です)。そのため、メモリを犠牲にして毎回新しいプロセスを開始する必要がなくなります。ただし、すべての exec() 呼び出しで Python プロセスを開始/停止する必要があります。PHP の一部を Python に移植するなど、exec() なしで Python アプリを使用できる場合は、パフォーマンスが大幅に向上します。

しかし、あなたが言ったように、これは小さなプロジェクトなので、唯一の重要な基準は、現在のサーバーが現在の負荷に耐えられるかどうかです.

于 2012-08-28T02:08:56.207 に答える