ホームページ >バックエンド開発 >Python チュートリアル >Python のネットワーク プログラミング ライブラリ Gevent のインストールと使用のヒント
インストール(CentOSを例にします)
gevent は libevent と greenlet に依存します:
1. libeventをインストールします
libeventを直接yumインストール
次に、Python のインストールを構成します
2. easy_install をインストールします
(1)
(2)
を使用する(3) easy_install を使用してコマンドが利用可能かどうかを確認し、利用できない場合は PATH にパスを追加します。
3.グリーンレットをインストールする
(1)
リーリー
4.geventをインストールします
ヒント
Gevent ライブラリは非常に高性能ですが、Python の GIL モデルのせいでスレッドがマルチコアのリソースを確保できないという事実に常に悩まされていました。
複数の Python プロセスを起動するマルチコア モードでは、lvs などのフロントエンドの負荷分散を追加する必要があり、少し面倒です。
マルチプロセッシング モジュールと os.fork により、2 つのプロセスがイベント コアに受け入れイベントを繰り返し登録するため、重複したファイル ハンドル例外が発生します。
単一プロセス監視と複数プロセス処理のモードでは、監視プロセスのリソースの割り当てが容易ではありません。1 つのコアを独立して割り当てる必要があるかどうか。個別に割り当てた場合、接続数が少ない場合にコアが無駄になります。割り当てられない場合、接続数が多い場合に CPU が頻繁にプロセスを切り替えます。
昨日、gevent がネットワーク モデルを複数のプロセスに簡単に分散して並列処理できることを発見しました。
秘密はgevent.fork()です。
私は gevent.fork が greenlet.spawn の単なるラッパーであることを当然のことだと思っていましたが、そうではないことがわかりました。 gevent.fork は os.fork を置き換えることができ、新しいプロセスを開始するだけでなく、並列処理のための基礎となるイベント処理も伝達します。
リーリー