1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【IT基礎】OSのプロセス・スレッド・スレッドプール

1
Posted at

はじめに

あらためて、プロセス・スレッド周りの理解をInstanaのログを読むことで深めていきたいと思います。

1. プロセス・スレッド・スレッドプールの違い

image.png
Copilotが教科書のような画像を作ってくれました!

プロセス

  • 実行中のプログラムの実行単位。
  • プログラムの実行に必要な様々なリソースを共通でもつ。
    • メモリ、ファイルハンドル、CPU時間
  • プロセス間でリソースアクセスするためには、プロセス間の切り替えが必要になるので実行時間がかかる(オーバーヘッドが大きくなる)。

スレッド

  • プロセス内の実行単位。
  • プロセスの中で、複数のスレッドが動く。CPUやメモリという共通リソースを分けながら動く。(レジスタとスタックは独自に管理)。

スレッドプール

  • あらかじめN本のスレッドを生成して、再利用する仕組み。起動コストや、スレッド数の上限を決めて管理できる。

2. Instanaの場合(ログから読み解く)

スレッド

Instana内であるスレッドを見ていきます。
複数のスレッドが同時並行で異なる仕事をしています。

2026-07-01T08:53:24.917GMT-04:00 | INFO | features-3-thread-1             | Installing bundles ...
2026-07-01T08:53:24.935GMT-04:00 | INFO | stana-agent-scheduler-thread-9-3| Installed instana-websphere-liberty-sensor
2026-07-01T08:53:24.941GMT-04:00 | INFO | instana-executor-thread-4-8     | Attaching to JVM with PID 24948
2026-07-01T08:53:26.016GMT-04:00 | INFO | instana-socket-worker-8-1       | commands connection established
2026-07-01T08:53:26.024GMT-04:00 | INFO | instana-socket-worker-8-2       | data connection established

スレッドが担っている役割

スレッド名 役割 種別
features-3-thread-1 OSGiフレームワークのFeature(センサー)インストール処理 インストール
stana-agent-scheduler-thread-9-3 定期スケジューリング(センサー管理タスク) スケジューラ
instana-executor-thread-4-8 JVMへのアタッチ実行(重い処理を非同期で担当) 実行ワーカー
instana-socket-worker-8-1 commandsソケットの通信処理 I/Oワーカー
instana-socket-worker-8-2 dataソケットの通信処理 I/Oワーカー

スレッドプール

2026-07-01T08:53:26.016GMT-04:00 | INFO | instana-socket-worker-8-1       | commands connection established
2026-07-01T08:53:26.024GMT-04:00 | INFO | instana-socket-worker-8-2       | data connection established

ログに instana-socket-worker-**8**-1-8-2 という名前がありますが、この 「8」 はスレッドプールのサイズを示しています。
スレッドプールはあらかじめ決まった数のスレッドを作って待機させておく設計パターンでした。
こちらのログでは -8-1(commandsソケット担当)と -8-2(dataソケット担当)の2本が使われており、残り6本は次のソケット接続要求に備えて待機しています。

instana-socket-worker スレッドプール(最大8本)
├── worker-8-1  ← 使用中(commandsソケット担当)
├── worker-8-2  ← 使用中(dataソケット担当)
├── worker-8-3  ← 待機中
├── worker-8-4  ← 待機中
└── ... 〜8まで待機中

まとめ

プロセス・スレッド・スレッドプールについてInstanaのログから具体的に理解できました。次は、デッドロックなど、障害時によく聞く単語を実機で動かしてみてみたいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?