Web開発者のための大規模サービス技術入門の読書メモです。
大規模データの難しさ
第一のポイント「メモリ内で計算できない」という点
メモリはディスクの10^5 ~ 10^6以上高速
hdparm 転送速度の差が分かる
ボトルネック見極め作業の基本的な流れ
- ロードアベレージを見る
- CPU、I/Oのいずれかがボトルネックかを探る
ロードアベレージを見る
システム全体の負荷状況を示す指標
CPU、I/Oのいずれかがボトルネックかを探る
sar, vmstat で時間経過とともにCPU使用率やI/O待ち率の推移が確認できる
大規模環境では、I/O負荷を抱えるサーバはそもそも分散させるのが難しい上に、ディスクI/Oが多発するとサーバが簡単に遅くなってしまうという本質的な問題がある
大規模データを扱うために
- いかにしてメモリで済ませるか
- データ量の増加に強いアルゴリズム、データ構造
- データ圧縮、情報検索技術
参考
- [Web開発者のための大規模サービス技術入門]