0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GCEでselenium standalone-chromeを動かす

Last updated at Posted at 2020-08-17

現象

selenium/standalone-chromeのcontainerをGCEでしばらく使っていたらsshに接続できなくなった。
ローカルのMacbookでは発生していなかった。
メモリ関連が原因だと考え調査したところ、Out Of Memoryが発生していた。

docker run -d -p 4444:4444 --shm-size=2g selenium/standalone-chrome:latest

解決策

VMのメモリを監視しswap領域を追加した。
(お金のある人はメモリがたくさん乗ったインスタンスを使うのが理想的です。)

swapの追加方法

sudo dd if=/dev/zero of=/swapfile bs=1M count=3000
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

swapが追加されていることを確認する

free -m
             total        used        free      shared  buff/cache   available
Mem:          ****        ***        ***         ***         ***         ***
Swap:         2999        ***        ***

次回起動時に自動でmountできるように /etc/fstabに追記する。

# /etc/fstab
/swapfile none swap sw 0 0

現象の究明

メモリ状態を監視する

stackdriver-agentを導入し、Cloud Monitoring にメモリのグラフが出るようにした。
https://cloud.google.com/monitoring/agent/installation?hl=ja

Out Of Memoryが起きたときの状態

image.png

  • Timeoutしてssh接続できない
  • Cloud Monitoring でメモリ状態を監視したところ、徐々にFreeが減少し、最終的にVMは起動しているがグラフが出ない状態になる。

swapの容量

  • メモリ3Gのインスタンスを使っていたので3Gを設定

システム内の RAM の容量 推奨されるスワップ領域 ハイバネートを許可する場合に推奨されるスワップ領域
⩽ 2 GB RAM 容量の 2 倍 RAM 容量の 3 倍
2 GB ~ 8 GB RAM 容量と同じ RAM 容量の 2 倍
8 GB ~ 64 GB 最低 4GB RAM 容量の 1.5 倍
64GB 未満 最低 4GB ハイバネートは推奨されない

※ ハイバネートはwindowsのsleepみたいなやつで、メモリの状態を一時的にHDDに保存する機能です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?