Rを介してSQLクエリを介してデータを収集しています。大きなテーブルの小さなチャンクをプルし、チャンクを保存してチャンクをドロップするループがあり、テーブル全体がRSQLディレクトリのフラットファイルになるまで1時間ほど繰り返します.
ただし、R は Cputime limit exceeded: 24 エラーが頻繁に発生します。
マウンテンライオンをやっています。
私が試してみました
nice -19n R CMD バッチ myscript.R
そして、OS は奇妙な間隔でプロセスを強制終了し続けます。スクリプトが特定の操作でスタックしているとは思いません。ループを実行するのに時間がかかるだけです。
ループはそのように見えます..
for (i in 1:64){
foobyte <- NULL
for (j in 0:7){
max id = 1000000
rows = 1e5
to = max_id * (rows * j) - (i * 7 * rows)
from = max_id * (rows * (j-1)) - (1 * 7 * rows)
foobit <- queryDB(paste("SELECT * FROM foobar where id <= ', to,' and id > ',from,';")
foobyte <- rbind(foobit, foobyte)
}
filename <- paste("/my/data/dir/foobyte", j, ".csv", sep="")
write.table(foobyte, filename)
}
クラッシュするまでに 30 ~ 90 分間実行されます。その端末セッションでのみ ulimit を呼び出すシェル スクリプトから R を起動してみて、これがどのように機能するかを確認します。