タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

golangとdockerに関するilyaletreのブックマーク (1)

  • golangとDockerとOOM — KaoriYa

    golangで書いたプログラムをDockerで動かしOOMが発生した際になるべく情報を残して殺される方法を紹介します。 2020/08/16追記: この記事の内容はgolangに関してはやや現実的ではなくなってしまいました。 詳しくは続編を参照してください。 TL;DR golang製のプログラムは仮想メモリ(VSZ)の確保に失敗するとgoroutineのダンプを吐いて死ぬ DockerのOOMはRSSベースで検出時にSIGKILLを投げてくる Docker利用時にVSZで制限をかけるスクリプトを書いた golang製のプログラムはlinux-amd64において最低でも101MBのVSZを要求する VSZの制限がそれより小さいと当然起動できない 実際のRSSは3MB程度で起動する Background コンテナ内で動いているプロダクション上のgolang製のプログラムが時々OOMに殺されて

    ilyaletre
    ilyaletre 2020/01/19
    確かにdockerを使ってプロセス管理する側からするとランタイムの特性把握してVSSで制限するよりRSSで制限する方が分かりやすいなぁ。(今回のような要件でなければ)
  • 1