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
0
540
Linuxのプロセススケジューラの負荷分散処理
以下動画のテキストです
https://youtu.be/xSWgqksHT9w
Satoru Takeuchi
PRO
February 02, 2022
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
書籍執筆での生成AIの活用
sat
PRO
1
190
ChatGPTに従って体調管理2026
sat
PRO
0
150
eBPF
sat
PRO
1
110
waruiBPF
sat
PRO
0
110
eBPFとwaruiBPF
sat
PRO
5
3.6k
Pythonのコードの気になる行でスタックトレースを出す
sat
PRO
1
94
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
200
様々なファイルシステム
sat
PRO
0
340
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
430
Other Decks in Technology
See All in Technology
Proxmoxで作る自宅クラウド入門
koinunopochi
0
180
The Engineer with a Three-Year Cycle
e99h2121
0
160
OCI技術資料 : OS管理ハブ 概要
ocise
2
4.2k
これまでのネットワーク運用を変えるかもしれないアプデをおさらい
hatahata021
4
270
なぜCREを8年間続けているのか / cre-camp-4-2026-01-21
missasan
0
1.2k
ドメイン駆動セキュリティへの道しるべ
pandayumi
0
170
「違う現場で格闘する二人」——社内コミュニティがつないだトヨタ流アジャイルの実践とその先
shinichitakeuchi
0
580
漸進的過負荷の原則
sansantech
PRO
3
330
ファシリテーション勉強中 その場に何が求められるかを考えるようになるまで / 20260123 Naoki Takahashi
shift_evolve
PRO
2
250
SOC2は、取った瞬間よりその後が面白い
3flower
0
170
2026/01/16_実体験から学ぶ 2025年の失敗と対策_Progate Bar
teba_eleven
1
220
Kusakabe_面白いダッシュボードの表現方法
ykka
0
380
Featured
See All Featured
Are puppies a ranking factor?
jonoalderson
1
2.6k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
50
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
Visualization
eitanlees
150
16k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Why Our Code Smells
bkeepers
PRO
340
58k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
120
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Google's AI Overviews - The New Search
badams
0
890
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
116
100k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
140
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