【kubernetes】Podのshared memory sizeを変更する
こんにちは
今日はkubernetesにおいてPodのshared memory size(shm)を変更する方法についてまとめます。
以前deepopsを使ったkubernetesクラスターの立ち上げについてまとめました。
このdeepopsを使ったkubernetesではデフォルトで shm=1G に設定されています。
Tensorflowであればこのサイズでも問題ないのですが、Pytorchではdata loaderの仕様上で結構なサイズのshmサイズが要求されることもあるようです。
そのためdeepopsでPytorchの学習を開始すると
DataLoader worker (pid xxx) is killed by signal: Bus error.
というメッセージとともにお亡くなりになってた...ということが起こるかと思います。
そこでこのエラーを回避するためにPodのshmサイズを変更する必要があります。
/dev/shm
をPodにマウントする設定を追記することでホストの/dev/shmを使えるようになります。
spec: containers: - name: <container-name> image: <image-tag> volumeMounts: - mountPath: /dev/shm name: dshm volumes: - name: dshm emptyDir: medium: Memory
ただこの方法はあくまでワークアラウンド(対処療法)っぽいので自己責任で使いましょう。