CPUとワークセット間の親和性を使用して、Node.jsの計算を高速化し、長い間ブロックします。

CPUとワークセット間の親和性を使用して、Node.jsの計算を高速化し、長い間ブロックします。

私はNode.jsをバックエンドとして使用して物理ベースのゲーム用オンラインサーバーを実行しています。現在のサーバーは、次のティックが実行されるまで一度に10のゲーム/世界を処理できます。

この点を念頭に置いて、タイトなスケジュールを使用しました。ナノタイマーこれにより、世界のフェーズは互いに干渉しませんが、順序は1つのプロセッサでのみ実行できることを意味するため、AWSインスタンスのCPU使用率は約55%にすぎません。

使用することにしましたワークセット私のインスタンスで2つのプロセッサを使用するのは良い方法ですが、時には他の外部プロセスが実行されており、世界が時々数秒間処理をブロックすることがあると思います。

これが起こらないようにするにはどうすればよいですか? 2つのプロセッサ(ワークセットなし)を使用すると、ワールドセットはうまく動作しますが、プロセッサの55%しか使用しないため、非常に高価です。

ベストアンサー1

まず、サーバーで実行されるプロセスの優先順位を確認します。

ps -eo pid,ppid,ni,comm

次に、Node.jsプロセスのNice値を最高値に変更し、改善があるかどうかを確認します。

renice -n -12 -p(node.jsのPID)

おすすめ記事