Intel CPU Meltdown ์ทจ์•ฝ์  ํŒจ์น˜ 2์ฐจ ํ…Œ์ŠคํŠธ์™€ ๋งˆ๋ฌด๋ฆฌ

๋ฐ˜์‘ํ˜•

1์ฐจ ํ…Œ์ŠคํŠธ์— ์ด์–ด์„œ 2์ฐจ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด๋ดค์Šต๋‹ˆ๋‹ค. 2์ฐจ ํ…Œ์ŠคํŠธ๋Š” 1์ฐจ์—์„œ ์ง„ํ–‰ํ–ˆ๋˜ File I/O ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์›น ์„œ๋ฒ„, DBMS, ๊ทธ๋ฆฌ๊ณ  ์ƒ๊ฐ๋ณด๋‹ค ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์˜ค๋””์˜ค ์ธ์ฝ”๋”ฉ๊ณผ ๋น„๋””์˜ค ์ธ์ฝ”๋”ฉ ๋“ฑ์˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.



ํ…Œ์ŠคํŠธ ์ง„ํ–‰ ์‚ฌํ•ญ

- SQLite I/O Test (only HDD)

- FLAC Audio Encoding

- Opus Codec Encoding

- nginx Benchmark

- GCC Compile Test

- File I/O Test


ํ…Œ์ŠคํŠธ๋Š” ์ด 6๊ฐ€์ง€๋กœ ์ง„ํ–‰ํ•˜์˜€์œผ๋ฉฐ ๊ทธ ์ค‘ ๋งˆ์ง€๋ง‰ File system Test๋Š” ์–ด์ œ ์ง„ํ–‰ํ–ˆ๋˜ 4000๋ฒˆ์˜ ํŒŒ์ผ ์ƒ์„ฑ์„ ๋‹ค์‹œ ํ…Œ์ŠคํŠธํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. SQLite์˜ DBMS ํ…Œ์ŠคํŠธ๋Š” ์ €์˜ ๋…ธํŠธ๋ถ ํ™˜๊ฒฝ์ƒ HDD์—์„œ๋งŒ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.



SQLite I/O Test

SQLite๋Š” 2500 ์ค„์˜ INSERT ์ฟผ๋ฆฌ ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ DB๋ฅผ ์ƒ์„ฑํ•œ ๊ฒฐ๊ณผ์ด๋ฉฐ HDD์—์„œ ํ…Œ์ŠคํŠธํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํŒจ์น˜ ํ•˜๊ธฐ ์ „(์ƒ), ํŒจ์น˜ ํ•œ ํ›„(ํ•˜)์˜ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค. ์—ญ์‹œ SATA3๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ์„œ ๊ทธ๋Ÿฐ์ง€, HDD I/O ๋Œ€ํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๋Š” ๊ทธ๋ ‡๊ฒŒ ํฌ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.



FLAC Audio Encoding

FLAC ํŒŒ์ผ ์ธ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.


 

์ธ์ฝ”๋”ฉ ์ž‘์—…์„ ํ•˜๋Š” ๋ฐ ์žˆ์–ด CPU ์ž‘์—…์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด๊ธด ํ•˜์ง€๋งŒ, ์˜ˆ์ƒ ์™ธ๋กœ ํฐ ์„ฑ๋Šฅ ์ €ํ•˜๋Š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค.



Opus Codec Encoding

ํ˜น์‹œ ๋ชจ๋ฅด๋‹ˆ, ๋‹ค๋ฅธ ์ธ์ฝ”๋”ฉ๋„ ํ•œ ๋ฒˆ ํ…Œ์ŠคํŠธ ํ•ด๋ดค์Šต๋‹ˆ๋‹ค.


 

 

๋ญ ๋น„์Šทํ•˜๋„ค์š”. ์ธ์ฝ”๋”ฉ ๊ฐ™์€ ๋ถ€๋ถ„ ๋Œ€ํ•ด์„œ๋Š” ํ™•์‹คํžˆ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.



nginx Webserver Test

์ด๋ฒˆ์—๋Š” ์„œ๋ฒ„์—์„œ ๊ทธ๋‚˜๋งˆ ์กฐ๊ธˆ ๋น„์ค‘์ด ํฐ ์›น ์„œ๋ฒ„๋ฅผ ๋ฒค์น˜๋งˆํ‚น ํ•ด๋ดค์Šต๋‹ˆ๋‹ค.


 

nginx ์›น ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ, ์š”์ฒญ ์ˆ˜์— ๋”ฐ๋ผ ์กฐ๊ธˆ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ์žˆ๊ธด ํ–ˆ๋Š”๋ฐ์š”. ํ•˜์ง€๋งŒ ์—ญ์‹œ ๊ทธ๋ ‡๊ฒŒ ํฐ ์ €ํ•˜ ํญ์€ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค.



