Next.jsで発生したAPI ルートのメモリリークを3点ヒープダンプ法で解決した話
BRANK

はじめにNext.js を使用しているシステムでメモリリークが発生したので、3点ヒープダンプ法で原因を特定しました。ヒープダンプを取得するまでの手順や Chrome Devtools の Heap Profiler の使い方が分かったので、備忘録としてまとめました。3行で要約NextApiResponse の中身は stream なので、res.end() などでストリームを終了させないとメモリリークが発生するメモリリークを特定するのに3点ヒープダンプ法という手法があるHeap Profiler が便利Next.jsのシステムでメモリリークが発生メトリクス監視からメモリリークを発見本番環境のECSのメトリクスを監視していたところ、メモリ使用率がジリジリと上がり続けていました。新しい機能をデプロイをするとメモリ使用率が一時的に下がるものの、再びメモリ使用率が徐々に上がっていました。このことから、メモリリークが発生していると判断し、原因を調査することにしました。発生原因のあたりECSのメモリ使用率のグラフを詳しく見てみると、ある時期を境に明らかにメモリ使用率が増加していることがわかりました。Gitのログでその時期にマージされたPRを調べてみると、怪しいPRが見つかりました。以下が問題のPRで更新さ…

zenn.dev
Related Topics: React API Economy