目的 pm2のclusterモードは便利ですが、リクエストのロードバランスはNginxなどで行いたい場合があります。 pm2のforkモードでCPUの数に応じて動的にサーバプロセスを立ちあげる方法について調べました。 clusterモードでは pm2のclusterモード(Node.jsのclusterモジュール)はportを割り当てられるのはマスタープロセスだけなので、 以下の用にinstances=0としてマスタープロセス用の設定を書けば、 portを割り当てられたマスタープロセス1個と、実際にリクエストを処理するワーカープロセスがCPU数起動します。
![pm2のforkモードで動的にCPUと同じ数のhttpサーバを起動する - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/7504cd9a8409c0ab63dec1e93f17f5a933e63940/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9cG0yJUUzJTgxJUFFZm9yayVFMyU4MyVBMiVFMyU4MyVCQyVFMyU4MyU4OSVFMyU4MSVBNyVFNSU4QiU5NSVFNyU5QSU4NCVFMyU4MSVBQkNQVSVFMyU4MSVBOCVFNSU5MCU4QyVFMyU4MSU5OCVFNiU5NSVCMCVFMyU4MSVBRWh0dHAlRTMlODIlQjUlRTMlODMlQkMlRTMlODMlOTAlRTMlODIlOTIlRTglQjUlQjclRTUlOEIlOTUlRTMlODElOTklRTMlODIlOEImdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTdlMjExMTQ5NDNmNjliYTZiNjc5N2QxNzBjNmMxM2Y4%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBnZWVrZHVjayZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NDI4ZjhjOTFlYTU4ODAxY2IwYzA0OTk0YWU0NDQ3ODY%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D424da10a2f39f88880e38628cfdcaf80)