ホームページ >PHPフレームワーク >Workerman >ワーカーマンを複数のプロセスで実行できますか?
#サーバーのマルチ 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 サイトの他の関連記事を参照してください。