GNU C Compiler Test

๊ทธ๋Ÿฌ๋ฉด CPU ์ ์œ ์œจ์„ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ณ , ๋˜ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์–ด๋–จ๊นŒ์š”?


์—ญ์‹œ ์ปดํŒŒ์ผ ์†๋„์—๋„ ์„ฑ๋Šฅ ์ €ํ•˜๋Š” ํ™•์‹คํžˆ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทœ๋ชจ๋Š” Linux Kernel ๊ธ‰ ์ •๋„ ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.



File I/O Test

1์ฐจ ํ…Œ์ŠคํŠธ์— ์ด์–ด์„œ ์ด๋ฒˆ์—๋Š” ์ง€๋‚œ ๋ฒˆ ํ…Œ์ŠคํŠธ๋ณด๋‹ค ๋” ๋งŽ์€ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด๋ดค์Šต๋‹ˆ๋‹ค. 

์ง€๋‚œ๋ฒˆ์—๋Š” 4000๊ฐœ ํŒŒ์ผ์— ์„œ๋ธŒ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ 32๊ฐœ๋ฅผ ์ฃผ๊ณ , ๊ฐ 4๋ฐ”์ดํŠธ ์”ฉ ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” 100๊ฐœ์˜ ์„œ๋ธŒ ๋””๋ ‰ํ„ฐ๋ฆฌ์— 4๋ฐ”์ดํŠธ ํฌ๊ธฐ์˜ ํŒŒ์ผ์„ 10000๊ฐœ๋ฅผ ์ƒ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.


๋จผ์ € M.2 SSD ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.


M.2 SSD์—์„œ ์–ด๋งˆ์–ด๋งˆํ•œ ์„ฑ๋Šฅ ์ฐจ์ด๊ฐ€ ์žˆ๋„ค์š”. ํŒจ์น˜ ์ „์— ์•ฝ 40์ดˆ ์ •๋„ ๊ฑธ๋ฆฌ๋Š” ํŒŒ์ผ ์ƒ์„ฑ ์ž‘์—…์ด ํŒจ์น˜๋ฅผ ํ•˜๊ณ  ๋‚˜๋‹ˆ ๋ฌด๋ ค 1๋ถ„ 20์ดˆ๊ฐ€ ์†Œ์š”๋˜๋Š”๊ตฐ์š”.



๋ฐ˜๋ฉด์— SATA3๋ฅผ ์‚ฌ์šฉํ•œ HDD์—์„œ๋Š” ๊ฑฐ์˜ ์ €ํ•˜๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. SQLite ๋ฒค์น˜๋งˆํ‚น ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ž‘ ๊ฑฐ์˜ ๋น„์Šทํ•œ ๋ณ€ํ™”์˜€๋‹ค๊ณ  ๋ณด์…”๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค.




ํ…Œ์ŠคํŠธ ๊ฒฐ๋ก ...

์ด๋ฒˆ Meltdown ํŒจ์น˜์— ๋Œ€ํ•œ 30% ์„ฑ๋Šฅ ์ €ํ•˜๋Š” ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์™ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. CPU์˜ ์ „์ฒด ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„ ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ ์ปค๋„ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ๊ณ ์ณ์ง„ ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์ธ ์ด์œ ์™€ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‚ด๋ฆฐ ์ €์˜ ์ƒ๊ฐ์€ ์ด๋ ‡์Šต๋‹ˆ๋‹ค.


System Call ํ•จ์ˆ˜๋ฅผ ๋ฒˆ๋ณตํ•˜์—ฌ ์‚ฌ์šฉํ•  ๋•Œ ์„ฑ๋Šฅ์ด ๊ฐˆ์ˆ˜๋ก ๋” ์ €ํ•˜๊ฐ€ ์‹ฌํ•จ


