「[DEBUG] [dku.resource] - Process stats for pid ~」について
【状況】
無料版(インストール版)を使わせて頂いてます。
Code recipes - Pythonで処理(約500,000明細)をしたいのですが、処理開始するものの、(数時間後も)処理完了に至りません。(なので、ABORTを押下)
ログには、以下が継続的に出力され続けています。
[DEBUG] [dku.resource] - Process stats for pid 12345: {"pid":12345,"commandName":"C:\(略)\Scripts\python.exe","cpuCurrent":0.0,"cpuAverageOverPast60Seconds":0.0,"vmRSSTotalMBS":0}
【ご質問】
- 上記ログはCPUの不足を意味するものでしょうか?
- (PCのスペックの問題はあると思うのですが、PCは現状のものを使用する前提で、)処理完了の為に取り得る解決策はございますでしょうか?
【その他】
- PCスペック
プロセッサ Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
実装 RAM 8.00 GB - 以下「Max memory usage (MB)」は4,000(MB)に一旦変更済
DSS settings > COMPUTE & SCALING > Resources control > Analysis / Prepare processed limit > Max memory usage (MB) - 処理件数を一旦1,000明細に減らして実行した場合、処理完了することは確認済
追加で必要な情報等あれば仰って下さい。何卒よろしくお願いいたします。
Operating system used: Windows
Answers
-
Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 125 Dataiker
@Hisanobu さん、ご質問ありがとうございます。以下、回答させていただきます。
1. 上記ログはCPUの不足を意味するものでしょうか?
→ 上記ログだけからは判断できないのですが、ご記載いただいた状況を拝見しますと、扱うデータサイズに対して物理メモリーのサイズが小さいために、OS側で必要なメモリーを確保できず、処理が終わらない状況になっているのではないかと推測されます。2.(PCのスペックの問題はあると思うのですが、PCは現状のものを使用する前提で、)処理完了の為に取り得る解決策はございますでしょうか?
→ すべてのデータをメモリー上に読み込むのではなく、メモリー上に読み込むデータサイズを制限した上で、逐次処理することで、対応できるかもしれません。Dataikuでは、以下のメソッドを提供しており、DataFrameのチャンクサイズを絞って、イテレーションすることが可能です。
import dataiku dataset = dataiku.Dataset("my_dataset") for df in dataset.iter_dataframes(chunksize = 5000): #dfの処理
上記のような対応、もしくはPythonのジェネレータ関数(yield)を利用するなどの案が考えられますが、私も実機では試せていないため、実際に効果があるかどうかお試しいただけますと幸いです。
-
Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 125 Dataiker
上記 Dataset.iter_dataframes について、Dataiku Galleryに利用例のサンプルがありましたので、以下のURLも参考にしていただければと思います。
-
ご回答・利用例、まことにありがとうございます。参考にさせて頂きます。