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
56
HDDへのアクセス速度は位置によって変わる!??
以下動画のテキストです。
https://youtu.be/iJHcw91MZbY
Satoru Takeuchi
PRO
March 16, 2024
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
270
俺とキャンプ2
sat
PRO
1
99
俺とキャンプ3
sat
PRO
0
84
データ冗長化のしくみRAID 基礎概念とRAID1編
sat
PRO
2
32
RAIDの実現方法
sat
PRO
2
69
Linux環境のCPU上で10ミリ秒間に起こること
sat
PRO
3
110
ボリュームマネージャLVM
sat
PRO
2
91
Best Practices of Production-Grade Rook/Ceph Cluster
sat
PRO
1
2k
OSSへの貢献をはじめたきっかけ、貢献で得たもの、やりたい人へのアドバイス(改)
sat
PRO
4
120
Other Decks in Technology
See All in Technology
開発生産性大幅アップ!Postman VS Code拡張機能
nagix
3
620
Tellus の衛星データを見てみよう #mf_fukuoka
kongmingstrap
0
260
Cloud Service Mesh に触れ合う
phaya72
1
150
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
15
35k
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
710
.NET Profiler in 2024.
kkamegawa
2
880
生成AIの変革の時代に、直近1年で直面した課題とその解決策
ktc_wada
0
510
Microsoft Intune 勉強会 第 2 回目
tamaiyutaro
2
370
JAWS-UG Bedrock Claude Night
yamahiro
3
690
【NW X Security JAWS#3】L3-4:AWS環境のIPv6移行に向けて知っておきたいこと
shotashiratori
1
600
「スニダン」開発組織の構造に込めた意図 ~組織作りはパッションや政治ではない!~
rinchsan
4
610
競技としてのKaggle、役に立つKaggle
yu4u
6
2.3k
Featured
See All Featured
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
The Invisible Side of Design
smashingmag
294
49k
In The Pink: A Labor of Love
frogandcode
138
21k
[RailsConf 2023] Rails as a piece of cake
palkan
27
4k
It's Worth the Effort
3n
180
27k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Building Your Own Lightsaber
phodgson
100
5.7k
Become a Pro
speakerdeck
PRO
12
4.6k
Visualization
eitanlees
137
14k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
21
1.4k
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
244
12k
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の特性 ◦ プラッタの外周ほどセクタ数が多い ◦
オフセットが小さいデータほど、プラッタの外周にあるセクタに配置される ◦ プラッタをある角度だけ回転させると、外周にあるデータほど高速にアクセスできる ◦ オフセットが小さいところのデータほど高速にアクセスできる