Kacam.net

障害調査

内存一周涨满一次,重启就好

内存一周涨满一次,靠每周三凌晨重启扛着,已经两个月了。

プロンプトをコピーして、どれか一つを選んでください。答えを並べるのではなく、面接官として場面ごとに問い詰めてきます。

アプリを入れたスマートフォンなら、そのままアプリが開きます。WeChat の中では外部アプリを開けないので、先にブラウザで開いてください。

「重启就好」很容易让人直接归成「泄漏」,然后一头扎进「找哪个对象没释放」——而这一份的真相不在那个方向上。

内存一直涨至少是三种完全不同的东西,处理办法也完全不同。先分家,再往下走,顺序是固定的:堆内还是堆外 → 直方图 → 持有链。跳过前两步直接猜「是不是 ThreadLocal」,是这类问题上最常见的浪费。

现场里正好摆着两个教科书上的经典嫌疑人等你扑上去。

★★★★☆ · 約 35 分 · 問われるのは:先分三种、堆内还是堆外、直方图与持有链

この一本が鍛える動き

道具を使える 仮説を立てて検証する

この問題はやったか

ログインすると「この問題はやった」を記録できます。次に来たとき、いつやったか分かります。

やった人の手記

まだ誰も書いていません。やり終えたら、そのやり取りで何が出てきたか書いてください —— どの場面で詰まったか、あとで変えた結論はどれか。

ログインすると手記を書けます。

使い方

現場(何のサービスか、症状、いつから、影響範囲)を渡したあと、黙ります。あなたが質問し、監視・ログ・パケットを要求し、仮説を出す —— それに対して、見えない真相どおりに答えます。

**次にどこを見るべきかを自分から言うことは禁じています。** 聞かなければ言いません、あなたが十分間ぐるぐる回っていても。これは意図的です:現実には隣で「フレームグラフを見たら」と言ってくれる人はいません。障害調査の力とは「何を聞くべきか思いつく」ことそのものです。

始め方

  1. 一本選んで開き、プロンプトをコピーします。
  2. 新しい空の会話に貼ります。
  3. 現場を提示して止まります —— **そこからはあなたの番です。**

途中でいつでも使える四つの合図

  • 给个方向 答えではなく方向だけをもらう(回数に計上されます)
  • 公布真相 真相を明かして締める
  • 换一个 別の障害でやり直す
  • 复盘 すぐ締めて振り返りカードを出してもらう

三つの落とし穴

  • 末尾の真相を先に読まないこと —— 読んだらこの一本は練習になりません。
  • いきなり原因を当てにいかないこと。まず範囲を決めます(どれだけ/どの部分/いつから)。範囲が、コードの問題か環境の問題かを教えてくれます。
  • どの現場にも偽の手がかりを仕込んであります:同時期の無関係なリリース、原因ではなく結果である指標、教科書どおりの容疑者。締めのカードで、それぞれに何問使ったかが出ます。

最初は「P99 が 3 秒」から。診断の筋が一番きれいです。次に「一部のマシンだけ」——ここで学ぶ一条は応用範囲が最も広い。「たまに起きるタイムアウト」は後回しに、答えが自分のシステムの外にあります。「レポートが合わない」はシステムの知識が要りません。