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
HDDへのアクセス速度は位置によって変わる!??
Search
Satoru Takeuchi
PRO
March 16, 2024
Technology
4
210
HDDへのアクセス速度は位置によって変わる!??
以下動画のテキストです。
https://youtu.be/iJHcw91MZbY
Satoru Takeuchi
PRO
March 16, 2024
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
110
様々なファイルシステム
sat
PRO
0
290
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
370
ソースを読むプロセスの例
sat
PRO
22
17k
メモリマップトファイル
sat
PRO
1
140
「Linux」という言葉が指すもの
sat
PRO
4
230
APIとABIの違い
sat
PRO
5
230
ファイルシステムへのアクセス方法
sat
PRO
0
88
ファイルシステム
sat
PRO
1
81
Other Decks in Technology
See All in Technology
Pythonで構築する全国市町村ナレッジグラフ: GraphRAGを用いた意味的地域検索への応用
negi111111
7
2.4k
最近読んで良かった本 / Yokohama North Meetup #10
mktakuya
0
1.2k
窓口業務を生成AIにおまかせ!Bedrock Agent Coreで実現する自治体AIエージェント!
rayofhopejp
0
230
激動の2025年、Modern Data Stackの最新技術動向
sagara
0
1k
Snowflakeとdbtで加速する 「TVCMデータで価値を生む組織」への進化論 / Evolving TVCM Data Value in TELECY with Snowflake and dbt
carta_engineering
1
180
触れるけど壊れないWordPressの作り方
masakawai
0
690
今日から使える AWS Step Functions 小技集 / AWS Step Functions Tips
kinunori
4
420
設計は最強のプロンプト - AI時代に武器にすべきスキルとは?-
kenichirokimura
1
220
Kotlinで型安全にバイテンポラルデータを扱いたい! ReladomoラッパーをAIと実装してみた話
itohiro73
3
290
Master Dataグループ紹介資料
sansan33
PRO
1
3.8k
The Twin Mandate of Observability
charity
1
630
ソフトウェア品質を支える テストとレビュー再考 / 吉澤 智美さん
findy_eventslides
1
690
Featured
See All Featured
Bash Introduction
62gerente
615
210k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
A Tale of Four Properties
chriscoyier
161
23k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
The Cult of Friendly URLs
andyhume
79
6.7k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
2.9k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
960
Automating Front-end Workflow
addyosmani
1371
200k
A designer walks into a library…
pauljervisheath
209
24k
Transcript
HDDへのアクセス速度は 位置によって変わる!?? Mar. 16th, 2024 Satoru Takeuchi X: satoru_takeuchi
はなすこと • HDDへのアクセス速度がアクセスする位置によって変わることを説明 ◦ 実験 ◦ なんでそうなるか
いきなり実験! • HDDのシーケンシャル読み出し性能を測る ◦ HDDの先頭から1MiBづつ、合計128MiBのデータを読んだときのスループットを測定 ◦ 誤差を減らすために 10回測定して平均をとる • 📝
参考: データ採取に使ったコード $ cat perf.sh #!/bin/bash SUM=0 for ((i=0;i<10;i++)) ; do VAL=$(sudo dd if=/dev/sda of=/dev/null bs=1M count=128 iflag=direct 2>&1 | \ sed -nE -e 's/.*, ([0-9.]+) MB\/s$/\1/p') SUM=$((SUM+VAL)) done python3 -c "print($SUM / 10)"
いきなり実験! • HDDのシーケンシャル読み出し性能を測る ◦ HDDの先頭から1MiBづつ、合計128MiBのデータを読んだときのスループットを測定 ◦ 誤差を減らすために 10回測定して平均をとる • 📝
参考: データ採取に使ったコード $ cat perf.sh #!/bin/bash SUM=0 for ((i=0;i<10;i++)) ; do VAL=$(sudo dd if=/dev/sda of=/dev/null bs=1M count=128 iflag=direct 2>&1 | \ sed -nE -e 's/.*, ([0-9.]+) MB\/s$/\1/p') SUM=$((SUM+VAL)) done python3 -c "print($SUM / 10)" $ ./perf.sh 132.5
読み出す領域をディスクの末尾あたりにすると… • ディスク先頭から2.5TiB時点(ディスクサイズは約2.7TiB)から読み出す $ cat perf.sh #!/bin/bash SUM=0 for ((i=0;i<10;i++))
; do VAL=$(sudo dd if=/dev/sda of=/dev/null bs=1M count=128 \ iflag=direct,skip_bytes skip=2560G 2>&1 | \ sed -nE -e 's/.*, ([0-9.]+) MB\/s$/\1/p') SUM=$((SUM+VAL)) done python3 -c "print($SUM / 10)"
読み出す領域をディスクの末尾あたりにすると… • ディスク先頭から2.5TiB時点(ディスクサイズは約2.7TiB)から読み出す $ cat perf.sh #!/bin/bash SUM=0 for ((i=0;i<10;i++))
; do VAL=$(sudo dd if=/dev/sda of=/dev/null bs=1M count=128 \ iflag=direct,skip_bytes skip=2560G 2>&1 | \ sed -nE -e 's/.*, ([0-9.]+) MB\/s$/\1/p') SUM=$((SUM+VAL)) done python3 -c "print($SUM / 10)" $ ./perf.sh 113.9 14%性能劣化! 理由はHDDの性質
データはプラッタという円盤に保存される • 外側ほどセクタ(データを入れる部分)がたくさんある • ブロックデバイスのデータはオフセットが小さいほど外周に配置される セクタ
データの読み書きはスイングアームについたヘッドで 回転 回転 移動 アクセス スイングアーム ヘッド
ある量(角度)回転したとすると… • アクセスできるセクタ量はディスクの外側のほうが多い 回転 回転 90度回転すると外側は 5つ まんなかは4つ 内側は2つ
つまりどういうことかというと… • ディスクの外側のほうがアクセスできるセクタ数が多い • ディスクの外側にあるオフセットの小さいデータには高速にアクセス可能 回転 回転 90度回転すると外側は 5つ まんなかは4つ
内側は2つ
参考: いろいろなオフセットで同じことをしたグラフ
まとめ • HDDへのアクセス速度はアクセスする位置によって変わる • HDDに対応するブロックデバイスのオフセットが小さいほど高速にアクセス可能 • 理由はHDDの特性 ◦ プラッタの外周ほどセクタ数が多い ◦
オフセットが小さいデータほど、プラッタの外周にあるセクタに配置される ◦ プラッタをある角度だけ回転させると、外周にあるデータほど高速にアクセスできる ◦ オフセットが小さいところのデータほど高速にアクセスできる