Google DriveのRate Limit
ここ最近Google Driveを使ってシステム構築できないかいろいろ試してきたが使っていてなんだか不安定だなと思っていたのだが、プログラムの問題ではなくGoogle Driveのアクセス制限(Rate Limit)であることに気が付いた。
事前にあまり情報がなかったので帯域や通信制限がどのようになっているのか気にはなっていたが、特に制限はないと勘違いしていたが、明確にアクセス回数制限に上限があるようだ。
Google DriveのRate Limitの確認方法
まずGoogle APIのダッシュボード画面に行く
Google Driveを使っている場合、画像のようにGoogle Drive APIへのリンクが出ている。
ここをクリックしGoogle Drive APIのダッシュボードに移動する。
ここで左のメニューから"割り当て"をクリックする。
そうすると、Google Drive APIのRate Limitが表示される。
無料会員の場合、下記のような制限になってると思います。
Queries per day: 1,000,000,000
Queries per 100 seconds per user: 1,000
Queries per 100 seconds: 10,000
100秒間に1000リクエストの制限があるので短時間で大量にファイルをアップロードするような処理をpyDriveで実装しても、Rate Limitに引っかかってしまいプロセスがkillされてしまう。google-drive-ocamlfuseが不安定だったのもこのせいだと思われたが、100秒当たりのコール数を確認しても1000コールにほど遠い状況。1日のコール数も全然少ないので問題ない。
何か他にもありそう。
pythonのプログラムが"Killed"のメッセージだけ残して落ちるのでほぼほぼ手掛かりがないが、exceptionに引っかかってるわけではないので、外部(OS)からKillされているっぽい。
topコマンドでメモリ使用量を見てると、流してくとメモリ使用量が徐々に増えているのがわかる。
プログラムはほぼほぼここで公開しているものと同じだが果たしてどこでリークしているのか...