*

Hyper-Vの動的メモリは本当に動的だった!?

公開日: : 最終更新日:2014/12/17 Ubuntu, Windows

前回、無用なトラブルを避けるつもりで無難な選択をした結果、却ってロクでもない目に遭ったようだという話を書きました。

Hyper-V + Ubuntuなんてメジャーな組み合わせでは、そんなこと気にせずとも最新の環境でちゃんとうまくいくように作られているのですね…。そりゃそうだ。
で当然気になるのがもう一つの無難な(つもりの)選択、動的メモリです。

動的メモリもあえて使わない設定にしていたのですが、これもいらない配慮なんだよねと。
そんなわけで動的メモリも設定してみました。

動的メモリを試すにあたっては、ホストWindows8.1のタスクマネージャーでメモリ割り当てを確認しながら進めました。Hyper-Vマネージャーの表示でも確認できますけどね。

まず仮想マシンを起動していないときのメモリ割り当てはこんな感じ。

1mem_novm
メモリ速度のリーズナブルなところがバレてますが気にしない。

ここで固定メモリ2048Mbytesの設定で仮想マシンを起動します。するときれいに2Gbytes増えます。

2mem_before

一旦仮想マシンを落として動的メモリを設定します。スタートアップRAMは、グッと減らして512Mbytesにしてみました。

3settings

設定値を簡単に説明すると、メモリの割り当ては最小RAMと最大RAMの値の範囲で必要に応じて変動する、ただしメモリバッファー分だけ余裕をとる。起動時はまずスタートアップRAMの値だけ割り当てられる、ということです。

仮想マシンを起動してみると、あっさりメモリ割り当てが変わりました。やっぱり…。動的メモリは当たり前に使えるものなのね。
sshから入って操作してみたけれど、特に不具合は無し。

4mem_after0

こんなきっちり設定通りになるものかと疑問を感じつつ。起動直後はぴったりスタートアップメモリ設定値の0.5Gbytesだけ割り当てられているようです。

これでもし仮想マシン上でメモリの需要があった場合、最大メモリ設定値の4Gbytesまでメモリ使用量が上がるはずですよね。
仮想マシン上で以下のプログラムをブン回して検証してみました。

~/work>$ cat memeater.c
#include <stdlib.h>

void main(void) {
        while (malloc(1024 * 1024) != NULL) {}
        return;
}
~/work>$ cc -o memeater memeater.c
~/work>$ ./memeater
Killed
~/work>$

最後はOOM Killerに落とされた?ぽい。ですが、おもしろい挙動を見せてくれました。

5memeater

何か怖いくらい理屈通りの動きをしますね。しっかり4Gbytesを消費したところで頭打ちになったみたいです。

でも感心したのはここから。このまま5分ほど放置したら、

6memflush

きっちりmemeaterの浪費していたメモリが返却されました!これ素晴らしい。ここのアルゴリズムってどうなっているのでしょうね。

Hyper-Vちょっと好きになったな。

関連記事

36export_thumb.png

Hyper-VでUbuntu 14.04を試す(3)

前回、仮想マシンにUbuntu 14.04をインストールしました。 続いて環境整備。 まずはI

記事を読む

1front_thumb.jpg

限定版が復活してた。ASUS TransBook T100TA

今回は私が愛用している10.1インチWindowsタブレットの使用感です。 いわゆる”2

記事を読む

1enable_hyperV_thumb.png

Windows 8.1上でHyper-Vを試す ~Ubuntuの仮想マシンを作る(1)~

Linuxのカーネルソースをあれこれいじるにあたって、実験用のLinux環境が欲しくなり、新たにUb

記事を読む

bash

Cygwin上でiperfをビルド

ネットワークの疎通確認に便利なツールiperf。 先日Windows上で使おうと思ったら、見つから

記事を読む

raised1

OOM Killerの発動を検知したい

今回はプログラムの話。タイトル通り、LinuxのOOM Killerが発動したことを検知したいという

記事を読む

22installer

Windows 8.1上でHyper-Vを試す ~Ubuntuの仮想マシンを作る(2)~

前回、空の仮想マシンを作るところまで書きました。 (なんか長かった…)。 続いてUbuntu

記事を読む

am1h-hyperV-perfmon-2_thumb.png

Hyper-V 対 VMware Player対決

先日、バーチャルマシン上でプログラムをビルドすると時間がかかってしようがない。ビルドするならやっぱネ

記事を読む

building_ubuntu_kernel

Ubuntuのカーネル再構築

実験用に作ったUbuntu13.10の仮想マシン上で、Linuxカーネルの再構築を試しました。 ま

記事を読む

no-ia32-libs_thumb.png

Ubuntu 14.04 64bitで32bitアプリを使う

新たにVMを作ってUbuntu 12.04から14.04に乗り換えたわけですが、セットアップしていて

記事を読む

err_newMediaObject_thumb.png

metaWeblog.newMediaObject メソッドへの応答が無効です

ブログの執筆にWindows Live Writerを使っています。 この記事を投稿しよ

記事を読む

junctioned_VideoLAN_thumb.png
WindowsタブレットのProgram FilesをSDHCへ逃す

ここ数ヶ月、比較的低価格なWindowsタブレットが相次いで発売されて

raised1
カーネルモジュールのビルド

前回、OOM Killerの発動を検知するテスト用のカーネルモジュール

raised1
OOM Killerの発動を検知したい

今回はプログラムの話。タイトル通り、LinuxのOOM Killerが

1cpu_thumb.jpg
さよならK6-Ⅲ

何か物悲しいタイトルですが、K6-Ⅲ搭載PCを廃棄しました。かつて色ん

25eth0_trouble_thumb.png
E: Internal Error, No file name for libssl1.0.0

Ubuntu 12.04機を(も)使っています。動かなくなると困る一台

→もっと見る

PAGE TOP ↑