ホームページ > 記事 > PHPフレームワーク > Think-Swoole チュートリアルの構成、作業プロセス、Ctrip の魅力、および Swoole プロセス モードの理解
次のチュートリアル コラムでは、Think-Swoole チュートリアルの構成、作業プロセス、Ctrip の魅力、Swoole プロセス モードの理解を紹介します。 Think-Swoole の設定、作業プロセス、Ctrip の魅力、および Swoole プロセス モードの理解
設定ファイル:app/config/swoole.php'server' => [
'host' => env('SWOOLE_HOST', '0.0.0.0'), // 监听地址
'port' => env('SWOOLE_PORT', 9501), // 监听端口
'mode' => SWOOLE_PROCESS, // 运行模式 默认为SWOOLE_PROCESS
'sock_type' => SWOOLE_SOCK_TCP, // sock type 默认为SWOOLE_SOCK_TCP
'options' => [ // 都是给 Swoole 服务的配置,可以根据 Swoole 手册额外增加其它的 Swoole 配置
'pid_file' => runtime_path() . 'swoole.pid', //服务启动以后进程 ID 存放文件
'log_file' => runtime_path() . 'swoole.log', //Swoole 的日志文件
'daemonize' => false, //守护进程模式设置,true 后台运行
// Normally this value should be 1~4 times larger according to your cpu cores.
'reactor_num' => swoole_cpu_num(), //后台启动的 Reactor 线程数
'worker_num' => swoole_cpu_num(), //设置启动的 Worker 进程数
'task_worker_num' => swoole_cpu_num(), //配置 Task 进程数
'enable_static_handler' => true, //开启静态文件请求处理功能,需配合 document_root
'document_root' => root_path('public'), //配置静态文件根目录
'package_max_length' => 20 * 1024 * 1024, //设置最大数据包尺寸,单位为字节
'buffer_output_size' => 10 * 1024 * 1024, //配置发送输出缓存区内存尺寸
'socket_buffer_size' => 128 * 1024 * 1024, //用于设置客户端连接最大允许占用内存数量
],
],
'worker_num' => swoole_cpu_num(),
この設定は作業プロセスを設定するためのものです。swoole_cpu_num() はローカル CPU コアの数を取得するためのものです。手動で設定されている場合は、 1, then 同時に処理する必要があるリクエストが 2 つあります。一度に処理できるのは 1 つだけで、もう 1 つは待機状態です。1 つ目のリクエストが処理されると、2 つ目のリクエストはすぐに処理されます。しかし、それらは依然として同じプロセスに属しており、2 つのリクエストのプロセス番号は同じです。これを 2 に設定すると、2 つのリクエストを同時に処理できるようになり、2 つの異なるプロセス番号が存在します。
CoroutineSwoole 構成ファイルには、コルーチンを構成するための別のオプションがあります: 'coroutine' => [
'enable' => true,
'flags' => SWOOLE_HOOK_ALL,
],
'enable' => ; true は開始を意味しますコルーチン。 3 つ (またはそれ以上) のリクエストを同時に処理する必要があるとします。ワーカー プロセスが 1 に設定されていても、これら 3 つのリクエストは同時に処理できますが、ワーカー プロセスが存在するため、プロセス番号は同じになります。まだ1つです。これがSwooleコルーチンの魅力です。
作業プロセスの数を 1 に設定し、コマンド php think swoole でサービスを開始し、新しいコマンド ウィンドウを開いて実行します。 ps -ef | grep swoole 以下の図に示すように、プロセスのステータスを確認します:
Swoole が開始されると、最初にマスター メイン プロセスが開始され、次にマスター メイン プロセスが開始されます。マネージャー管理サブプロセス これら 2 つのプロセス 要求された作業は処理されず、要求の処理はマネージャーのサブプロセス ワーカーに引き渡されます。上の図からわかるように、マスター メイン プロセスのプロセス番号は 30665、マネージャー サブプロセスの親プロセス 30666 は 30665、タスク プロセスとワーカー プロセスの親プロセスは両方とも 30666 です。ワーカー プロセスの数を 2 に設定し、Swoole サービスを再起動して、プロセスのステータスを再度確認します。
pstree -p 31568 を実行すると、次の関係図が得られます。
以上がThink-Swoole チュートリアルの構成、作業プロセス、Ctrip の魅力、および Swoole プロセス モードの理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。