selenium+chrome+chrome-driverでディスクがいっぱいになった話

selenium

サービス停止

ある日、突然Seleniumで動いているサービス(クロール)が動かなくなった。最終的に、ディスクがいっぱいである事が問題だったのだが、何が問題だったのか見つけるのに少し時間がかかったのでメモ。

エラー内容の確認

今回はlaravelでエラーを吐いていて、内容は以下。これだけ見るとなんのこっちゃ?という感じだったが、調べていくと容量が足りなくてキャッシュが作れず落ちていたようだ。

id:  [unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed
 (Session info: headless chrome=101.0.4951.54)
 (Driver info: chromedriver=100.0.4896.60 (6a5d10861ce8de5fce22564658033b43cb7de047-refs/branch-heads/4896@{#875}),platform=Linux 5.13.0-1022-aws x86_64)]
...(以下スタックトレース略)

/tmpを掃除しよう

容量の確認

/tmpにはchromeが利用しているキャッシュファイルが日々作成されている。(それこそ起動するたびに)ただ、これが「.com.google.Chrome…」とドットで始まるファイルで、隠しファイル扱いされてしまうので、どれぐらいあるか確認したい場合、lsで言えば -a のオプションをつけると確認ができる。

$ cd /tmp
$ ls -al
drwx------    3 ubuntu ubuntu    4096 Oct 10 14:08 .com.google.Chrome.a1jwnU
drwx------    3 ubuntu ubuntu    4096 Aug 31 16:48 .com.google.Chrome.a2THHF
drwx------    3 ubuntu ubuntu    4096 Aug 29 15:28 .com.google.Chrome.a3QLOo
drwx------    3 ubuntu ubuntu    4096 Oct  7 16:01 .com.google.Chrome.a3i0Lo
drwx------    3 ubuntu ubuntu    4096 Sep  8 19:08 .com.google.Chrome.a4wHAy
drwx------    3 ubuntu ubuntu    4096 Oct  8 11:28 .com.google.Chrome.a5RH5n
drwx------    3 ubuntu ubuntu    4096 Sep  9 16:01 .com.google.Chrome.a5gqSC
drwx------    3 ubuntu ubuntu    4096 Oct  2 14:41 .com.google.Chrome.a7AKSh
drwx------    3 ubuntu ubuntu    4096 Sep 10 12:47 .com.google.Chrome.a7ynum
drwx------    3 ubuntu ubuntu    4096 Sep 21 19:01 .com.google.Chrome.a9HhOg
drwx------    3 ubuntu ubuntu    4096 Sep  9 11:08 .com.google.Chrome.aBj0p0
drwx------    3 ubuntu ubuntu    4096 Sep 23 16:21 .com.google.Chrome.aBvIb1
drwx------    3 ubuntu ubuntu    4096 Sep 22 14:28 .com.google.Chrome.aDFsyH
drwx------    3 ubuntu ubuntu    4096 Aug 23 14:28 .com.google.Chrome.aEYhTr
drwx------    3 ubuntu ubuntu    4096 Sep  7 13:25 .com.google.Chrome.aF5z1Q
drwx------    3 ubuntu ubuntu    4096 Sep 27 09:21 .com.google.Chrome.aFBDVv
drwx------    3 ubuntu ubuntu    4096 Oct  4 13:40 .com.google.Chrome.aFbwuT
drwx------    3 ubuntu ubuntu    4096 Sep 18 13:48 .com.google.Chrome.aGzXBe
drwx------    3 ubuntu ubuntu    4096 Sep 21 11:48 .com.google.Chrome.aH9Rn6
drwx------    3 ubuntu ubuntu    4096 Aug 23 09:41 .com.google.Chrome.aHguF1
drwx------    3 ubuntu ubuntu    4096 Sep  7 17:08 .com.google.Chrome.aHubL3
drwx------    3 ubuntu ubuntu    4096 Aug 26 18:08 .com.google.Chrome.aIxx5p
...(以下、いっぱい続く)

不要ファイルの削除

分かってしまえばなんてことはないので、削除をする。chrome系サービスが動いていないかは確認しないとサービスが落ちると思うので注意。

$ cd /tmp
$ rm -rf .com.google.Chrome.*

定期的に削除

これでディスク問題は解決したので、あとは定期的に削除するようシェルなどを作って実行すればOK。

$ vi /home/ubuntu/shell/delete_chrome_cache.sh
#!/bin/sh
cd /tmp
rm -rf .com.google.Chrome.*

これをcronに登録しておく。時間はchromeを使わない時間帯であればいつでも可。キャッシュファイルの作成ユーザがログインユーザと異なり、削除権限がない場合、削除可能なユーザで実行する必要あり。以下は毎日5時に実行する例。

$ sudo /etc/crontab
...
0 5 * * * ubuntu /home/ubuntu/shell/delete_chrome_cache.sh > /dev/null 2>&1

余談

ディスク容量は定期的に確認しよう。キャッシュではなくともログで容量いっぱいというのもまたよくある話・・・

コメント

タイトルとURLをコピーしました