株式会社ブレインパッド プロダクトユニットの鈴木です。
弊社は「データ活用の促進を通じて持続可能な未来をつくる」をミッションに、
データ分析支援やSaaSプロダクトの提供を通じて、企業の「データ活用の日常化」を推進しております。
現在、私は企業のマーケティング活動をデータで支援するRtoaster action+の開発を担当しております。
はじめに
最近のITは「クラウドやコンテナ技術の普及により、アプリケーションの実行環境が抽象化され、一見内部を意識する必要がなくなってきている部分があります。しかし、コスト最適化や遅延の最小化といったパフォーマンスチューニングを行うためには、抽象化されたその下にある基盤リソースの利用状況を把握し、リソースの過不足を判断する必要があります。
と言うことで、本記事ではCLIでマシンリソースがどのくらいあるかをコマンドで確認する方法をみていきます!
リソースを確認するマシン
ミニpc n100のWSL上で確認していきます。
余談ですが、、、
↑のミニPCは、Linuxやサーバー構築を勉強するために購入しました。
(自分が買った時はセールで1万5000円くらいで買えました。)
まずは、GUIで見られる情報を確認していきます!
(Windowsは、タスクマネージャーでリソースを確認できます)
CPU
- CPUモデル:インテル® プロセッサー N100
- ソケット: 1
- コア: 1
- 論理プロセッサ数: 4
- L1キャッシュ: 384KB
- L2キャッシュ: 2.0MB
- L3キャッシュ: 6.0MB
メモリ
- メモリ:12.0GB
後の章でCLIを利用しリソースの確認を行なって行きますが、リソースの確認はWSL上で行うので↑と同じ12GBにならず、WSLに割り当てたメモリが表示されます。
wslのメモリ設定は↓のように設定しています。
[wsl2]
memory=8GB
swap=3GB
ストレージ
- 容量:239GB
- 種類:SSD(SATA)
GPU
- GPUモデル:Intel® UHD Graphics
CLIでリソースの状況を確認してみる
CPU
- コア: 1
- ソケット: 1
- 論理プロセッサ数: 4
- L1キャッシュ: 384KB
- L2キャッシュ: 2.0MB
- L3キャッシュ: 6.0MB
$ lscpu
~ 略 ~
CPU(s): 4 # 論理コア数
On-line CPU(s) list: 0-3
Vendor ID: GenuineIntel
Model name: Intel(R) N100
CPU family: 6
Model: 190
Thread(s) per core: 1 # コア毎のスレッド数
Core(s) per socket: 4 # ソケット毎のコア数
Socket(s): 1 # ソケット数
Stepping: 0
BogoMIPS: 1612.80
~ 略 ~
(展開可能)lscpuの省略なし出力
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 39 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Vendor ID: GenuineIntel
Model name: Intel(R) N100
CPU family: 6
Model: 190
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Stepping: 0
BogoMIPS: 1612.80
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good n
opl xtopology tsc_reliable nonstop_tsc cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx
f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdse
ed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves avx_vnni vnmi umip waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lb
r flush_l1d arch_capabilities
Virtualization features:
Virtualization: VT-x
Hypervisor vendor: Microsoft
Virtualization type: full
Caches (sum of all):
L1d: 128 KiB (4 instances)
L1i: 256 KiB (4 instances)
L2: 8 MiB (4 instances)
L3: 6 MiB (1 instance)
NUMA:
NUMA node(s): 1
NUMA node0 CPU(s): 0-3
Vulnerabilities:
Gather data sampling: Not affected
Itlb multihit: Not affected
L1tf: Not affected
Mds: Not affected
Meltdown: Not affected
Mmio stale data: Not affected
Reg file data sampling: Vulnerable: No microcode
Retbleed: Mitigation; Enhanced IBRS
Spec rstack overflow: Not affected
Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Spectre v2: Mitigation; Enhanced / Automatic IBRS; IBPB conditional; RSB filling; PBRSB-eIBRS SW sequence; BHI BHI_DIS_S
Srbds: Not affected
Tsx async abort: Not affected
$ lscpu -C
NAME ONE-SIZE ALL-SIZE WAYS TYPE LEVEL SETS PHY-LINE COHERENCY-SIZE
L1d 32K 128K 8 Data 1 64 1 64 # L1データキャッシュ
L1i 64K 256K 8 Instruction 1 128 1 64 # L1命令キャッシュ
L2 2M 8M 16 Unified 2 2048 1 64 # L2キャッシュ
L3 6M 6M 12 Unified 3 8192 1 64 # L3キャッシュ(CPUの全てのコアで共有)
メモリ
こちらは、↑に記載した.wslconfigでWSLに割り当てたメモリの値が確認できる
- 物理メモリ
- スワップ領域
$ free -h
total used free shared buff/cache available
Mem: 7.8Gi 886Mi 6.4Gi 3.7Mi 619Mi 6.9Gi # 物理メモリ
Swap: 3.0Gi 0B 3.0Gi # スワップ領域
ストレージ
-
/mnt/c:238GB( ≒ GUIで確認した容量239GB)がマウントされている -
/:1007GBがマウントされている
(展開可能)/に約1TBが割り当てられている根拠
$ diskpart
Microsoft DiskPart バージョン 10.0.26100.1150
Copyright (C) Microsoft Corporation.
コンピューター: WIN-7DT18NF20BJ
DISKPART> select vdisk file="C:\Users\xxxx\AppData\Local\wsl\{e5a5e0ab-c6c0-4b4d-ab7b-fb4a25af4350}\ext4.vhdx"
DiskPart により、仮想ディスク ファイルが選択されました。
DISKPART> detail vdisk
デバイスの種類 ID: 0 (不明)
ベンダー ID: {00000000-0000-0000-0000-000000000000} (不明)
状態: 追加済み
仮想サイズ: 1024 GB
物理サイズ: 13 GB
ファイル名: C:\Users\xxxx\AppData\Local\wsl\{e5a5e0ab-c6c0-4b4d-ab7b-fb4a25af4350}\ext4.vhdx
子: いいえ
親ファイル名:
関連付けられたディスク番号: 見つかりません。
$ df -h
Filesystem Size Used Avail Use% Mounted on
none 3.9G 0 3.9G 0% /usr/lib/modules/6.6.87.2-microsoft-standard-WSL2
none 3.9G 4.0K 3.9G 1% /mnt/wsl
drivers 238G 100G 138G 43% /usr/lib/wsl/drivers
/dev/sdd 1007G 11G 945G 2% /
none 3.9G 80K 3.9G 1% /mnt/wslg
none 3.9G 0 3.9G 0% /usr/lib/wsl/lib
rootfs 3.9G 2.7M 3.9G 1% /init
none 3.9G 828K 3.9G 1% /run
none 3.9G 0 3.9G 0% /run/lock
none 3.9G 0 3.9G 0% /run/shm
none 3.9G 76K 3.9G 1% /mnt/wslg/versions.txt
none 3.9G 76K 3.9G 1% /mnt/wslg/doc
C:\ 238G 100G 138G 43% /mnt/c
snapfuse 64M 64M 0 100% /snap/core20/2669
snapfuse 64M 64M 0 100% /snap/core20/2682
snapfuse 51M 51M 0 100% /snap/snapd/25577
snapfuse 512K 512K 0 100% /snap/tcpdump/28
tmpfs 3.9G 16K 3.9G 1% /run/user/1000
$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sdd 1007G 12G 945G 2% /
$ lsblk
NAME
MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 388.4M 1 disk
sdb 8:16 0 186M 1 disk
sdc 8:32 0 3G 0 disk [SWAP]
sdd 8:48 0 1T 0 disk /snap
/mnt/wslg/distro
/
GPU
今回は割愛しますが、NVIDIAのGPUを利用している場合は、nvidia-smiコマンドでGPUの管理や監視が行えるみたいです。
↓ (自分の記事ではないのですが)こちらに使い方など書いてあったのでご覧いただければと思います。
最後に
今後は、今回確認できたリソースがどのくらい使われているかなどを確認するコマンドを紹介する予定です!
アカウントをフォローしてお楽しみにしてお待ちください ♪