このページの本文へ

前へ 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
【Amazon.co.jp限定】HP ノートパソコン 15-fd 15.6インチ インテル Core 5 120U メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M5PA-AAAI)
【Amazon.co.jp限定】HP ノートパソコン 15-fd 15.6インチ インテル Core 5 120U メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M5PA-AAAI)
¥181,469
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カメラ - シトラス
¥95,768
3
【Amazon.co.jp限定】ASUS ノートパソコン Vivobook 15 M1502NAQ 15.6インチ AMD Ryzen 7 170 メモリ16GB SSD 512GB Windows 11 重量1.7kg Wi-Fi 6E クワイエットブルー M1502NAQ-R7165BUW
【Amazon.co.jp限定】ASUS ノートパソコン Vivobook 15 M1502NAQ 15.6インチ AMD Ryzen 7 170 メモリ16GB SSD 512GB Windows 11 重量1.7kg Wi-Fi 6E クワイエットブルー M1502NAQ-R7165BUW
¥109,800
4
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
5
Lenovo ノートパソコン パソコン IdeaPad Slim 3 15.3インチ AMD Ryzen™ 5 7535HS メモリ16GB SSD512GB MS Office搭載 Windows11 バッテリー駆動17.4時間 重量1.59kg ルナグレー 83K700HBJP ノートPC
Lenovo ノートパソコン パソコン IdeaPad Slim 3 15.3インチ AMD Ryzen™ 5 7535HS メモリ16GB SSD512GB MS Office搭載 Windows11 バッテリー駆動17.4時間 重量1.59kg ルナグレー 83K700HBJP ノートPC
¥153,780

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,386
2
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
3
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
¥1,980
4
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,899
5
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥7,047
6
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
7
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥1,080
8
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
¥1,599
9
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, ブラック)
¥1,299
10
KIOXIA(キオクシア)【日本製】SDカード 32GB SDHC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA032G
KIOXIA(キオクシア)【日本製】SDカード 32GB SDHC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA032G
¥1,381

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

デジタル用語辞典

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