1. ホーム
  2. python

[解決済み] Pythonで現在のCPUとRAMの使用率を取得する方法は?

2022-03-24 14:03:26

質問

Pythonで現在のシステムの状態(現在のCPU、RAM、空きディスク容量など)を取得するのに適した方法は何でしょうか?unix と Windows プラットフォームの場合はボーナスポイントがあります。

検索してみると、いくつか抽出方法がありそうですね。

  1. などのライブラリを使用する PSI (現在、積極的に開発されておらず、複数のプラットフォームでサポートされていないようです) あるいは ピスタットグラブ (2007年以来活動をしていないようで、Windowsのサポートもありません)。

  2. を使用するなど、プラットフォーム固有のコードを使用します。 os.popen("ps") などを使用し、*nix系では MEMORYSTATUSctypes.windll.kernel32 (参照 ActiveStateに関するこのレシピ ) をWindowsプラットフォーム向けに作成しました。これらのコードスニペットを使ってPythonのクラスを作ることもできます。

これらの方法が悪いというわけではありませんが、同じことをするのに十分サポートされた、マルチプラットフォームの方法が既にあるのでしょうか?

どのように解決するのか?

psutil ライブラリ は、さまざまなプラットフォームにおけるCPUやRAMなどの情報を提供してくれます。

<ブロッククオート

psutil は、実行中のプロセスやシステムの使用率 (CPU, メモリ) に関する情報を Python を使ってポータブルに取得するためのインターフェースを提供するモジュールで、ps や top、Windows タスクマネージャなどのツールが提供する多くの機能を実装しています。

現在、Linux, Windows, OSX, Sun Solaris, FreeBSD, OpenBSD, NetBSD, 32-bit と 64-bit の両方のアーキテクチャ、 Python 2.6 から 3.5 (Python 2.4 と 2.5 のユーザは 2.1.3 バージョンを使用できます) をサポートしています。


いくつかの例を挙げます。

#!/usr/bin/env python
import psutil
# gives a single float value
psutil.cpu_percent()
# gives an object with many fields
psutil.virtual_memory()
# you can convert that object to a dictionary 
dict(psutil.virtual_memory()._asdict())
# you can have the percentage of used RAM
psutil.virtual_memory().percent
79.2
# you can calculate percentage of available memory
psutil.virtual_memory().available * 100 / psutil.virtual_memory().total
20.8

その他の概念や興味のある概念を提供するドキュメントはこちらです。