I.はじめに
psutil 名前はプロセスおよびシステムユーティリティ。psutilは、特定のサードパーティのPythonライブラリのクロスプラットフォームシステムの監視、分析、およびシステム・プロセスの管理に使用されます。それだけでなく、情報(CPU、メモリ、ディスク、ネットワークなど)のプロセスとシステム利用への容易なアクセスですが、また、通常の操作でUNIXシステムのコマンドライン・ツール・システムと同様の機能を実現するために。運用・保守作業がの言うことができる「必需品」。多くの場合、Pythonスクリプトで記述された運用・保守エンジニアは、状態監視システムの操作を行います。あなたが手動で情報を得るために、システムコマンドを実行するためにPythonの標準ライブラリを使用して所有している場合、それは非常に面倒になります。異なるオペレーティングシステムとの互換性はなく、自分自身のIPアドレスを扱うために両方。痛みのポイントの問題を解決するために、psutilは、それが判明しました。その外観は間違いなく、福音の運用・保守エンジニアです。操作とコードの1行または2行の実装を介してシステム監視を実装するための小さなパートナーのメンテナンス。
それは、強力で操作が簡単です。また、GoogleのGRRのプロジェクトを持っているしたい場合があり、独自のプロジェクトに統合されている多くのオープンソースプロジェクトに貢献し、osqueryプロジェクトはブックに直面しています。
githubのアドレスします。https://github.com/giampaolo/psutil
第二に、インストール
psutilあるをインストールするには、いくつかの方法があります。PIPでダウンロードをインストールするには、ソースによってインストールされ、インストールtarアーカイブ。ピップの方法によってこれが最も簡単です。
ピップpsutilをインストール
第三に、使用
3.1取得のCPU情報
- 私は自分のコンピュータのCPUコアを取得したいと思い、そして私のコンピュータのCPUモデルはI5 4590です。私は4つの原子力発電プラントモデルのCPUラインである検索エンジンを介して学びました。
psutilインポート psutil.cpu_count()#GET CPU、デフォルト= Trueの論理のロジックコア psutil.cpu_count(論理=偽)#GET物理CPUコアの数は >> 4 >> 4つの モデルはクアッドコアCPUであること#このショー。
- CPU時間の統計
psutilインポート psutil.cpu_times() >> scputimes(ユーザー= 9276.365234375、システム= 5034.5390625、アイドル= 96077.0703125、割り込み= 181.78796863555908、DPCは= 298.227108001709)
cpu_times()秒で、すべての論理CPU時間のシステムとのタプルを返します。フィールドタプルを返しますが、いくつかの共通フィールドがあります:
-
- ユーザー:ユーザー・プロセスの実行時間は、Linuxシステムでは、時間の訪問者を含み
- システム:カーネル実行処理時間
- アイドル:アイドル時間
- iowaitの(のLinux固有):I / O動作時間を待って
- IRP(Linux固有):タイムハードウェア割り込みサービス
- 割り込み(Windows固有):IRPと同様のフィールド
- DPC(Windows固有):サービスは、プロシージャコール(のDPC)時間を遅らせ
あなたは増加した場合percpu =真、cpu_times()リストの形式で、各論理CPU時間を出力します。
- CPU使用率の現在の割合を取得します:
輸入psutilの psutil.cpu_percent() >> 16.5
cpu_percent()デフォルトパラメータ=なし、percpu = Falseの間隔。場合間隔 0またはなしで、sysは区間内使用時間を表します。ときpercpuは Falseにすべての論理CPUの使用率を表しています。
あなたは、各論理CPU使用率の15秒、5秒間隔の統計情報が必要な場合は、これを行うことができます:
インポートpsutil 範囲のiについて(3): psutil.cpu_percent(間隔= 5、percpu = TRUE) >> [9.1、7.2、7.2、6.2] >> [5.9、3.8、9.0、8.4] >> [12.3、8.4 、3.4、4.1]
- 情報を取得するためにCPU周波数:
psutilインポート psutil.cpu_freq() >> [scpufreq(電流= 931.42925、分= 0.0、最大値= 3301.0)]
それが見つかりcpu_freq()現在、最小および最大周波数を含む返されるすべての論理CPUの周波数を有するタプル。
メモリ情報を取得するための3.2
- 物理メモリ情報を取得します。
psutilインポート psutil.virtual_memory() >> svmem(合計= 8509177856、 利用できる= 1692307456、パーセント= 80.1、使用= 6816870400、自由= 1692307456)
)(virtual_memoryタプルはバイト単位で、コンピュータ機器で利用可能な現在の物理メモリの情報が記載されて返します。それからの戻り結果、現在のメモリ8509177856バイト= 8 GB、利用可能なメモリ(空きメモリ)の合計サイズ1692307456バイト= 1.6 GB`、80.1パーセントの現在のメモリ使用率。価値があることを指摘された総メモリサイズが使用可能な、使用の両方の和に等しくされていません
利用できる Linuxシステムのフィールドは、計算が異なっています。=無料+バッファ+キャッシュされた利用可能。バッファがキャッシュページには、Linuxのメモリの下にバッファを指し、ブロックデバイス(ブロックデバイス)が占有表し、キャッシュされたがキャッシュとして定義することにより、Linuxでキャッシュメモリを指します。
- 情報を取得するためにスワップメモリ:
psutilインポート psutil.swap_memory() >> sswap(合計= 17016451072、使用= 7407996928、自由= 9608454144、パーセント= 43.5、罪= 0、SOUT = 0)
swap_memory()情報交換システムメモリを取得するために、我々は多くの場合、仮想メモリと言う、です。同じ物理メモリの意味での最初の4つのフィールド。ながら罪がディスクをスワップのサイズから転送され表し、SOUTがディスクサイズにスワップアウトから転送表します。Windowsシステムでは、これら2つのフィールドは意味がありません。したがって、結果を得るためにはゼロです。
ディスク情報の取得3.3
- ディスクパーティション情報を取得します。
インポートpsutilの psutil.disk_partitions() >> [sdiskpart(デバイス= 'C:\\'、マウントポイント= 'C:\\'、のfstype = 'NTFS'、OPTS = 'RW、固定')、 sdiskpart(デバイス=」 D:\\」、マウントポイント= 'D:\\'、のfstype = 'NTFS'、OPTS = 'RW、固定')、 sdiskpart(デバイス= 'E:\\'、マウントポイント= 'E:\\'、 FSTypeに= 'NTFS'、OPTS = 'RW、固定')、 sdiskpart(デバイス= 'F:\\'、マウントポイント= 'F:\\'、のfstype = 'NTFS'、OPTS = 'RW、固定')]
disk_partitions(すべて= FALSE)は、すべてのディスクパーティション情報をマウントのリストを返します。Linuxは、と少し似ているのdfコマンド。含む様々なフィールドは次のとおりです。
-
- デバイス:パーティション
- マウントポイント:マウントポイント
- FSTypeに:ファイルシステムフォーマット
- OPTS:マウントパラメータ
ほとんどの人はもっと理解するために、Windowsのパーティション情報システム上にある、少しはLinuxシステムで知られています。だから、私は学習を促進するために、Ubuntuの仮想マシンディスク情報システムを与えます。
[sdiskpart(デバイス= '/ DEV / SDA1'、マウントポイント= '/'、のfstype = 'のext4'、OPTS = 'RW、誤差=再マウント-RO')、 sdiskpart(デバイス= '/ DEV / SDA2'、マウントポイント= ''のfstype = 'スワップ'、OPTS = 'RW')]
- ディスクの使用状況を取得します
disk_usage()ディスクのディレクトリ・パスの利用で統計パラメータ。これは、パス引数を渡す必要があり、渡された私の引数は、「/」、手段は全体の現在のハードドライブの使用状況を取得しています。
psutilインポート psutil.disk_usage( '/') >> sdiskusage(合計= 128033574912、= 81997942784用い、自由= 46035632128、パーセント= 64.0)
- ディスクIOは、情報を入手してください。
輸入psutilの psutil.disk_io_counters() >> sdiskio(read_count = 510749、write_count = 505110、read_bytes = 13353246720、write_bytes = 8962015232、READ_TIME = 275、write_time = 238)
ネットワーク情報の取得3.4
- システム全体のネットワーク情報を取得します
psutilインポート psutil.disk_io_counters() >> snetio(BYTES_SENT = 77587966、bytes_recv = 1113555204、packets_sent = 500638、packets_recv = 1048467、ERRIN = 0、ERROUT = 0、DROPIN = 0、ドロップアウト= 0)
disk_io_counters()ネットワーク読み取りおよび書き込みデータの(有線LAN、無線インタフェースを含む)全体のシステム、契約情報の数などのすべてのカードを返します。個人的に私は、このメソッドはキャッチバッグに使用することができると思います。各フィールドの意味は次のとおりです。
-
- BYTES_SENT:送信バイト
- bytes_recv:バイトの受信数
- packets_sent:に送信されたパケットの数
- 受信したデータパケットの数:packets_recv
- ERROUT:総送信パケットエラー
- 廃棄されたパケットの合計数は、受信された:DROPINを
- ドロップアウト:パケットの総数は(常に0をOSXとBSDシステム)に送信されるときに破棄
あなたは増加した場合pernic = Trueの各ネットワークカードの、disk_io_counters()が出力さ情報データを。