4

Nodejsを使用しています。Nodejs アプリケーションのメモリ制限を増やすことを計画しています。

グーグルで検索しているときに、次の記事を見つけました: Node.js メモリ制限の増加

著者によると、サーバーに8GBは物理メモリしかありませんが、Nodejs プロセスは28GBメモリを使用しています。physical + swapメモリを使用していると思います。この記事では、有名な Nodejs フレームワークの開発者が Nodejs15GBにメモリ制限を使用していることにも言及しました。

他のプログラミング言語からいくつかの例を検索しようとしました。Java では、JVM ヒープにスワップ メモリを使用するのは得策ではないようです。この記事を参照してください:スワップ サイズを増やすとヒープ サイズを増やすにはどうすればよいですか? 、JVM ヒープにスワップ メモリを使用すると、大きな問題が発生します。

JVM GC と Nodejs GC に違いがあるかどうかはわかりません。

Nodejs プロセスは、(スワップ メモリを使用して) 利用可能な物理メモリよりも多くのメモリを使用できますか?

4

1 に答える 1

4

Nodejs プロセスは、(スワップ メモリを使用して) 利用可能な物理メモリよりも多くのメモリを使用できますか?

はい、できます。他のプロセスと同様です。OSによって管理されます。プロセスは新しいページを要求しますが、それがスワップされているかどうかさえわかりません。

ただし、パフォーマンスが低下する可能性があるため、お勧めしません。ディスク (SSD でさえも) は、RAM より桁違いに遅いです。個人的には、まさにその理由から、自分のシステムでスワップ メモリを使用するのはまったく好きではありません。残念ながら Linux では、ディスクにサスペンドできないことを意味しますが、それでも問題ありません。

メモリ使用量を確認したときに実際に目にするものは、必ずしもそれほど明白ではありません。一部の共有ライブラリは、同時に複数のプロセスにマップすることができ、表示される使用状況は必ずしも実際のものではありません。また、プロセスは大量のメモリを要求できますが、それを取得できるわけではありません。実際の物理メモリ (RAM またはスワップ) は、特定のページが要求されたときではなく、実際に最初にアクセスされたときにマップできます。それはページフォールトで行われます。

詳細については、次を参照してください。

于 2016-12-27T16:56:04.633 に答える