Pythonを使用したリソース使用情報
UNIXのリソース使用量を測定するには、プログラムでリソースモジュールを使用する必要があります。このモジュールは、リソース使用率を制御することもできます。
このモジュールを使用するには、-
を使用してインポートする必要がありますimport resource
リソースの制限
このモジュールでは、setrlimit()を使用してリソース使用率を制限できます。リソースを制限するための2つのパラメーターがあります。これらのパラメータは、ソフト制限とハード制限です。ソフト制限は基本的に現在の制限であり、プロセスを切り替えることができますが、ハード制限を超えることはできません。ハード制限はソフト制限を超える任意の値に減らすことができますが、増やすことはできません。
リソース制限に関連するいくつかのメソッドと定数があります。これらは。
メソッドresource.getrlimit(resource)
このメソッドは、ソフト制限とハード制限をタプルとして返すために使用されます。指定されたリソースが無効な場合、ValueErrorが発生します。
メソッドresource.setrlimit(resource、limits)
このメソッドは、リソースに制限を設定するために使用されます。制限は、ソフト制限とハード制限のタプルとして割り当てることができます。 RLIM_INFINITYを使用して、無制限のリソースを作成することもできます。
メソッドresource.prlimit(pid、resource [、limits])
このメソッドは、setrlimit()メソッドとgetrlimit()メソッドを組み合わせたものです。任意のプロセスのリソース制限を同時に取得および設定できます。 pidが0の場合、現在のプロセスで機能します。
リソース制限に関連するいくつかの定数-
Sr.No。 | |
---|---|
1 | RLIM_INFINITY 無制限のリソースの制限 |
2 | RLIMIT_CORE 現在のプロセスで作成されたコアファイルの最大サイズ。 |
3 | RLIMIT_CPU プロセッサの最大プロセッサ時間。制限を超えると、SIGXCCPUシグナルがプロセスに送信されます。 |
4 | RLIMIT_DATA プロセッサのヒープの最大サイズ |
5 | RLIMIT_STACK コールスタックの最大サイズ。マルチスレッドプロセスにはメインスレッドのスタックを使用します。 |
6 | RLIMIT_NOFILE 現在のプロセスのオープンファイル記述子の最大数。 |
7 | RLIMIT_MEMLOCK ロックされたメモリの最大アドレス空間 |
8 | RLIMIT_NICE プロセスの素晴らしいレベルの上限 |
9 | RLIMIT_SWAP スワップスペースの最大サイズ |
10 | RLIMIT_NTPS システム内の疑似端末の最大数 |
リソースの使用
リソース使用量に関連するメソッドと定数があります。
メソッドresource.getrusage(who)
このメソッドは、現在のプロセスまたはその子によって使用されているオブジェクトを返すために使用されます。異なるフィールドを返します。戻り値のフィールドから、リソースがどのように使用されたかに関する情報を取得できます。
メソッドresource.getpagesize()
このメソッドは、システムページのバイト数を返すために使用されます。物理的なページサイズと同じではない場合があります。
リソース使用量に関連するいくつかの定数。
Sr.No。 | |
---|---|
1 | RUSAGE_SELF プロセスの呼び出しによって消費されるリソースを要求するのに役立ちます。これは、さまざまなスレッドのすべてのリソースの合計です。 |
2 | RUSAGE_CHILDREN 子プロセスによって消費されるリソースを要求するのに役立ちます。 |
3 | RUSAGE_BOTH 子プロセスだけでなく、呼び出しプロセスによって消費されるリソースを要求するのに役立ちます。すべてのシステムで利用できるわけではありません |
4 | RUSAGE_THREAD 現在のスレッドによるリソース使用量。すべてのシステムで利用できるわけではありません |
サンプルコード
import resource res_limits = resource.getrusage(resource.RUSAGE_SELF) print(res_limits) print('Page Size: ' + str(resource.getpagesize())) resource.setrlimit(resource.RLIMIT_CPU, (1, 2)) print('Resouce Limits: ' + str(resource.getrlimit(resource.RLIMIT_CPU))) for a in range(1000): for b in range(1000): for c in range(1000): pass
出力
$ python3 example.py resource.struct_rusage(ru_utime=0.035801, ru_stime=0.01074, ru_maxrss=9356, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=1147, ru_majflt=0, ru_nswap=0, ru_inblock=0, ru_oublock=0, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=0, ru_nivcsw=17) Page Size: 4096 Resouce Limits: (1, 2) CPU time limit exceeded (core dumped)
-
Pythonを使用しているWhatsapp?
このセクションでは、Whatsappチャットボットを作成しますが、TwitterやFacebook用の他のいくつかのチャットボットとは異なり、whatsappのポリシーのため、whatsappチャットボットはプラットフォーム上で直接実行されません。 しかし、Pythonの非常にスマートなパッケージであるseleniumを使用して、開発者がブラウザのアクティビティを自動化できるようにする方法があります。これにより、ブラウザからwhatsapp-webを利用できます。 要件 物事を成し遂げるためには、3つの基本的なことが必要です。セレン。 ターミナルで以下のコマンドを実行するだけで、pipを
-
PythonでのCX_Freezeの使用
時々私たちは非常にエキサイティングな何か違うものを作りたいと感じます、そして人間の性質によれば、私たちはいつもそれを共有するのが大好きです。 Pythonもそれらの願いを満たします。 Pythonを使用して、Pythonプログラムを友人と共有したい場合は、それを行うことができます。必要なのは、マシンのプログラムで使用されるすべてのモジュールに同じバージョンのPythonをインストールすることだけです。 まず、 pip install CX_Frezzeを使用してCX_Freezeモジュールをインストールする必要があります コマンドプロンプトのコマンド。 最初のステップは、この割り当て、