Microsoft は、WSL2 (Windows Subsystem for Linux) でメモリをシステムに戻す機能を実装しました。

マイクロソフト社 発表した Windows 上で Linux 実行可能ファイルを確実に起動できるようにする WSL2 (Windows Subsystem for Linux) レイヤーの機能の拡張について。実験的ビルドでは Windowsのインサイダー WSL19013 層 (ビルド 2) では、Linux カーネルをベースにした環境で実行されているプロセスによって解放されたメモリをシステムに戻す (メモリ再利用) のサポートが登場しました。

以前は、アプリケーションまたはカーネルによるメモリ消費量が増加した場合、メモリは WSL2 仮想マシンに割り当てられていましたが、その後は、リソースを大量に消費するプロセスが終了した後でも、メモリは固定されたままでシステムに返されませんでした。これ以上メモリを割り当てる必要はありませんでした。メモリ再利用メカニズムを使用すると、解放されたメモリをメイン OS に戻し、仮想マシンのメモリ サイズを自動的に削減できます。これにより、ユーザー プロセスによって解放されたメモリだけでなく、Linux カーネルでのキャッシュに使用されたメモリも返されます。たとえば、ディスク アクティビティが増えると、ファイル システムの実行中にファイルのコンテンツが保存されるページ キャッシュのサイズが増加します。 「echo 1 > /proc/sys/vm/drop_caches」を実行すると、キャッシュをクリアしてメモリをメイン OS に戻すことができます。

メモリ再利用の実装は以下に基づいています。
パッチ、virtio-balloon ドライバーとメモリ管理システムの機能を拡張するために、メインの Linux カーネルに含めることをインテルのエンジニアによって提案されました。指定されたパッチは、未使用のメモリ ページをホスト システムに返すために任意のゲスト システムで使用するように設計されており、さまざまなハイパーバイザーで使用できます。 WSL2 の場合、パッチは Hyper-V ハイパーバイザーにメモリを返すように適合されています。

WSL の第 XNUMX 版が 異なる Linux システム コールをその場で Windows システム コールに変換するエミュレータではなく、本格的な Linux カーネルを提供します。 WSL2で配信される Linux カーネル リリース 4.19 に基づいており、Azure で既に実行されている仮想マシンを使用して Windows 環境で実行されます。 Linux カーネルの更新は Windows Update メカニズムを通じて配信され、Microsoft の継続的統合インフラストラクチャに対してテストされます。 WSL2 固有のカーネル パッチには、カーネルの起動時間を短縮し、メモリ消費を削減し、カーネルに必要な最小限のドライバーとサブシステムのセットを残すための最適化が含まれています。

出所: オープンネット.ru

コメントを追加します