以前の記事でBash on Ubuntu on Windowsをインストールして触ってみました。その後Insider Previewのビルド番号も上がり、挙動が変わっているところなどもありましたので、もう少し詳しく、ただ個人的に使いそうなコマンドを実行してみます。
1. ファイルシステム周りのコマンド
Windows10の上で動くLinuxですから、実際のデータはNTFS上にあるはずです。それがBash on Ubuntu on Windowsではどう見えるか確認します。
dfコマンド
以前は/etc/mtabがないためにエラーが返ってきていましたが、最近のBuildで修正されたようです。
root@MYCOMPUTER:~# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 143G 97G 47G 68% /
tmpfs 143G 97G 47G 68% /run
none 143G 97G 47G 68% /run/lock
none 143G 97G 47G 68% /run/shm
none 143G 97G 47G 68% /run/user
WindowsのCドライブも143GB程度の容量なので、Cドライブ全体がサイズとして認識されているようです。
mount情報
mountしているファイルシステムの情報などを見てみます。/etc/fstab
ではファイルシステムがext4と書かれていますが、実際にはそうなっていないようです。Disk IOの処理はWindows APIに裏で変換されているのでしょう。
root@MYCOMPUTER:~# cat /etc/fstab
LABEL=cloudimg-rootfs / ext4 defaults 0 0
root@MYCOMPUTER:~# mount
rootfs on / type rootfs (rw,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204320k,mode=755)
none on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
none on /run/shm type tmpfs (rw,nosuid,nodev,relatime)
none on /run/user type tmpfs (rw,nosuid,nodev,noexec,relatime,size=102400k,mode=755)
Windows側にDisk IOを任せているためか、Disk IOの性能は取得できませんでした。
root@MYCOMPUTER:~# iostat
Cannot find disk data
2. CPU、メモリ、プロセス周りのコマンド
CPUの情報
CPUの情報を見てみます。物理CPUがそのまま見えています。
root@MYCOMPUTER:~# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 94
model name : Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
stepping : 3
microcode : 0xffffffff
cpu MHz : 2601.000
cache size : 256 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 6
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm pni pclmulqdq est tm2 ssse3 fma cx16 xtpr sse4_1 sse4_2 movbe popcnt aes xsave osxsave avx f16c rdrand hypervisor
bogomips : 5202.00
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
(以下2コア目以降の情報のため省略)
メモリ情報
メモリも物理メモリ全体が見えています。ただ、スワップファイルはサイズがよくわからないことになっています。MB単位なのにありえないくらい桁数が多いですね。
root@MYCOMPUTER:~# free -m
total used free shared buffers cached
Mem: 65356 4423 60933 17 33 184
-/+ buffers/cache: 4205 61150
Swap: 0 18014398505299712 4182271
root@MYCOMPUTER:~# ps auxwww
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 0 0 ? Ss 2432 0:00 /init
root 2 0.0 0.0 0 0 ? Ss 2432 0:00 /bin/bash
root 556 0.0 0.0 0 0 ? R 2432 0:00 ps auxwww
CPUとメモリの性能情報取得
性能データを見るのはやはりtop
コマンドとvmstat
コマンドですよね。
top - 23:21:27 up 6 min, 0 users, load average: 0.52, 0.58, 0.59
Tasks: 3 total, 1 running, 2 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 50.0 sy, 0.0 ni, 45.1 id, 0.0 wa, 4.7 hi, 0.0 si, 0.0 st
KiB Mem: 66925280 total, 4513292 used, 62411988 free, 34032 buffers
KiB Swap: 0 total, 18446744+used, 42826460+free. 188576 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 0 0 0 S 0.0 0.0 0:00.00 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.27 bash
557 root 20 0 0 0 0 R 0.0 0.0 0:00.00 top
残念ながらvmstat
は正しく動きませんでした。
root@MYCOMPUTER:~# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
Error: /proc must be mounted
To mount /proc at boot you need an /etc/fstab line like:
proc /proc proc defaults
In the meantime, run "mount proc /proc -t proc"
3. kernel周りのコマンド
基本的にユーザーモードだけが動くはずなのですが、Linux Kernelに関するパラメータがいくつか見られたりします。sysctl
コマンドと、OSバージョンを見てみましょう。
root@MYCOMPUTER:~# sysctl -a
kernel.osrelease = 3.4.0-Microsoft
kernel.ostype = Linux
kernel.ngroups_max = 65536
kernel.pid_max = 32768
kernel.randomize_va_space = 2
vm.swappiness = 60
root@MYCOMPUTER:~# uname -a
Linux MYCOMPUTER 3.4.0+ #1 PREEMPT Thu Aug 1 17:06:05 CST 2013 x86_64 x86_64 x86_64 GNU/Linux
root@MYCOMPUTER:~# cat /etc/issue
Ubuntu 14.04.4 LTS \n \l
4. Bash on Ubuntu on Windows10に関する不具合を見つけたら
MicrosoftのGithubの中に不具合報告専用のレポジトリとして「Microsoft/BashOnWindows (https://github.com/Microsoft/BashOnWindows)」があります。コマンドの結果がエラーになるなどがあれば、issueを起票して、修正のために必要な情報などを提供してみてはいかがでしょうか。まだまだ動きが重たかったりするケースもありますが、今後改善されていくと思われます。引き続きウォッチしていきたいと思います。