0

mongoDBの接続を観察しています。新しい接続が生成されると、新しいスレッドが作成されたことがわかります (pstack ·pgrep monnod | grep -c Thread), and some new chunks memory allocated (get from /proc/pgrep mongod`/maps)。チャンクの 1 つは 1024K で、これは新しいスレッドのスタック サイズである必要があります。1024k に設定されていることがわかりました。コードで。このセッションを終了すると、スレッド数は 1 減少しますが、メモリはまだ残っています。新しい接続を生成すると、これらのメモリが再利用されているようです。だから私はそれがLinuxカーネルの振る舞いであるべきだと思います。私が正しいかどうかわかりますか?そして、この機能はどこで十分に文書化されていますか? ご協力いただきありがとうございます!

4

1 に答える 1

0

このセッションを終了すると、スレッドの数は1つ減りますが、メモリはまだそこにあります。新しい接続を生成すると、これらのメモリは再利用されているようです。だから私はそれがLinuxカーネルの振る舞いであるべきだと思います。

これはカーネルとは何の関係もありません。

GLIBCはスタックをmmapスレッド化し、そのようなスタックのキャッシュを持っています。コードはここにあります。

于 2013-02-04T06:56:24.777 に答える