実行時に6〜7Gのメモリを使用するgoで書かれたサービスがあります(上部のRES)。そこで、問題がどこにあるかを把握するために pprof ツールを使用しました。
go tool pprof --pdf http://<service>/debug/pprof/heap > heap_prof.pdf
しかし、結果には約1〜2Gのメモリしかありません(pdfの「合計MB」)。残りはどこ?
そして、GOGC=off でサービスのプロファイリングを試みた結果、「Total MB」は上部の「RES」とまったく同じになりました。メモリはGCされているようですが、カーネルに戻されていないため、プロファイルされません。
何か案が?
PS、1.0.3 と 1.1rc3 の両方でテストしました。