ホームページ >PHPフレームワーク >Workerman >ワーカーマンを複数のプロセスで実行できますか?

ワーカーマンを複数のプロセスで実行できますか?

(*-*)浩
(*-*)浩オリジナル
2019-12-12 10:10:415550ブラウズ

ワーカーマンを複数のプロセスで実行できますか?

#サーバーのマルチ CPU のパフォーマンスを最大限に活用するために、WorkerMan はデフォルトでマルチプロセスとマルチタスクをサポートします。

WorkerMan は、外部サービスを提供するためにメイン プロセスと複数のサブプロセスを開始します。メイン プロセスはサブプロセスの監視を担当します。サブプロセスは独立してネットワーク接続を監視し、データの送信と処理 シンプルなプロセス モデルにより、WorkerMan の安定性と効率性が向上します。 (推奨学習: workerman チュートリアル)

ワーカーマンを複数のプロセスで実行できますか?

メイン プロセス (デーモン プロセス) を作成します。開始すると、バックグラウンドで実行されます。ブラウザ ページをドロップします。

メイン スレッドは定期的にデータベース (MySQL) にクエリを実行します。条件を満たす URL が見つかると (複数ある場合があります)、

子プロセスも長期間存在する必要があり、データを取得するために URL に対応するサーバーを定期的にポーリングします。子プロセスは必要なデータを取得し、結果をデータベースに保存し、それ自体を終了します (またはメインプロセスによって閉じられます)。

#プロセス数を設定するための原則

1. 各プロセスが占有するメモリの合計は、総メモリよりも小さくする必要があります (一般的に、各ビジネス プロセスは約 40M のメモリを占有します))

2. IO の場合-集中的、つまりビジネスにブロッキング IO が含まれる場合 (Mysql、Redis、その他のストレージへの一般的なアクセスがアクセスをブロックしている場合)、CPU コア数を 3 倍に構成するなど、プロセス数を増やすことができます。

ビジネスに多くのブロックと待機が含まれる場合は、プロセスの数を適切に増やすことができます (たとえば、CPU コア数の 5 倍以上)。ノンブロッキング IO は IO 集中型ではなく、CPU 集中型であることに注意してください。

3. CPU 集中型の場合、つまり、ビジネスにブロッキング IO オーバーヘッドがない場合たとえば、ネットワーク リソースの読み取りに非同期 IO が使用され、プロセスがビジネスによってブロックされない場合コードでは、プロセス数を CPU コア番号と同じに設定できます

以上がワーカーマンを複数のプロセスで実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。