![](https://habrastorage.org/webt/yi/wz/t0/yiwzt0gul_tovyeyjhobag6m0zw.png)
è¿å¹Žã®ã¹ãã¬ãŒãžããã€ã¹ã®åéã§ã¯ã倧ããªå€åããããŸããæ°ããæè¡ãå°å ¥ããããã£ã¹ã¯ãã©ã€ãã®ããªã¥ãŒã ãšé床ãæé·ããŠããŸãã ãã®å Žåã次ã®ç¶æ³ãçºçããŸãããã®ç¶æ³ã§ã¯ãããã«ããã¯ã¯ããã€ã¹ã§ã¯ãªããœãããŠã§ã¢ã«ãããŸãã ãã£ã¹ã¯ãµãã·ã¹ãã ãæäœããããã®Linuxã«ãŒãã«ã¡ã«ããºã ã¯ãæ°ããé«éãããã¯ããã€ã¹ã«ã¯ãŸã£ããé©ããŠããŸããã
Linuxã«ãŒãã«ã®æè¿ã®ããŒãžã§ã³ã§ã¯ããã®åé¡ã解決ããããã«å€ãã®äœæ¥ãè¡ãããŠããŸãã ããŒãžã§ã³4.12ã®ãªãªãŒã¹ã§ã¯ããŠãŒã¶ãŒã¯ãããã¯ããã€ã¹çšã«ããã€ãã®æ°ããã¹ã±ãžã¥ãŒã©ãŒã䜿çšããæ©äŒããããŸãã ãããã®ã¹ã±ãžã¥ãŒã©ã¯ããªã¯ãšã¹ããéä¿¡ããæ°ããæ¹æ³- ãã«ããã¥ãŒãããã¯å±€ ïŒblk- mqïŒã«åºã¥ããŠããŸãã
ãã®èšäºã§ã¯ãæ°ããã¹ã±ãžã¥ãŒã©ãŒã®æ©èœãšããã£ã¹ã¯ãµãã·ã¹ãã ã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ã®è©³çŽ°ã調ã¹ãããšæããŸãã
ãã®èšäºã¯ãè² è·ã®é«ãã·ã¹ãã ã®ãã¹ããå®è£ ãããã³ç®¡çã«é¢ãããã¹ãŠã®äººã«ãšã£ãŠèå³æ·±ããã®ã«ãªããŸãã åŸæ¥ã®ã¹ã±ãžã¥ãŒã©ãšæ°ããã¹ã±ãžã¥ãŒã©ã«ã€ããŠè©±ããåæãã¹ãã®çµæãåæããè² è·ã®ãã¹ããšã¹ã±ãžã¥ãŒã©ã®éžæã«é¢ããçµè«ãå°ããŸãã çè«ããå§ããŸãããã
çè«ã®ããã
åŸæ¥ãLinuxã®ãããã¯ããã€ã¹ãã©ã€ããŒãæäœãããµãã·ã¹ãã ã¯ããã©ã€ããŒã«èŠæ±ãéä¿¡ããããã®2ã€ã®ãªãã·ã§ã³ãæäŸããŸããã1ã€ã¯ãã¥ãŒããããã1ã€ã¯ãã¥ãŒãªãã§ãã
åè ã®å Žåããã¥ãŒã¯ããã€ã¹ãžã®ãªã¯ãšã¹ãã«äœ¿çšããããã¹ãŠã®ããã»ã¹ã«å ±éã§ãã äžæ¹ã§ã¯ããã®ã¢ãããŒãã«ãããããŸããŸãªã¹ã±ãžã¥ãŒã©ãŒã䜿çšã§ããããã«ãªããŸããäžè¬çãªãã¥ãŒã§ã¯ãèŠæ±ãæå®ã®å Žæã«åé 眮ããäžéšãäœéåããä»ã®èŠæ±ãé«éåããé£æ¥ãããã¯ãžã®è€æ°ã®èŠæ±ãåäžã®èŠæ±ã«çµåããŠã³ã¹ããåæžã§ããŸãã äžæ¹ããããã¯ããã€ã¹ããã®åŠçèŠæ±ã®é«éåã«ããããã®ãã¥ãŒãããã«ããã¯ã«ãªããŸããããã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã å šäœã«å¯Ÿãããã®ã§ãã
2çªç®ã®å ŽåãèŠæ±ã¯ããã€ã¹ãã©ã€ããŒã«çŽæ¥éä¿¡ãããŸãã ãã¡ãããããã«ããäžè¬çãªãã¥ãŒããã€ãã¹ããããšãã§ããŸãã ãã ããåæã«ãã¿ãŒã³ãäœæããããã€ã¹ãã©ã€ããŒå ã§èŠæ±ãã¹ã±ãžã¥ãŒã«ããå¿ èŠããããŸãã ãã®ãªãã·ã§ã³ã¯ãèŠæ±ãåŠçããéä¿¡äžã«å®éã®ããã€ã¹ã«ãªãã€ã¬ã¯ãããä»®æ³ããã€ã¹ã«é©ããŠããŸãã
éå»æ°å¹Žã§ããããã¯ããã€ã¹ã«ãããªã¯ãšã¹ãã®åŠçé床ãåäžãããã®ããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšããŒã¿è»¢éã€ã³ã¿ãŒãã§ã€ã¹ã®èŠä»¶ãå€æŽãããŸããã
2013幎ã«ã3çªç®ã®ãªãã·ã§ã³ã§ãããã«ããã¥ãŒãããã¯ã¬ã€ã€ãŒïŒblk-mqïŒãéçºãããŸããã
ãœãªã¥ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ãäžè¬çãªçšèªã§èª¬æããŸãã èŠæ±ã¯æåã«ãœãããŠã§ã¢ãã¥ãŒã«å ¥ããŸãã ãããã®ãã¥ãŒã®æ°ã¯ãããã»ããµã³ã¢ã®æ°ãšåãã§ãã ããã°ã©ã ãã¥ãŒãæž¡ããåŸãèŠæ±ã¯éä¿¡ãã¥ãŒã«å ¥ããŸãã éä¿¡ãã¥ãŒã®æ°ã¯ã1ã2048ã®ãã¥ãŒããµããŒãã§ããããã€ã¹ãã©ã€ããŒã«æ¢ã«äŸåããŠããŸãã ã¹ã±ãžã¥ãŒã©ãŒã®äœæ¥ã¯ãœãããŠã§ã¢ãã¥ãŒã®ã¬ãã«ã§å®è¡ãããããããœãããŠã§ã¢ãã¥ãŒããã®èŠæ±ã¯ããã©ã€ããŒãæäŸããéä¿¡ãã¥ãŒã«åé¡ãããŸãã
æšæºã¹ã±ãžã¥ãŒã©
ææ°ã®Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ã®ã»ãšãã©ã«ã¯ã noop ã CFQã deadlineã® 3ã€ã®æšæºã¹ã±ãžã¥ãŒã©ãçšæãããŠããŸãã
noopãšããååã¯ããã®ã¹ã±ãžã¥ãŒã©ãŒãäœãããªãããšã瀺åãããæäœãªãã®ç¥èªã§ãã å®éãããã¯ããã§ã¯ãããŸããïŒnoopã¯åçŽãªFIFOãã¥ãŒãå®è£ ãããªã¯ãšã¹ããé£æ¥ãããã¯ã«çµåããŸãã èŠæ±ã®é åºã¯å€æŽããããããã®åºç€ãšãªãã¬ãã«ãããšãã°RAIDã³ã³ãããŒã©ãŒã®èšç»æ©èœã«äŸåããŸãã
CFQ ïŒå®å šã«å ¬å¹³ãªãã¥ãŒã€ã³ã°ïŒã¯ããå¹æçã«æ©èœããŸãã ãã¹ãŠã®ããã»ã¹éã§åž¯åå¹ ãå ±æããŸãã åæãªã¯ãšã¹ãã®å Žåãããã»ã¹ããšã«é çªã«äœæãããŸãã éåæãªã¯ãšã¹ãã¯åªå 床ã«ãã£ãŠãã¥ãŒã«å ¥ããããŸãã ããã«ãCFQã¯ã¯ãšãªããœãŒãããŠããã£ã¹ã¯ã»ã¯ã¿ãŒã®æ€çŽ¢ãæå°éã«æããŸãã ãã¥ãŒéã§ãªã¯ãšã¹ããå®è¡ããæéã¯ã ioniceãŠãŒãã£ãªãã£ã䜿çšããŠèšå®ã§ããåªå 床ã«åŸã£ãŠåé ãããŸãã èšå®æã«ãããã»ã¹ã¯ã©ã¹ãšã¯ã©ã¹å ã®åªå 床ã®äž¡æ¹ãå€æŽã§ããŸãã èšå®ã«ã€ããŠè©³ããã¯èª¬æããŸãããããã®ã¹ã±ãžã¥ãŒã©ã«ã¯éåžžã«æè»æ§ããããããã»ã¹ã®åªå é äœãèšå®ããããšã¯ããŠãŒã¶ãŒã®ç®¡çã¿ã¹ã¯ã®å®è¡ãå¶éããã®ã«éåžžã«äŸ¿å©ã§ãã
ç· åã¹ã±ãžã¥ãŒã©ãŒã¯ç°ãªãæŠç¥ã䜿çšããŸãã åºæºã¯ããªã¯ãšã¹ãããã¥ãŒã«ãã£ãæéã§ãã ãããã£ãŠããã¹ãŠã®ãªã¯ãšã¹ããã¹ã±ãžã¥ãŒã©ã«ãã£ãŠåŠçãããããšãä¿èšŒãããŸãã ã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã¯èªã¿åãæã«ãããã¯ããããããããã©ã«ãã§ã¯ãæéã«ããèªã¿åãèŠæ±ãåªå ãããŸãã
blk-mqã¡ã«ããºã ã¯ãæšæºã«ãŒãã«ããŒã«ãå¿ èŠãªããã©ãŒãã³ã¹ãæäŸããªãããšãæããã«ãªã£ãNVMeãã£ã¹ã¯ã®åºçŸåŸã«éçºãããŸããã ã«ãŒãã«3.13ã«è¿œå ãããŸããããã¹ã±ãžã¥ãŒã©ã¯åŸã§æžãããŸããã ææ°ã®Linuxã«ãŒãã«ããŒãžã§ã³ïŒâ¥4.12ïŒã«ã¯ãblk-mqã®æ¬¡ã®ã¹ã±ãžã¥ãŒã©ãŒããããŸãïŒnoneãbfqãmq-deadlineãããã³kyberã ãããã®åãã©ã³ããŒããã詳现ã«æ€èšããŠãã ããã
BLK-MQãã©ã³ããŒïŒæŠèŠ
blk-mqã䜿çšãããšãã¹ã±ãžã¥ãŒã©ãŒãå®éã«ç¡å¹ã«ããããšãã§ããŸããã¹ã±ãžã¥ãŒã©ãŒãnoneã«èšå®ããã ãã§ãã
BFQã«ã€ããŠã¯å€ãã®ããšãæžãããŠããŸãããCFQããèšå®ãšã¡ã€ã³ã¢ã«ãŽãªãºã ã®äžéšãç¶æ¿ããäºç®ã®æŠå¿µãšãã¥ãŒãã³ã°ã®ããã®ããã€ãã®ãã©ã¡ãŒã¿ãŒãå°å ¥ããŠãããšããèšããŸããã
Mq-deadlineã¯ããæ³åã®ãšãããblk-mqã䜿çšããæéã®å®è£ ã§ãã
æåŸã®ãªãã·ã§ã³ã¯kyberã§ãã é«éããã€ã¹ã§åäœããããã«æžãããŠããŸãã æžã蟌ã¿èŠæ±ãšèªã¿åãèŠæ±ã®2ã€ã®ãã¥ãŒã䜿çšããŠãkyberã¯æžã蟌ã¿èŠæ±ãããèªã¿åãèŠæ±ãåªå ããŸãã ã¢ã«ãŽãªãºã ã¯ãåãªã¯ãšã¹ãã®å®äºæéã枬å®ããå®éã®ãã¥ãŒãµã€ãºã調æŽããŠãèšå®ã§èšå®ãããé 延ãå®çŸããŸãã
ãã¹ã
ã¯ããã«
ã¹ã±ãžã¥ãŒã©ã®ç¢ºèªã¯ããã»ã©ç°¡åã§ã¯ãããŸããã åçŽãªã·ã³ã°ã«ã¹ã¬ãããã¹ãã§ã¯ã説åŸåã®ããçµæã¯è¡šç€ºãããŸããã 2ã€ã®ãã¹ããªãã·ã§ã³ããããŸããããšãã°ãfioã䜿çšããŠãã«ãã¹ã¬ããããŒããã·ãã¥ã¬ãŒãããŸãã å®éã®ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããè² è·ãããã£ããšãã«ãããã©ã®ããã«è¡šç€ºããããã確èªããŸãã
äžé£ã®åæãã¹ããå®æœããŸããã ãããã¯ãã¹ãŠãã¹ã±ãžã¥ãŒã©ãŒèªäœã®æšæºèšå®ã§å®è¡ãããŸããïŒãã®ãããªèšå®ã¯ã/ sys / block / sda / queue / iosched /ã«ãããŸãïŒã
ã©ã®ã±ãŒã¹ããã¹ãããŸããïŒ
ãããã¯ããã€ã¹ã«ãã«ãã¹ã¬ããã®è² è·ãäœæããŸãã æé«ã®ããŒã¿ã¬ãŒãã§æå°ã®é 延ïŒæå°ã®é 延ãã©ã¡ãŒã¿ãŒïŒã«é¢å¿ããããŸãã èªã¿åãèŠæ±ãåªå ããããšä»®å®ããŸãã
HDDãã¹ã
hddã§ãã©ã³ããŒããã¹ãããããšããå§ããŸãããã
HDDãã¹ãã§ã¯ããµãŒããŒã䜿çšãããŸããã
- 2 xIntel®Xeon®CPU E5-2630 v2 @ 2.40GHz
- 128 GB RAM
- 8TB HGST HUH721008ALãã£ã¹ã¯
- Ubuntu linux 16.04 OSãå ¬åŒãªããžããªã®ã«ãŒãã«4.13.0-17-generic
Fioãªãã·ã§ã³
[global] ioengine=libaio blocksize=4k direct=1 buffered=0 iodepth=1 runtime=7200 random_generator=lfsr filename=/dev/sda1 [writers] numjobs=2 rw=randwrite [reader_40] rw=randrw rwmixread=40
èšå®ããããã£ãã·ã¥ããã€ãã¹ããåããã»ã¹ã®ãã¥ãŒã®æ·±ãã1ã«èšå®ããããšãããããŸãã 2ã€ã®ããã»ã¹ãããŒã¿ãã©ã³ãã ãããã¯ã«æžã蟌ã¿ãŸãã1ã€ã¯æžã蟌ã¿ãšèªã¿åãã§ãã reader_40ã»ã¯ã·ã§ã³ã§èª¬æãããŠããããã»ã¹ã¯ãèªã¿åãèŠæ±ã®40ïŒ ãéä¿¡ããæ®ãã®60ïŒ ãæžã蟌ã¿èŠæ±ã«éä¿¡ããŸãïŒ rwmixreadãªãã·ã§ã³ïŒã
fioãªãã·ã§ã³ã®è©³çŽ°ã¯ã manããŒãžã«èšèŒãããŠããŸã ã
ãã¹ãã®æéã¯2æéïŒ7200ç§ïŒã§ãã
è¡šã®ãã¹ãçµæ
*以äžãwritersã«ã©ã ã§ã¯ãwritersã¹ããªãŒã ã®äžå€®å€ãååŸãããŸããããã¯ãreader_40ã«ã©ã ã§ãåæ§ã§ãã ããªç§åäœã®é 延å€ã
äœå®¶randwrite | reader_40 randwrite | reader_40èªã¿åã | ||
CFQ | bw | 331 KB /ç§ | 210 KB / s | 140 KB / s |
iops | 80 | 51 | 34 | |
å¹³å緯床 | 12.36 | 7.17 | 18.36 | |
ç· ãåã | bw | 330 KB / s | 210 KB / s | 140 KB / s |
iops | 80 | 51 | 34 | |
å¹³å緯床 | 12.39 | 7.2 | 18.39 | |
ãã | bw | 331 KB /ç§ | 210 KB / s | 140 KB / s |
iops | 80 | 51 | 34 | |
å¹³å緯床 | 12.36 | 7.16 | 18.42 | |
Bfq | bw | 384 KB / s | 208 KB /ç§ | 139 KB / s |
iops | 93 | 50 | 33 | |
å¹³å緯床 | 10.65 | 6.28 | 03/20 | |
mq-deadline | bw | 333 KB /ç§ | 211 KB / s | 142 KB /ç§ |
iops | 81 | 51 | 34 | |
å¹³å緯床 | 12.29 | 7.08 | 18.32 | |
ã«ã€ã㌠| bw | 385 KB /ç§ | 193 KB /ç§ | 129 KB /ç§ |
iops | 94 | 47 | 31 | |
å¹³å緯床 | 10.63 | 9.15 | 01/18 | |
ãªã | bw | 332 KB /ç§ | 212 KB / s | 142 KB /ç§ |
iops | 81 | 51 | 34 | |
å¹³å緯床 | 12.3 | 7.1 | 18.3 |
*以äžãwritersã«ã©ã ã§ã¯ãwritersã¹ããªãŒã ã®äžå€®å€ãååŸãããŸããããã¯ãreader_40ã«ã©ã ã§ãåæ§ã§ãã ããªç§åäœã®é 延å€ã
åŸæ¥ã®ïŒåäžãã¥ãŒïŒã¹ã±ãžã¥ãŒã©ãŒã®ãã¹ãçµæãèŠãŠãã ããã ãã¹ãã®çµæãšããŠåŸãããå€ã¯ãå®éã«ã¯äºãã«ç°ãªããªãã ãããã©ã€ã³ããã³ããŒããã¹ãã®ã°ã©ãã§èŠãããã¬ã€ãã³ã·ããŒã¹ãã¯ãé »åºŠã¯å°ãªããã®ã®CFQãã¹ãã§ãçºçããŠããããšã«æ³šæããŠãã ããã blk-mqã¹ã±ãžã¥ãŒã©ãŒããã¹ããããšããããã¯èŠ³å¯ããããèŠæ±ã®ã¿ã€ãïŒæžã蟌ã¿ãŸãã¯èªã¿åãïŒã«é¢ä¿ãªããæ倧é 延ã¯æ倧11ç§ã«éããŸããã
blk-mq-schedulersã䜿çšããå Žåããã¹ãŠãã¯ããã«èå³æ·±ããã®ã«ãªããŸãã ããŒã¿ã®èªã¿åãèŠæ±ã®åŠçã®é 延ã«äž»ã«é¢å¿ããããŸãã ãã®ãããªã¿ã¹ã¯ã®ã³ã³ããã¹ãã§ã¯ãBFQã¯ããã«æªããªããŸãã ãã®ã¹ã±ãžã¥ãŒã©ã®æ倧é 延ã¯ãæžã蟌ã¿ã§6ç§ãèªã¿åãã§æ倧2.5ç§ã«éããŸããã é 延ã®æå°æ倧å€ã¯kyberã瀺ããŸãã-æžã蟌ã¿ã§129msãèªã¿åãã§136msã ãã¹ãŠã®ã¹ããªãŒã ã§æ倧é 延ã20ããªç§å¢å ããŸãã mq-deadlineã®å Žåãæžã蟌ã¿ã«ã¯173ããªç§ãèªã¿åãã«ã¯289ããªç§ã§ããã
çµæã瀺ãããã«ãã¹ã±ãžã¥ãŒã©ãå€æŽããŠãé 延ãå€§å¹ ã«åæžããããšã¯ã§ããŸããã§ããã ãã ããBFQã¹ã±ãžã¥ãŒã©ãŒã匷調衚瀺ããŠãèšé²/èªã¿åãããŒã¿ã®æ°ã®ç¹ã§è¯å¥œãªçµæã瀺ããããšãã§ããŸãã äžæ¹ãBFQãã¹ãäžã«åŸãããã°ã©ããèŠããšãfioåŽããã®è² è·ãéåžžã«åäžã§åäžã§ããã«ããããããããã£ã¹ã¯äžã®è² è·ã®äžåäžãªååžã¯å¥åŠã«èŠããŸãã
SSDãã¹ã
SSDãã¹ãã§ã¯ããµãŒããŒã䜿çšãããŸããã
- Intel®Xeon®CPU E5-1650 v3 @ 3.50GHz
- 64 GB RAM
- 1.6TB INTEL Intel SSD DC S3520ã·ãªãŒãº
- Ubuntu Linux 14.04 OSãã«ãŒãã«4.12.0-041200-genericïŒ kernel.ubuntu.com ïŒ
Fioãªãã·ã§ã³
[global] ioengine=libaio blocksize=4k direct=1 buffered=0 iodepth=4 runtime=7200 random_generator=lfsr filename=/dev/sda1 [writers] numjobs=10 rw=randwrite [reader_20] numjobs=2 rw=randrw rwmixread=20
ãã¹ãã¯hddã®åã®ãã¹ããšäŒŒãŠããŸããããã£ã¹ã¯ã«ã¢ã¯ã»ã¹ããããã»ã¹ã®æ°ãç°ãªããŸã-æžã蟌ã¿çšã«10ãæžã蟌ã¿ããã³èªã¿åãçšã«2ã€ã80/20ã®æžã蟌ã¿/èªã¿åãæ¯çãããã³ãã¥ãŒæ·±åºŠã ãã©ã€ãã«1598GBã®ããŒãã£ã·ã§ã³ãäœæããã2ã®ã¬ãã€ããæªäœ¿çšã®ãŸãŸã«ãªããŸããã
è¡šã®ãã¹ãçµæ
äœå®¶randwrite | reader_20 randwrite | reader_20èªã¿åã | ||
CFQ | bw | 13065 KB / s | 6321 KB / s | 1578 KB /ç§ |
iops | 3265 | 1580 | 394 | |
å¹³å緯床 | 1.223 | 2,000 | 2.119 | |
ç· ãåã | bw | 12690 KB / s | 10279 KB / s | 2567 KB /ç§ |
iops | 3172 | 2569 | 641 | |
å¹³å緯床 | 1.259 | 1.261 | 1.177 | |
ãã | bw | 12509 KB /ç§ | 9807 KB /ç§ | 2450 KB /ç§ |
iops | 3127 | 2451 | 613 | |
å¹³å緯床 | 1.278 | 1.278 | 1.405 | |
Bfq | bw | 12803 KB / s | 10000 KB /ç§ | 2497 KB / s |
iops | 3201 | 2499 | 624 | |
å¹³å緯床 | 1.248 | 1.248 | 1.398 | |
mq-deadline | bw | 12650 KB / s | 9715 KB / s | 2414 KB /ç§ |
iops | 3162 | 2416 | 604 | |
å¹³å緯床 | 1.264 | 1.298 | 1.423 | |
ã«ã€ã㌠| bw | 8764 KB / s | 8572 KB / s | 2141 KB / s |
iops | 2191 | 2143 | 535 | |
å¹³å緯床 | 1.824 | 1.823 | 0.167 | |
ãªã | bw | 12835 KB /ç§ | 10174 KB /ç§ | 2541 KB /ç§ |
iops | 3208 | 2543 | 635 | |
å¹³å緯床 | 1.245 | 1.227 | 1.376 |
å¹³åèªã¿åãé 延ã«æ³šæããŠãã ããã ãã¹ãŠã®ãã©ã³ããŒã®äžã§ãé 延ãæãå°ãªãkyberãšæ倧ã®CFQãéç«ã£ãŠããŸãã Kyberã¯ãé«éããã€ã¹ã§åäœããããã«èšèšãããŠãããäžè¬ã«ãåæãªã¯ãšã¹ããåªå ããŠãã¬ã€ãã³ã·ãåæžããããšãç®çãšããŠããŸãã èªã¿åãèŠæ±ã®å Žåãé 延ã¯éåžžã«å°ãããèªã¿åãããããŒã¿ã®éã¯ä»ã®ã¹ã±ãžã¥ãŒã©ãŒã䜿çšããå Žåãããå°ãªããªããŸãïŒCFQãé€ãïŒã
kyberãšãããã©ã€ã³ãªã©ã®1ç§ãããã®èªã¿åãããŒã¿æ°ã®éããšãèªã¿åãé 延ã®éããæ¯èŒããŠã¿ãŸãããã kyberã¯ããããã©ã€ã³ã®7åã®1ã®èªã¿åãé 延ã瀺ããŸããããèªã¿åãã¹ã«ãŒãããã¯1.2åããæžå°ããŸããã§ããã åæã«ãkyberã¯æžã蟌ã¿èŠæ±ã«å¯ŸããŠæªãçµæã瀺ããŸãã-é 延ã1.5åå¢å ããã¹ã«ãŒãããã1.3åæžå°ããŸããã
æåã®ç®æšã¯ã垯åå¹ ã®æå·ãæå°éã«æããªãããèªã¿åãé 延ãæå°éã«æããããšã§ãã ãã¹ãçµæã«ãããšããã®åé¡ã解決ããã«ã¯ãkyberãä»ã®ãã©ã³ããŒãããåªããŠãããšèããããšãã§ããŸãã
CFQãšBFQãæ¯èŒçäœãæžã蟌ã¿é 延ã瀺ããããšã«æ³šç®ããã®ã¯èå³æ·±ãã§ããããã®å ŽåãCFQã䜿çšããå Žåããã£ã¹ã¯ãžã®æžã蟌ã¿ã®ã¿ãå®è¡ããããã»ã¹ãæé«ã®åªå 床ãååŸããŸããã ããããã©ã®ãããªçµè«ãåŒãåºãããšãã§ããŸããïŒ ãããããéçºè ãçºè¡šããããã«ãBFQã¯ãªã¯ãšã¹ãããããæ£çŽã«ãåªå ããŸãã
æ倧ã¬ã€ãã³ã·ã¯ã* FQã¹ã±ãžã¥ãŒã©ãšmq-deadlineã§ã¯ããã«é·ããªããŸãã-CFQã§æ倧ã3.1ç§ãBFQããã³mq-deadlineã§æ倧ã2.7ç§ã æ®ãã®ãã©ã³ããŒã§ã¯ããã¹ãäžã®æ倧é 延ã¯35ã50ããªç§ã§ããã
NVMeãã¹ã
NVMeãã¹ãã§ã¯ãSSDãã¹ããå®è¡ããããµãŒããŒã«Micron 9100ãã€ã³ã¹ããŒã«ããããã£ã¹ã¯ã¬ã€ã¢ãŠãã¯SSDã«äŒŒãŠããã1598GBãã¹ããš2GBã®æªäœ¿çšé åã®ã»ã¯ã·ã§ã³ã§ãã fioã®èšå®ã¯åã®ãã¹ããšåãã§ããã¥ãŒã®æ·±ãïŒiodepthïŒã®ã¿ã8ã«å¢å ããŸããã
[global] ioengine=libaio blocksize=4k direct=1 buffered=0 iodepth=8 runtime=7200 random_generator=lfsr filename=/dev/nvme0n1p1 [writers] numjobs=10 rw=randwrite [reader_20] numjobs=2 rw=randrw rwmixread=20
è¡šã®ãã¹ãçµæ
äœå®¶randwrite | reader_20æžã蟌㿠| reader_20èªã¿åã | ||
Bfq | bw | 45752 KB / s | 30541 KB / s | 7634 KB / s |
iops | 11437 | 7635 | 1908 | |
å¹³å緯床 | 0.698 | 0.694 | 1.409 | |
mq-deadline | bw | 46321 KB / s | 31112 KB / s | 7777 KB /ç§ |
iops | 11580 | 7777 | 1944 | |
å¹³å緯床 | 0.690 | 0.685 | 1.369 | |
ã«ã€ã㌠| bw | 30460 KB / s | 27709 KB / s | 6926 KB / s |
iops | 7615 | 6927 | 1731 | |
å¹³å緯床 | 1.049 | 1,000 | 0.612 | |
ãªã | bw | 45940 KB / s | 30867 KB / s | 7716 KB / s |
iops | 11484 | 7716 | 1929幎 | |
å¹³å緯床 | 0.695 | 0.694 | 1.367 |
ã°ã©ãã¯ãã¹ã±ãžã¥ãŒã©ã®å€æŽãšäžæåæ¢ã䌎ããã¹ãçµæã瀺ããŠããŸãã ãã¹ãé åºïŒãªããkyberãmq-deadlineãBFQã
è¡šãšã°ã©ãã§ã¯ãé 延ãåæžããããã®kyberã¢ã«ãŽãªãºã ã®ã¢ã¯ãã£ããªæäœãåã³è¡šç€ºãããŸãïŒä»ã®ã¹ã±ãžã¥ãŒã©ãŒã®1.3-1.4ã«å¯ŸããŠ0.612msã NVMeãã£ã¹ã¯ã«ã¹ã±ãžã¥ãŒã©ãŒã䜿çšããã®ã¯çã«ããªã£ãŠããªããšäžè¬ã«èããããŠããŸãããåªå é äœãã¬ã€ãã³ã·ãŒãæžããããšã§ãããI / Oæäœã®æ°ãç ç²ã«ã§ããå Žåã¯ãkyberãæ€èšããããšã¯çã«ããªã£ãŠããŸãã ã°ã©ããèŠããšãBFQã䜿çšãããšCPUã®è² è·ãå¢å ããããšãããããŸãïŒæåŸã®ãã¹ãïŒã
çµè«ãšæšå¥šäºé
ãã®èšäºã¯ããã®ãããã¯ã®éåžžã«äžè¬çãªçŽ¹ä»ã§ãã ãããŠãç§ãã¡ã®ãã¹ãããã®ãã¹ãŠã®ããŒã¿ã¯ãå®éã«ã¯ãã¹ãŠãå®éšæ¡ä»¶ãããã¯ããã«è€éã§ãããšããäºå®ãèæ ®ã«å ¥ããå¿ èŠããããŸãã ããã¯ãã¹ãŠãè² è·ã®çš®é¡ã䜿çšããããã¡ã€ã«ã·ã¹ãã ãªã©ãå€ãã®èŠå ã«äŸåããŸãã å€ãã¯ãããŒããŠã§ã¢ã³ã³ããŒãã³ãã«äŸåããŸãïŒãã©ã€ãã¢ãã«ãRAID / HBA / JBODã
äžè¬çã«ãã¢ããªã±ãŒã·ã§ã³ãioprioã䜿çšããŠç¹å®ã®ããã»ã¹ã«åªå é äœãä»ããå ŽåãCFQ / BFQã®æ¹åã§ã¹ã±ãžã¥ãŒã©ãéžæããããšã¯æ£åœåãããŸãã ãã ããåžžã«è² è·ã®çš®é¡ãšãã£ã¹ã¯ãµãã·ã¹ãã å šäœã®æ§æããå§ãã䟡å€ããããŸãã äžéšã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ãéçºè ã¯éåžžã«å ·äœçãªæšå¥šäºé ãæ瀺ããŸããããšãã°ãã¯ãªãã¯ããŠã¹ã§ã¯ ãHDDã«ã¯CFQããSSDãã©ã€ãã«ã¯noopã䜿çšããããšããå§ãããŸãã ãã©ã€ããããå€ãã®åž¯åå¹ ãå¿ èŠãšããå Žåãããå€ãã®I / Oãšå¹³åé 延ãå®è¡ããèœåã¯éèŠã§ã¯ãããŸããã次ã«ãBFQ / CFQã®æ¹åã確èªããå¿ èŠããããŸããssdãã©ã€ããnoopããã³noneã§ãã
é 延ãæžããå¿ èŠããããåæäœãç¹ã«èªã¿åãæäœãã§ããã ãæ©ãå®è¡ããå¿ èŠãããå Žåã¯ãssdã®äœ¿çšã«å ããŠããã®ããã«ç¹å¥ã«èšèšããããããã©ã€ã³ã¹ã±ãžã¥ãŒã©ããŸãã¯æ°ãããã®ã®1ã€ã§ããmq-deadlineãkyberã䜿çšãã䟡å€ããããŸãã
æšå¥šäºé ã¯äžè¬çãªæ§è³ªã®ãã®ã§ããããã¹ãŠã®å Žåã«é©ããŠããããã§ã¯ãããŸããã ãã©ã³ããŒãéžæããéãç§ãã¡ã®æèŠã§ã¯ã次ã®ç¹ãèæ ®ããå¿ èŠããããŸãã
- ããŒããŠã§ã¢ã³ã³ããŒãã³ãã¯éèŠãªåœ¹å²ãæãããŸããRAIDã³ã³ãããŒã©ãŒãæç·ã¯ãšãªã¹ã±ãžã¥ãŒãªã³ã°ã¢ã«ãŽãªãºã ã䜿çšããŠããå Žåã«ç¶æ³ãçºçããå¯èœæ§ããããŸãããã®å ŽåãnoneãŸãã¯noopã¹ã±ãžã¥ãŒã©ãŒã®éžæãæ£åœåãããŸãã
- è² è·ã®ã¿ã€ãã¯éåžžã«éèŠã§ããå®éšã§ã¯ãªãããæŠéç¶æ ãã§ã¯ãã¢ããªã±ãŒã·ã§ã³ãä»ã®çµæã瀺ãå ŽåããããŸãã ãã¹ãã«äœ¿çšãããfioãŠãŒãã£ãªãã£ã¯è² è·ãäžå®ã«ä¿ã¡ãŸãããå®éã«ã¯ãã¢ããªã±ãŒã·ã§ã³ããã£ã¹ã¯ã«åäžãã€çµ¶ããã¢ã¯ã»ã¹ããããšã¯ã»ãšãã©ãããŸããã 1åãããã®å¹³åã®å®éã®ãã¥ãŒé ç®æ°ã¯1ã3ã®ç¯å²ã«ãšã©ãŸãããšãã§ããŸãããããŒã¯æã«ã¯10ã13ã150ã®èŠæ±ã«ãªããŸãã ããã¯ãã¹ãŠè² è·ã®çš®é¡ã«äŸåããŸãã
- ã©ã³ãã ããŒã¿ãããã¯ã®æžã蟌ã¿/èªã¿åãã®ã¿ããã¹ãããŸãããã¹ã±ãžã¥ãŒã©ã䜿çšããå Žåãé åºã¯éèŠã§ãã ç·åœ¢è² è·ã䜿çšãããšãã¹ã±ãžã¥ãŒã©ãŒãèŠæ±ãé©åã«ã°ã«ãŒãåãããšãå€ãã®åž¯åå¹ ãååŸã§ããŸãã
- åã¹ã±ãžã¥ãŒã©ã«ã¯ãè¿œå ã§æ§æã§ãããªãã·ã§ã³ããããŸãã ãããã¯ãã¹ãŠããã©ã³ããŒã®ããã¥ã¡ã³ãã«èšèŒãããŠããŸã ã
æ°é ãã®ããèªè ã¯ãç°ãªãã³ã¢ã䜿çšããŠHDDããã³SSD / NVMeãã©ã€ãã®ã¹ã±ãžã¥ãŒã©ãŒããã¹ãããŠããããšã«æ°ä»ããŠããã¯ãã§ãã å®éãHDDã䜿çšãã4.12ã«ãŒãã«ã§ã®ãã¹ãäžãBFQããã³mq-deadlineã¹ã±ãžã¥ãŒã©ãŒã®åäœã¯ããªãå¥åŠã«èŠããŸãããé 延ã¯æžå°ãããã®åŸæ°åééåžžã«å€§ãããªããŸããã ãã®åäœã¯é©åã«èŠããã4.13ã«ãŒãã«ãç»å Žãããããæ°ããã«ãŒãã«ã®HDDã§ãã¹ããå®è¡ããããšã«ããŸããã
ã¹ã±ãžã¥ãŒã©ã³ãŒããå€æŽãããå¯èœæ§ãããããšãå¿ããªãã§ãã ããã 次ã®ã«ãŒãã«ãªãªãŒã¹ã§ã¯ãç¹å®ã®ã¹ã±ãžã¥ãŒã©ãè² è·ã®ããã©ãŒãã³ã¹ã®äœäžã瀺ããã¡ã«ããºã ã¯æ¢ã«æžãçŽãããŠãããå°ãªããšãããã©ãŒãã³ã¹ã¯äœäžããŠããŸããã
Linux I / Oã¹ã±ãžã¥ãŒã©ãŒæ©èœã®æ©èœã¯è€éãªãããã¯ã§ããã1ã€ã®åºçç©ã®æ çµã¿å ã§æ€èšããããšã¯ã»ãšãã©äžå¯èœã§ãã ä»åŸã®èšäºã§ãã®ãããã¯ã«æ»ãäºå®ã§ãã æŠéã§ãã©ã³ããŒããã¹ãããçµéšãããå Žåã¯ãã³ã¡ã³ãã§ãããèªãã§åãã§ããŸãã