7
6

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 5 years have passed since last update.

Dockerコンテナと同期しつつ自動リロードさせている時の注意点

Last updated at Posted at 2015-02-13

メモです。

こちら の記事でローカルPCとDockerコンテナのボリュームを同期しつつ、
スクリプトが更新されたらFlaskを自動リロードさせる仕組みを紹介しました。

pythonプロセスの負荷が上昇

現在は実際にこのスタイルで開発しているのですが
同期されるファイルが増えてくると
Dockerコンテナ内のpythonプロセスの負荷が高くなってきていることに気付きました。

なんでかなーと思って調査したところ、 自動リロードの部分を削ると負荷が激減しました。
つまり自動リロードが悪さしている様子。

インターバルを増やす

監視インターバルの間隔を延ばすと多少負荷がマシになりました。
先のスクリプトの例では、オプションにインターバルを指定します。

...
if __name__ == "__main__":
    app.run(host="0.0.0.0", debug=True, reloader_interval=5)

ちなみにですが、ローカルでflaskデーモンを起動しても問題ないため
Docker上のボリュームと同期している時のみ発生するようです。

今回はFlaskの問題でしたが(というかFlask固有の問題かもしれませんが)
他の自動リロードの仕組みでも発生する可能性があるので一応覚えておくと良いかもしれません。

7
6
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
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?