概要
psutilでCPUのコア数、ディスクの空き容量、メモリの使用量等、ハードウェアの情報を取得する。
バージョン情報
- Python 3.6.8
- psutil==4.4.2
- Ubuntu 18.04.1
インストール
$ pip install psutil
CPUのコア数
import psutil psutil.cpu_count() => 8
上記は4コア8スレッドのCPUで実行した場合。
CPUの論理コア数
デフォルトでは引数 logical=True が指定されている。Falseを指定すると論理コアは含まれず物理コアのみのカウントが取れる。
import psutil psutil.cpu_count(logical=False) => 4
CPU使用率
計測は1つのコアを使い切るような処理を後ろで走らせてから実行している。
CPUの使用率を計測する。
psutil.cpu_percent()
#=> 13.2
8コアで1コア使い切っているので、100/8 = 12.5に近い値が結果として出ている。
引数に interval=n を指定するとn秒間のcpu timeの差を計測して使用率を出す。
psutil.cpu_percent(interval=1) #=> 12.5
コアごとの使用率を出す。
psutil.cpu_percent(interval=1, percpu=True) #=> [0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 100.0, 0.0]
メモリの容量
32GBのPCの場合。
psutil.virtual_memory().total
=> 33601126400
メモリの空き容量
psutil.virtual_memory().available
=> 23216951296
メモリの使用量
使用量
psutil.virtual_memory().used
=> 9523564544
使用率
psutil.virtual_memory().percent
=> 30.9
スワップメモリ
スワップメモリ領域
psutil.swap_memory().total
#=> 1027600384
使用量
psutil.swap_memory().used
#=> 0
空き容量
psutil.swap_memory().free
#=> 0
ディスクパーティション
psutil.disk_partitions()
実行結果
[ sdiskpart(device='/dev/sda1', mountpoint='/', fstype='ext4', opts='rw,relatime,errors=remount-ro,data=ordered'), sdiskpart(device='/dev/sda2', mountpoint='/boot', fstype='ext4', opts='rw,relatime,data=ordered'), opts='rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro') ]
ディスク容量
/ にmountされているディスクの容量。500GBの場合。
psutil.disk_usage(path='/').total #=> 500695072768
ディスク使用量
使用量
psutil.disk_usage(path='/').used #=> 202363543552
使用率
psutil.disk_usage(path='/').percent #=> 42.6
空き容量
psutil.disk_usage(path='/').free #=> 272826175488
ネットワークインターフェース
loのネットワークを確認してみる
psutil.net_if_addrs()['lo']
実行結果
[ snic(family=<AddressFamily.AF_INET: 2>, address='127.0.0.1', netmask='255.0.0.0', broadcast=None, ptp=None), snic(family=<AddressFamily.AF_INET6: 10>, address='::1', netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', broadcast=None, ptp=None), snic(family=<AddressFamily.AF_PACKET: 17>, address='00:00:00:00:00:00', netmask=None, broadcast=None, ptp=None) ]
CPU温度
※ 以降はバージョンを上げて psutil==5.5.0 を利用。4系ではCPU温度等のsensor系機能は未実装。
psutil.sensors_temperatures()['coretemp']
実行結果
[shwtemp(label='Package id 0', current=44.0, high=100.0, critical=100.0), shwtemp(label='Core 0', current=44.0, high=100.0, critical=100.0), shwtemp(label='Core 1', current=43.0, high=100.0, critical=100.0), shwtemp(label='Core 2', current=43.0, high=100.0, critical=100.0), shwtemp(label='Core 3', current=43.0, high=100.0, critical=100.0)]
43〜44度になっている。
バッテリー使用率
手持ちのノートパソコンで計測。
psutil.sensors_battery().percent #=> 87.56626506024097
改定履歴
Author: Masato Watanabe, Date: 2019-03-11, 記事投稿