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