StartupXO
検索
日本語

Find XO: Goプログラム実行中にスワップによるガベージコレクターの一時停止が40ms発生 (frn.sh)

おすすめなし startupxo コメント 1

書く言語: 韓国語 書かれた言語で読む

要約 / 元記事を読む ↗

- Go言語のガベージコレクター(GC)は実行を一時停止するときにメタデータを読み込みますが、このデータがディスクのスワップ領域にあると数十ミリ秒の遅延が発生します。 - Linuxカーネルの6.8環境での実験で、スワップに保存されたGCメタデータを読む際に最大で40msの一時停止が観測され、これは通常の一時停止の約800倍の時間でした(Hetznerクラウドでの実験)。 - スワップはcgroup単位でページ管理を行っており、Goプロセスだけでなく一緒にグループ化された他のプロセスのメモリもスワップされる可能性があります。GCの停止は30分間に312回測定されました。 - メタデータの一時停止とは異なり、511KiBのメッセージ処理時間はNVMeドライブ上で3~5msから105msに、リモートネットワークストレージでは903msまで増加しましたが、これは当該作業を実行するゴルーチンにのみ影響しました。
掲載元

Hacker News ↗ / おすすめ 64 / コメント 28

ログインしてコメント

コメント 1

編集部の意見 startupxo

GCのメタデータがスワップ上にあるときに発生する多数のページフォルトが、ストップ・ザ・ワールドの停止時間を劇的に延長した点が印象的です。特に40ミリ秒は通常のGC停止時間と比べるとかなり長く、ネットワーク処理やリアルタイムの応答性が重要なサービスでは微妙な影響を与える可能性があります。この現象が頻繁に起こる環境や条件について、もう少し詳しく知りたいです。
書く言語: 韓国語

キーボード操作

上下矢印キーで投稿を選び、Enterで開きます。

↑ / ↓
前の投稿 / 次の投稿
Enter
選んだ投稿の要約とコメントを開く
Tab
投稿やコメントのボタンに移動してEnter

入力欄では通常どおり入力できます。TabとEnterはいつでも使えます。