物理マシンでNode.jsクラスターモジュールを実行すると、os.cpus().length
が取得されます4
が、アプリをDockerコンテナー内に配置すると、が返されます2
。
これは、デフォルトでGolang
は1つのシングルコアでのみ実行されるためです。そのため、ここではクラスターモジュールは1つのCPUコア(2つの論理コア)しか認識できません。
クラスタモジュールですべての物理CPUコアを利用したい場合、それを実現する適切な方法は何ですか?
私は--cpuset-cpus=0-1
オプションで遊んでみましたが、今まであまり理解していませんでした。
任意の数のワーカーを作成するだけで、本当にすべてのCPUコアを利用できるのでしょうか。os.cpus().length
ここだけであり、私はシェルスクリプトを呼び出すことにより、これの周りに取得することができ、CPUがマシンをどのように多くのコアを把握するために使用されます。つまり、この質問は、Node.js os.cpus()
APIがdockerと互換性がないことと単純に等しい可能性がありますか?本当?
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加