このページの本文へ

前へ 1 2 次へ

Windows Info 第199回

Windows Subsystem for Linux 2のメモリ管理を詳しく見る

2019年11月24日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

メモリを大量に使い、その後に戻してみる

 では、次に、メモリを大量に確保したあとに開放して、Win32側にメモリがもどされるかどうかを確認してみる。テストには、Ubuntu-18.04を用いた。メモリを消費させる方法にはいくつかあるが、ここでは、stressというコマンドをインストールして使う。インストール方法は、WSL2のコマンドラインから以下のコマンドを使う(Ubuntuの場合)。

sudo apt update
sudo apt install stress

 実際にインストールするのは2行目のコマンドである。1行目はやる必要がないとわかっているならやらなくてもよい。蛇足ながら1行目は、その意味がわからない人がエラーを起こさないように入れてある。これでstressコマンドが利用できるようになる。このコマンドはシステムに負荷を掛けてテストをするためのものである。たとえば、メモリを1GB確保させたいなら、

stress --vm 1 --vm-bytes 1G --vm-keep

とする。コマンドラインの意味としては、プロセス1つ(--vm 1)に1GBのメモリを確保(--vm-bytes 1G)して、開放せずにそのままにする(--vm-keep)という意味になる。

 詳しくはmanコマンドなどを参照されたい。このコマンドを起動すると、プロセスを強制終了するまで、1GBのメモリが確保されたままになる。なお、プロセスを終了させるにはkillコマンドを使う。

 今回は、6GBを実装メモリとして認識しているWSL2に対して、4GBを確保してみる。stressコマンドでメモリを確保し、WSL2側、Win32側からメモリ利用量を測定したのが、以下の画面である。

WSL2内でstressによりメモリを消費させると、Win32側のvmmemプロセスがメモリを確保するのをtasklistコマンドで見ることができるほか、タスクマネージャーのメモリ利用量が増える。また、WSL2内でも、freeコマンドでusedになるメモリ量が増える

 コマンド「stress --vm 4 --vm-bytes 1G --vm-keep &」として、4GBを確保すると、WSL2のfreeコマンドのusedの値が上がり、Win32のtasklistコマンドでvmmemのメモリ使用量が増大する。あわせて、タスクマネージャーのメモリ利用量が増える。

 その後、バックグラウンドで起動したstressコマンドをkillコマンドで停止させると、メモリが開放され、タスクマネージャーを見ると、Win32側でもメモリ利用量が減るのがわかる。

stressコマンドをkillコマンドで終了させると、メモリが開放され、Win32側のvmmemがメモリを開放し、タスクマネージャーのグラフも元に戻る

 このように、WSL2は一時的にメモリを大量に確保しても、そのあとWin32側にちゃんと戻すことができるようなので、長時間のWSL2利用も問題はなさそうだ。もっとも、これまでメモリを戻すことができなかったのは開発途上だったからだ。

 Win32側では、WSL2のメモリイメージは、vmmemというプロセスとして見える。つまりWSL2側でメモリを使うとき、vmmemがWin32側でメモリを確保していく。WSL2でメモリが開放されると、vmmemが確保していたメモリ領域を開放する。

 この仕組みは、Linux側のメモリコンパクション(メモリ圧縮)とLWUVMの協調動作として実現される。Linux側では、不要なメモリ領域を集めて連続するページを作るメモリコンパクション機能がある。このメモリコンパクションは、分断されたページの中で、隣合う空きページをつなげて大きな領域とし、その後、移動可能な利用中のページと空きページを入れ替えながら、連続する空きページの領域を大きくしていく。

 Linux内では仮想記憶が動作しているが、DMAを使うネットワークのバッファなどは、物理的に連続している必要がある。また、小さなページを大量に使うと、仮想アドレスを高速に物理アドレスに変換するTLB(Translation Lookaside Buffer)を大量に消費し、効率が悪くなる。Linuxでは、連続する複数の4Kページをまとめて1つのHuge Pageとして管理し、1つのTLBエントリーで複数ページをまとめて示せるようになっている。そのため、空き領域を連続して確保できるようになっている必要があり、メモリコンパクションをする。

 本来は、メモリ領域の分割状態などを見てメモリコンパクションを起動するが、WSL2では、アイドル状態が一定以上続いたら、強制的にメモリコンパクションを起動しているようだ。

 なお、Linuxでは、rootユーザーで/proc/sys/vm/compact_memoryに「1」を書き込むと強制的にメモリコンパクション処理が実行される(これはLinuxの標準の機能)。この動作に関しては、前述の.wslconfigで設定が可能だ。

 “pageReporting”キーワードは、空きページが存在することをLWUVMのハイパーバイザー(Hyper-V)側に通知する機能のオンオフで、これをtureとすることで、WSL2は空きページの集まりをHyper-Vに通知して、Win32側に返却させることができる。“idleThreshold”は、前述のメモリコンパクションを起動するアイドル時間の閾値で、デフォルトは1秒であり、この値を0にすると、メモリ圧縮をアイドル時に実行しなくなる。

 このメモリコンパクションの動作は、カーネルのメッセージを表示するdmesgで確認できる。強制的にメモリコンパクションが起動すると「WSL2: Performing momory compaction.」というメッセージが記録される。

WSL2側で強制的に起動されるメモリコンパクションは、dmesgでメッセージとして見ることができる

前へ 1 2 次へ

カテゴリートップへ

この連載の記事
1
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、Touch ID - シルバー
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、Touch ID - シルバー
¥177,333
2
Apple 2026 MacBook Neo A18 Proチップ搭載13インチノートブック:AIとApple Intelligenceのために設計、Liquid Retinaディスプレイ、8GBユニファイドメモリ、256GB SSDストレージ、1080p FaceTime HDカメラ - インディゴ
Apple 2026 MacBook Neo A18 Proチップ搭載13インチノートブック:AIとApple Intelligenceのために設計、Liquid Retinaディスプレイ、8GBユニファイドメモリ、256GB SSDストレージ、1080p FaceTime HDカメラ - インディゴ
¥99,800
3
Lenovo Chromebook クロームブック IdeaPad Flex 3i Gen8 12.2インチ インテル® プロセッサー N100搭載 メモリ4GB eMMC 64GB バッテリー駆動12.0時間 重量1.25kg アビスブルー 82XH001KJP
Lenovo Chromebook クロームブック IdeaPad Flex 3i Gen8 12.2インチ インテル® プロセッサー N100搭載 メモリ4GB eMMC 64GB バッテリー駆動12.0時間 重量1.25kg アビスブルー 82XH001KJP
¥39,394
4
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
¥36,970
5
ASUS Chromebook クロームブック Detachable CM30 10.5インチ 2in1 タブレット 日本語キーボード 8GBメモリ 重量609g ペン付き フォグシルバー CM3001DM2A-R70006/A
ASUS Chromebook クロームブック Detachable CM30 10.5インチ 2in1 タブレット 日本語キーボード 8GBメモリ 重量609g ペン付き フォグシルバー CM3001DM2A-R70006/A
¥44,800

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,280
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
4
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥743
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GW
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GW
¥980
7
KIOXIA(キオクシア)【日本製】SDカード 64GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA064G
KIOXIA(キオクシア)【日本製】SDカード 64GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA064G
¥1,180
8
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
¥652
9
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥4,918
10
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ホワイト T-K6A-2630WH
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ホワイト T-K6A-2630WH
¥1,899

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン