246 deview 2013 신기빈
DESCRIPTION
TRANSCRIPT
SSD 제대로 알고 쓰자
신기빈 차장 / 성능엔지니어링lab NAVER Labs
CONTENTS 1. 왜 SSD인가?����������� ������������������
2. Cache Workload����������� ������������������
3. SSD 특성 분석����������� ������������������
4. Squall에 적용 결과
5. 결론
1. 왜 SSD인가?
1. 왜 SSD인가?
개인용 SSD 가격 변화
1. 왜 SSD인가?
SSHD : Solid State Hybrid Drive
1. 왜 SSD인가?
Hybrid Cache
2. Cache Workload
2. Cache Workload
Video 서비스에서 Arcus로 가는 3일치 요청 내용을 분석
2. Cache Workload
Cache 특성
2. Cache Workload
Cache 특성 : Zipf-like Distribution
전체 Access 횟수 N
순위
번째 많이 요청된 항목의 요청수
(Key 갯수)
2. Cache Workload
Cache 특성 : CDF
80th : 6.31% 90th : 25.1%
90th : 0.14% 95th : 0.9%
측정값
2. Cache Workload
결론 전체를 Memory에 Cache하지 않아도 대부분은 Memory에서 Hit될 것이고 일부만 SSD를 access하게 될 것이다.
2. Cache Workload
QoS ( Quality of Service )
요청의 90%는 2ms내에 응답이 가지만
9%는 100ms가 걸리고 1%는 수초가 걸린다면?
Retry? 장애감지?
3. SSD 특성 분석
3. SSD 특성 분석
Controller
NAND Chip
DRAM
3. SSD 특성 분석
NAND Chip
Capacitor
3. SSD 특성 분석
http://www.computer.org/csdl/trans/tc/2011/01/ttc2011010080-abs.html
3. SSD 특성 분석
DRAM Cache
Mapping Table
Controller
FLASH
READ 1,2,3,4
변환 7,1,4,9
3. SSD 특성 분석
DRAM Cache
Mapping Table
Controller
FLASH
Write 1,2,3,4
변환
5,6,7,8 (log struct)
Cache
기록
3. SSD 특성 분석
사용중인 Page
지울 Page
빈 Page
Garbage Collection
3. SSD 특성 분석
일반적인 소비자에게 공개되는 SSD의 metric들
Seq. Read MB/s
Seq. Write MB/s
Rand. Read IOPS
Rand. Write IOPS
A 540 520 109K 90K B 500 400 60K 11K C 540 460 100K 86K D 550 520 50K 80K E 550 530 100K 95K
3. SSD 특성 분석
Benchmark Site?
4K Q64 Random Read, tom’s HARDWARE
3. SSD 특성 분석
SSD사용을 위한 Tip
1. AHCI 켜기
2. TRIM(discard) 켜기
3. 휴지통 사용안하기
4. 조각 모음 사용안하기
5. Windows Search 사용안하기
6. noatime 옵션 주기
7. noop scheduler 사용.
3. SSD 특성 분석
SSD Benchmark Tool
3. SSD 특성 분석
Mapping Size
A제품. 5.2 Random Write IOPS
ncq
late
ncy
(us)
3. SSD 특성 분석
Mapping Size
9. Alignment에 따른 성능 변화
A 제품
3. SSD 특성 분석
Mapping Size
LBA Phy. Addr.
0 ~ 7 356
8 ~ 15 723
16 ~ 23 13
24 ~ 31 517
1 LBA = 1 sector = 512byte
LBA [12 ~ 19] (4KB) Write 하면? 1. Read LBA 8 ~ 15 2. Write LBA [8 ~ 11][12 ~ 15] 3. Read LBA 16 ~ 23 4. Write LBA [16 ~ 19][20 ~ 23]
LBA [12 ~ 15] (2KB) Write 하면? 1. Read LBA 8 ~ 15 2. Write LBA [8 ~ 11][12 ~ 15]
3. SSD 특성 분석
Mapping Size : 결론
IO는 Mapping Size단위의 배수로 할 것.
Align을 맞출 것
3. SSD 특성 분석
Mapping Size : 확인해 봐야할 것
SSD의 Mapping Size Disk Partition 시작위치 File System Block Size
3. SSD 특성 분석
Over Provisioning
A제품. (250GB) 10.1 Avg. Latency
Written GB(*10)
Avg.
Lat
ency
(us)
3. SSD 특성 분석
Over Provisioning
B제품. (480GB) 10.1 Avg. Latency
Written GB(*10)
Avg.
Lat
ency
(us)
3. SSD 특성 분석
Over Provisioning
0
2
4
6
8
10
12
14
16
100% 90% 80%
Max
Avg
. Lat
ency
(ms)
Disk Usage
SSD_A
SSD_B
SSD_C
Write Perf. SSD_A SSD_B SSD_C Seq. 520MB/s 400MB/s 460 MB/s
Rand. 90K IOPS 11K IOPS 86K IOPS 4K Rand. NCQ=32
333 MB/s 85.3K IOPS
263 MB/s 67.3K IOPS
321 MB/s 82.2K IOPS
3. SSD 특성 분석
Over Provisioning
A 제품 B 제품
3. SSD 특성 분석
Over Provisioning
D제품. (250GB) 10.1 Avg. Latency
Written GB(*10)
Avg.
Lat
ency
(us)
3. SSD 특성 분석
Endurance
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
80% 90% 100%
Writ
ten
GB
Logical
A제품
D제품
x 1.6 x 1.9 x 1.7
x 3.2
x 4.9
x 16.6
3. SSD 특성 분석
Hybrid Cache에서 원하는 제품
1. Write보다 Read 성능이 뛰어날 것
2. 평균 Latency가 조금 높더라도 99.99th Latency가 낮을 것.
3. GC로 인한 성능 저하가 적을 것.
3. SSD 특성 분석
5.888
0.611
85.3K
3.506
0.607
67.3K
2.126
0.616
82.2K
7:3 Mix Read Only Rand. Read IOPS
SSD_A SSD_B SSD_C
Rand. Read 99.99th Latency (ms)
4. Squall에 적용 결과
4. Squall에 적용 결과
응답 속도 (us)
빈도
Avg. Latency HDD : 5.01 ms SSD_B : 0.546 ms
4. Squall에 적용 결과
응답 속도 (us)
누적확률
0.515 0.546
0 0
0.2
0.4
0.6
0.8
1
DRAM SSD_B HDD
Res
p. T
ime
( ms
)
Avg.
4. Squall에 적용 결과
x 1.06
0.515 0.546 0
1.703
8.981
0 0
1
2
3
4
5
6
7
8
9
10
DRAM SSD_B HDD
Res
p. T
ime
( ms
)
Avg. 99.99th
4. Squall에 적용 결과
x 5.27
0.515 0.546
5.006
1.703
8.981
1492
0
5
10
15
20
25
30
DRAM SSD_B HDD
Res
p. T
ime
( ms
)
Avg. 99.99th
4. Squall에 적용 결과
x 9.7
x 867
1.953 0.546 1.965
21.32
8.981
787.6
0
5
10
15
20
25
30
35
40
45
50
SSD_A SSD_B SSD_B
Res
p. T
ime
( ms
)
Avg. 99.99th
4. Squall에 적용 결과
SSD_A SSD_B SSD_C Rand. Read 109 / 91 K 60 / 90 K 100 / 91 K Rand. Write 90 / 85 K 11 / 67 K 86 / 82 K
4. Squall에 적용 결과
Latency ( ms )
Host 4K Block Read Latency
SSD_A SSD_B SSD_C median 0.977 0.157 0.700
99th 5.2 3.47 3.4 99.99th 9.3 8.14 259
4. Squall에 적용 결과
결론 잘 선택된 제품의 경우 DRAM을 이용한 것 보다 평균 속도는 비슷하지만 만개중에 한개는 정도는 6배정도, 10만개중에 한개는 7배정도 느리다. 용량은 수십 ~ 수백배 늘릴수 있다.
5. 결론
5. 결론
1. 겉으로 표기된 성능을 믿지 말자.
2. 벤치마크 결과도 성능의 일부만을 보여줄 뿐이다.
3. 서버용으로 사용한다면 GC가 일어날 때 성능이 중요하다.
5. 결론
중요한 성능 지표. Max Read/Write Bandwidth 4K Rand. Read/Write IOPS
5. 결론
중요한 성능 지표. Max Read/Write Bandwidth 4K Rand. Read/Write IOPS Mapping Size GC가 일어날때 IO 성능 ( IOPS, Latency, Bandwidth ) Mixed Pattern의 IO 성능 자신의 Workload를 정확하게 아는 것.
Q&A
THANK YOU
Data Sheet 1 : Squall 응답 시간 및 처리량
DRAM HDD SSD_B Avg. 0.515 ms 5.006 ms 0.546 ms
Median 0.488 ms 0.237 ms 0.387 ms 99th 1.128 ms 148.6 ms 3.351 ms
99.9th 1.424 ms 778.6 ms 5.196 ms 99.99th 1.703 ms 1492 ms 8.981 ms
99.999th 2.104 ms 2199 ms 13.22 ms Max 204.2 ms 3063 ms 204.9 ms 처리량 84K rps 13K rps 68K rps
Data Sheet 1 : Squall 응답 시간 및 처리량
SSD_A SSD_B SSD_C Random Read 109 / 91 K 60 / 90 K 100 / 91 K Random Write 90 / 85 K 11 / 67 K 86 / 82 K
Avg. 1.953 ms 0.547 ms 1.965 ms Median 1.530 ms 0.387 ms 0.753 ms
99th 8.402 ms 3.351 ms 7.037 ms 99.9th 12.56 ms 5.196 ms 281.8 ms
99.99th 21.32 ms 8.981 ms 787.6 ms 99.999th 28.05 ms 13.22 ms 1317 ms
Max 203.5 ms 204.9 ms 1677 ms 처리량 22K rps 68K rps 26K rps