2 つの CPU コアを搭載したマシンで、PM2 を使用して Node.js (10.32) の単純なスクリプトの負荷分散に問題があります。
スクリプトは次のとおりです。
var http = require('http');
var server = http.createServer(function (req, res) {
res.writeHead(200, {"Content-Type": "text/plain"});
res.end("Hello World\n");
});
server.listen(81);
を実行するpm2 start -i max script.js
と、( によると) 2 つの子プロセスが正常に起動したように見えますが、ハングpm2 list
するように要求されます。http://localhost:81
を実行するpm2 start -i max -x script.js
と、最初の子プロセスは正常に起動されますが、2 番目の子プロセスは永久に再起動されます (EADDRINUSE エラーが発生します)。
lsof
PM2を実行する前に確認したところ、ポート81は使用されていません。