Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Linuxのプロセススケジューラの負荷分散処理
Search
Satoru Takeuchi
PRO
February 02, 2022
Technology
590
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Linuxのプロセススケジューラの負荷分散処理
以下動画のテキストです
https://youtu.be/xSWgqksHT9w
Satoru Takeuchi
PRO
February 02, 2022
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
Rook: Intro and Deep Dive with Ceph
sat
PRO
1
21
Machine Check Exception
sat
PRO
2
46
バイナリダンプの模様を読む
sat
PRO
0
69
cpコマンドはディスク上でデータを コピーしないことがある
sat
PRO
3
55
114-ファイルのshallow_copy.pdf
sat
PRO
2
39
113-Btrfsのスナップショット.pdf
sat
PRO
0
22
システム強制終了時にファイルシステムの整合性を保つ~ コピーオンライト編 ~
sat
PRO
0
61
システム強制終了時に ファイルシステムの整合性を保つ ~ ジャーナリング編 ~
sat
PRO
2
65
ファイルシステムの整合性を回復するfsck
sat
PRO
1
67
Other Decks in Technology
See All in Technology
「休む」重要さ
smt7174
7
1.8k
BigQuery を検索ソースとした AI Agent の作り方って 〇〇 通りあんねん
satohjohn
0
140
MCPをつなげて作る組織横断のAIエージェント基盤
tsubakimoto_s
0
410
論語・武士道・産業革命から見る かわるもの、かわらないもの
ichimichi
8
1.8k
信頼できるテスティングAIをどう育てるか?
odan611
0
170
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
580
StepFunctionsとGraphRAGを活用した暗黙知活用のためのRAG基盤
yakumo
0
190
セキュリティ研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
31
26k
AI工学特論: MLOps・継続的評価
asei
11
3k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
システム監視入門
grimoh
5
760
人手不足への挑戦:車両保全を支えるIoTとクラウド内製化の道【SORACOM Discovery 2026】
soracom
PRO
0
160
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
460
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
430
Tell your own story through comics
letsgokoyo
1
1k
Agile that works and the tools we love
rasmusluckow
331
22k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
430
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
RailsConf 2023
tenderlove
30
1.5k
Into the Great Unknown - MozCon
thekraken
41
2.6k
Transcript
Linuxのプロセススケジューラの 負荷分散処理 Feb. 2nd, 2022 Satoru Takeuchi <
[email protected]
> Twitter: @satoru_takeuchi
1
CPU上タスクのスケジューリング • 実行可能タスク(プロセスorスレッド)をランキューにつなぐ • ランキュー内のタスクを順番に実行 2 CPU t0 t1 T0,
t1, t0, t1…と順番に実行
複数LCPU(*1)の場合 • ランキューはLCPUごとにある 3 LCPU0 LCPU1 t0 t1 ランキュー長=2 ランキュー長=2
t2 t3 *) LinuxがCPUと認識するもの CPU、コア、ハードウェアスレッドなど
マルチスレッドのCPU • IntelのNetBurstアーキテクチャ(2000年~)の石など • 例: 1物理CPU, 2スレッド => 2LCPU 4
物理CPU スレッド LCPU0 スレッド LCPU1
マルチコアのCPU • IntelのCoreマイクロアーキテクチャ(2006年~)の石など • 例: 1物理CPU, 2コア => 2LCPU 5
コア LCPU1 物理CPU コア LCPU0
マルチプロセッサ • 2物理CPU, 1コア、1スレッド => 2LCPU 6 LCPU0 物理CPU LCPU1
物理CPU
複数ランキューの課題 • ランキュー長が偏ることがある 7 LCPU0 LCPU1 ランキュー長=4 死にそう ランキュー長=0 ヒマだが?
負荷分散処理 • ランキュー長をだいたい同じにする 8 LCPU0 LCPU1 ランキュー長=2 ランキュー長=2 移動 ありがとう
しょうがねえなあ
負荷分散処理の課題 • マルチコア&マルチスレッドの場合どうなる? • 例: 1物理CPU, 2コア, 2スレッド => 4LCPU
1. Intelの石だとNehalemマイクロアーキテクチャ (2008年~)の石などが該当 • 2プロセスあった場合… 1. 〇: LCPU0とLCPU2に配置 2. ×: LCPU0とLCPU1に配置 ▪ 1つのコアが遊んでいる 9 コア 物理CPU コア スレッド LCPU0 スレッド LCPU1 スレッド LCPU2 スレッド LCPU3
階層を考慮した負荷分散処理 • ハードウェア構成を考慮して複数段階に分けて負荷分散する • 例: 1物理CPU, 2コア, 2スレッド => 4LCPU
• 負荷分散 ◦ コア間 ◦ コア内のスレッド間 • 2プロセスの場合、2つのコアにまたがる 10 コア 物理CPU コア スレッド LCPU0 スレッド LCPU1 スレッド LCPU2 スレッド LCPU3
• AMDのZenアーキテクチャのCPU • 「CCX」というL3キャッシュを共有するコアをまとめた部品がある • 例) Ryzen 1800X: 1物理CPU, 2CCX(*1),
4コア, 2スレッド => 16LCPU • 負荷分散 1. CCX間 2. CCX内コア間 3. コア内スレッド間 CCX もうちょっと複雑なCPU 11 CCX コア スレッド スレッド CCX コア コア コア 物理CPU
階層構造の確認方法 • /proc/schedstatに書いている • Ryzen1800Xの場合 12 # cat /proc/schedstat …
Cpu0 ... domain0 0003 ... domain1 00ff ... domain2 ffff ... ... cpu2 ... domain0 000c ... domain1 00ff ... domain2 ffff … … # コア内スレッド間のバランス CCX内コア間のバランス 物理CPU内CCX間のバランス
おまけ: スーパー複雑なCPU • Zenアーキテクチャのサーバ用CPU、AMD EPYC7601 • 「ダイ」というCCXを複数搭載した部品がある • 最大構成 1.
2物理CPU, 4ダイ, 2CCX, 4コア, 2スレッド => 128LCPU • 負荷分散 1. CPU間のバランス 2. CPU内ダイ間 3. ダイ内CCX間 4. CCX内コア間 5. コア内スレッド間 13 物理CPU 物理CPU ダイ ダイ ダイ ダイ CCX CCX コア コア コア コア スレッド スレッド
まとめ • スケジューラの進化は石の進化に伴う 1. 負荷分散処理の誕生 2. 多段構造の負荷分散処理の誕生 3. 階層構造の細分化 •
Zenアーキテクチャややこしい • 新しい世代の石はもうちょっと扱いやすいらしいがよく知らない 14