メモです。
こちら の記事でローカル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固有の問題かもしれませんが)
他の自動リロードの仕組みでも発生する可能性があるので一応覚えておくと良いかもしれません。