みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Docker の /dev/shm の割り当てを調整する

Ray Tune を使用していて,このような警告が表示されました.

The object store is using /tmp instead of /dev/shm because /dev/shm has only * bytes available. This will harm performance! You may be able to free up space by deleting files in /dev/shm. If you are inside a Docker container, you can increase /dev/shm size by passing '--shm-size=* gb' to 'docker run' (or add it to the run_options list in a Ray cluster config). Make sure to set this to more than 30% of available RAM.

共有メモリ(/dev/shm)の容量が少ないようです.ホストでは十分な容量があったので,Docker の設定によるものと思われました.--shm-size オプションで変更でき,デフォルトでは "64m"だそうです*1

パフォーマンスが低下すると記載されていたので検証しました.--shm-size=16gb を追加して Docker コンテナを起動し,同じPyTorchのスクリプトの実行時間を比較しましたが,実行時間は全く変わりませんでした.おそらく worker が1個だけなので影響がなかったようです.分散処理をするならば別ですが,worker 1個ならばこの警告は無視してもよさそうです.