Pythonを利用して、自分のメモリ占有率をリアルタイムで測定します。


前言
最近はテキストの統計をしていますが、Pythonで実現して、比較的に面白い問題に遭遇しました。
直接メモリに書き込むのは本当に無理です。十数時間後にメモリがなくなり、プログラムが閉じられました。直接データベースに書き込むなら、毎回書くのが遅すぎます。もともと十数時間です。このままでは週に数えるのも無理です。
ソリューション
最後に、メモリでバッファリングして、一定量に達したら、当面のすべてのデータを一括してハードディスクに統合する方法を考えました。
しかし、このようにして一つの閾値があります。どうやってハードディスクを同期させるタイミングを決定するかは、通常ファイルの粒度によって処理できます。例えば、一つの原料ファイルを処理して同期したいです。キャッシュの意味は大きくないです。大きいですよね。エントリの数が届くまでは、メモリがいっぱいです。他の開発者が自分の都合でこの閾値を計算するのも友好的ではないかと考え、Python自身に自分のメモリの占有率を検知させるよりも、一度ハードディスクに同期して書き込む方法を思いつきました。
他の開発者にとって、自分の設備のメモリの大きさは分かりやすく、システムの運行状況に応じて合理的な閾値を設定するのが便利です。
Pythonを使って自分のメモリの占有を監視して、putilのこの倉庫を使ってシステムと対話して、基本的なロジックは先に自分のpidを取って、それからこのpidによってシステムとプロセスの情報を取得します。

def get_current_memory_gb() -> int:
#           。
pid = os.getpid()
p = psutil.Process(pid)
info = p.memory_full_info()
return info.uss / 1024. / 1024. / 1024.
例えば私のシステムは32 GBのメモリです。20 GBを設定するとかなり安全です。Pythonを使って統計資料を作ります。データはプロセスに20 GBのメモリを使っています。
pythonのputil
putilはプラットフォームライブラリを横断して、CPU、メモリ、磁気ディスク、ネットワークなどの情報を含むシステムの実行プロセスとシステムの利用率を簡単に取得することができます。
Linuxシステム下のインストール

pip install psutil
締め括りをつける
ここでは、Pythonを使って自分のメモリの占有率をリアルタイムで測定する方法について紹介します。もっと関連のあるPythonはリアルタイムで自分のメモリの占有率を測定します。以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。