๊ทธ ๊ทผ๊ฑฐ๋กœ File ์ž…์ถœ๋ ฅ์—์„œ๋Š” fsync ์‹œ์Šคํ…œ ํ•จ์ˆ˜๋ฅผ ์ž์ฃผ ํ˜ธ์ถœํ•จ์œผ๋กœ์จ ์‹ค์ œ 2~3๋ฐฐ ์ •๋„ ๊ฐ€๊นŒ์ด ์„ฑ๋Šฅ ์ €ํ•˜ ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚ฌ์œผ๋ฉฐ syscall ํ•จ์ˆ˜๋ฅผ 1์–ต ๋ฒˆ ๋ถˆ๋ €์„ ๋•Œ๋„ 4๋ฐฐ๋‚˜ ๋˜๋Š” ์„ฑ๋Šฅ ์ €ํ•˜ ํ˜„์ƒ์ด ๋ณด์˜€๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๋˜ํ•œ ์ด ํ˜„์ƒ์€ SATA3๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•˜๋“œ์›จ์–ด๊ฐ€ ์•„๋‹Œ M.2, NVMe ๊ณ„์—ด์˜ PCI ํ•˜๋“œ์›จ์–ด ๊ณ„์—ด์—์„œ ์ฃผ๋กœ ๊ทธ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๊ต‰์žฅํžˆ ์‹ฌํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๊ณ , CPU ์„ธ๋Œ€์— ๋”ฐ๋ฅธ ์„ฑ๋Šฅ ์ €ํ•˜ ํญ์€ ์•„๋ฌด๋ž˜๋„ Skylake ์•„ํ‚คํ…์ฒ˜ ์ดํ•˜์—์„œ ์ข€ ๋” ๋ฒˆ๋“ฏํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค.


ํ•˜์ง€๋งŒ ํ˜„์žฌ ์ŠคํŽ™ํƒ€์˜ ์ทจ์•ฝ์ ์ด ๊ณต๊ฐœ๋˜์—ˆ๊ณ , ์ „ ํฌ์ŠคํŠธ์—์„œ ๋ดค๋“ฏ์ด ์ด๋ฏธ ๋ฉ”๋ชจ๋ฆฌ ํ•ดํ‚นํ•œ ์˜์ƒ์ด ์˜ฌ๋ผ์™”์œผ๋‹ˆ, ํŒจ์น˜๋Š” ๋‹น์—ฐํžˆ ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์†Œ์ค‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์†์‹ค๋‹นํ•˜๋‹ˆ, ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ์ด์Šˆ๋ฅผ ๊ฐ์•ˆํ•ด์•ผ๊ฒ ์ฃ . ์•„๋งˆ๋„ ์ด๊ฒƒ์€ ์‹œ์Šคํ…œ ์—”์ง€๋‹ˆ์–ด๋‚˜ ์„œ๋ฒ„ ๊ด€๋ฆฌ์ž ์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ๊ฐœ์ธ ์žฌ๋Ÿ‰์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.



๋งˆ์น˜๋ฉฐ....

์—ฌ๊ธฐ๊นŒ์ง€ Intel CPU ์„ฑ๋Šฅ ์ €ํ•˜์— ๋Œ€ํ•œ ์ด์Šˆ์— ๋Œ€ํ•ด ํฌ์ŠคํŒ… ํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ๋ฐ, Linux kernel 4.15-rc6 ๋ฒ„์ „๊ณผ Phoronix-test-suite๋ฅผ ์‚ฌ์šฉํ•˜์˜€์œผ๋ฉฐ System call ์†Œ์Šค ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ๋Š” ๋ ˆ๋”ง์—์„œ ํ…Œ์ŠคํŠธํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ธ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ˜น์‹œ ํ˜„์žฌ ์šด์šฉ ์ค‘์ธ ์„œ๋ฒ„๋‚˜ ์‹œ์Šคํ…œ์— ํ…Œ์ŠคํŠธํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.


ํ˜„์žฌ Windows 10 RS3 ๋ฒ„์ „๊ณผ Mac OS X 10.13.2 ๋ฒ„์ „์—์„œ๋Š” ์ด๋ฏธ ์ด ์ทจ์•ฝ์ ์ด ํŒจ์น˜๋˜์—ˆ๋‹ค ํ•ฉ๋‹ˆ๋‹ค. Linux ๋˜ํ•œ ์ปค๋„์€ ์˜ฌ๋ผ์™€ ์žˆ์ง€๋งŒ ๊ฐ ๋ฐฐํฌํŒ์— ๋Œ€ํ•ด์„œ๋Š” ์•„์ง ํŒจ์น˜๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•˜์„ ๊ฒƒ์ด๊ณ , ํด๋ผ์šฐ๋“œ ์—…์ฒด(AWS, GCP, Azure ๋“ฑ)์—์„œ๋„ ๊ฐ ํŒจ์น˜ ๋‚ ์งœ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์„ ๊ฒƒ์ด๋‹ˆ, ํŒจ์น˜์— ๋Œ€ํ•œ ์ƒ์„ธ ์‚ฌํ•ญ์€ ํ•ด๋‹น ํด๋ผ์šฐ๋“œ ํ™ˆํŽ˜์ด์ง€์—์„œ ํ™•์ธํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.


์ด์ƒ์œผ๋กœ Intel CPU ์„ฑ๋Šฅ ์ €ํ•˜์— ๋Œ€ํ•œ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…์„ ๋ชจ๋‘ ๋งˆ์น˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
TAGS.

Tistory Comments