Dockerコンテナで動作中のプロセスのCPU使用率などを確認する

以下の記事のとおりに、Wikipediaデータのトピックを抽出していると、計算に非常に時間がかかります。本当に動作しているのか心配になるほどです。

WEB+DB PRESS (ウェブDBプレス) Vol.100「トピックモデルによる教師なし学習」(P.37)をやってみた

そんなときは、PowerShellを起動して、以下のコマンドを入力してみてください。Dockerコンテナ内で動作するプロセスのCPU使用率やメモリ使用率などを確認できます。これで少しは諦められるでしょうか。

なお、「webdb100_container」は、Dockerコンテナの名前です。以下の表示は折り返されていると思いますが、察してください。

PS D:\> docker exec -ti webdb100_container ps auxww
USER PID %CPU %MEM     VSZ    RSS TTY   STAT START   TIME COMMAND
root   1  0.0  0.0   15216   3404 pts/0 Ss   05:46   0:00 /bin/bash
root  54  101  8.4 1213700 689828 pts/0 Rl+  05:58 786:27 python xxxxx.py xxxxx.txt
root 117  0.0  0.0   50888   3844 pts/1 Rs+  18:51   0:00 ps auxww

pythonコマンドがCPUを786分以上(13時間以上)使用していることが分かります。

各列の意味は以下のとおりです。

表示 内容
USER プロセスを所有するユーザー
PID プロセスID
%CPU CPUの使用率
プロセスを起動してからの時間で、CPU使用時間を割った値
%MEM 実メモリの使用率
VST 使用中の仮想メモリサイズ
RSS 使用中の実メモリサイズ
TTY プロセスのtty
STAT プロセスの状態
S:スリープ状態
s:セッションリーダー
R:実行可能状態
l:マルチスレッド
+:フォアグラウンドプロセス
START プロセス生成時刻
TIME プロセスがCPUを使用した累計時間
COMMAND コマンド