-
-
Save mdkn/536ffb3f594bcfb51e397bddf04f17bf to your computer and use it in GitHub Desktop.
『サーバ/インフラを支える技術』メモ
-
負荷・負荷分散
-
OS
- ディスクI/Oの分散と軽減
- キャッシュ
- ディスクI/Oの分散と軽減
-
ボトルネック
-
Web+DB
-
推測するな、計測せよ
-
統計上方
- top
- スナップショット
- top
-
負荷とは何か?
-
ボトルネック見極め
- ロードアベレージを見る
- 全体の負荷状況
- CPU,I/Oのいずれがボトルネックかを探る
- LAが高い場合
- CPU
- ディスクやメモリ容量はボトルネックでない
- 理想的
- プログラム暴走
- I/O
- 入出力が多い
- スワップ、ディスクアクセス
- スワップが発生する場合メモリ割り当てが少ない
- ロードアベレージを見る
-
2種類の負荷
- CPU 負荷
- 計算
- CPU バウンド
- I/O 負荷
- 検索
- I/O バウンド
- CPU 負荷
-
マルチタスク OS
- ロードアベレージ
- 待ちタスク
- これだけれでCPUかI/Oかは判断できない
- 待ちタスク
- ロードアベレージ
-
さらなる調査
- どの値を見ればOSのボトルネックが判断できるのか。それぞれの値はOSが何を出力した値なのか
- ロードアベレージが表す「待ちタスク」とは、実際に何を待っているタスクのことなのか
- 仮にボトルネックがわかったとして、実際にどのプロセスが負荷の原因になっているのか
-
プロセススケジューラー
- タスクの優先度の決定
-
プロセス
- オブジェクト
- プログラムの命令
- 実行時に必要な情報
- オブジェクト
-
プロセスの状態
- プロセスディスクリプタ(task_stract 構造体の state メンバ)
- CPU が割り当てられるのを待っている状態
- ディスクの入出力が完了するのを待っている状態
- プロセスディスクリプタ(task_stract 構造体の state メンバ)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment