°Ô½Ã¹° 23°Ç
   
I/O scheduler ¼³¸í
±Û¾´ÀÌ : theko ³¯Â¥ : 2014-09-25 (¸ñ) 17:20 Á¶È¸ : 4881
I/O scheduler ¢Ò
  • Çϵåµð½ºÅ©¿¡ ÃÖÀûÈ­µÈ ºí·° µð¹ÙÀ̽º ½ºÄÉÁÙ¸µ ¾Ë°í¸®ÁòÀ» ÀǹÌÇÑ´Ù.
  • SATA controller ¶Ç´Â ÀϹÝÀûÀÎ HDD diskÀÇ controller¸¦ ÀÌ¿ëÇÏ´Â SSD Á¦Ç°ÀÇ °æ¿ì, NOOP¸¦ ¼±ÅÃÇϸé Ź¿ùÇÑ ¼º´É Çâ»óÀÌ ÀÖ´Ù.

2 I/O scheduler Á¾·ù ¢Ò

  • Linus Elevator
    • Ä¿³Î 2.6¿¡¼­´Â deadlineÀ¸·Î ÁøÈ­ÇÔ. 2.4 ±îÁö¸¸ »ç¿ëµÊ. deadlineÀ» ¼³¸íÇϱâ À§ÇØ ±â·Ï
    • Å¥¿¡¼­ ¿äûÀ» (block number ¼øÀ¸·Î) Insertion sort ÇÏ´Ù°¡ age°¡ ¿À·¡ µÈ ¿äûÀÌ ÀÖÀ¸¸é ±×°ÅºÎÅÍ Ã³¸®ÇÏ´Â ¹æ½ÄÀÌ´Ù.

  • Completely Fair Queuing (CFQ)
    • ±âº» I/O scheduler
    • CFQ ½ºÄÉÁÙ·¯´Â ±¤¹üÀ§ÇÑ ÀÀ¿ë ÇÁ·Î±×·¥°ú I/O ½Ã½ºÅÛ ¼³°è¿¡ ÃÖ»óÀÇ ¼º´ÉÀ» Á¦°øÇϱ⠶§¹®¿¡ ±âº» ½ºÄÉÁÙ·¯·Î ¼±ÅÃÀÌ µÇ¾ú´Ù. 16°³ÀÇ CPU¸¦ °¡Áö°í ÀÖ°í, Ultra SCSI¿Í Fiber channel·Î ±¸¼ºµÈ 2~64°³ÀÇ LUNÀ» °¡Áø ½Ã½ºÅÛ¿¡¼­ CFQ´Â Ź¿ùÇÑ ¼º´ÉÀ» ¹ßÈÖÇÑ °ÍÀ¸·Î ¾Ë·ÁÁ® ÀÖ´Ù. °Ô´Ù°¡ CFQ´Â ´Ù¸¥ I/O subsystemÀÇ ¼º´É°ú ÀÏÄ¡ÇÒ ¼ö ÀÖµµ·Ï /proc/sys/scsi subsystem¿¡ ÀÖ´Â nr_requests ÆĶó¹ÌÅ͸¦ Á¶Á¤ÇÏ¿© ½±°Ô ÃÖÀûÈ­ ÇÒ ¼ö ÀÖ´Ù.
    • CFQ(Complete Fair Queuing)´Â °¢ ÇÁ·Î¼¼½º ¸¶´Ù ÀÛ¾÷ Å¥¸¦ °¡Áö°í ÀÖ°í À̰͵éÀÌ round robin¹æ½ÄÀ¸·Î µ¹¸ç Á¤ÇØÁø time slice ³»¿¡¼­ ÀÛ¾÷À» ¼öÇàÇÏ°Ô µÈ´Ù. time slice¾È¿¡ ÀÛ¾÷À» ¸ðµÎ ³¡³»°Ô µÇ¾îµµ 10ms Á¤µµ¸¦ Ãß°¡·Î ±â´Ù¸®¸ç Ȥ½Ã³ª ÀÖÀ» I/O ÀÛ¾÷À» ´ë±âÇÏ´Ù°¡ ¾Èµé¾î¿À¸é ´Ù¸¥ ÇÁ·Î¼¼½ºÀÇ Å¥·Î À̵¿ÇÑ´Ù. °¢ Å¥¿¡¼­´Â synchronous ¿äûÀÌ asynchronousº¸´Ù ¿ì¼±¼øÀ§¸¦ °¡Áö°í ÁøÇàµÇ¾î writes-starving-reads ¹®Á¦¸¦ ÇØ°áÇÑ´Ù.

  • Deadline
    • Deadline ½ºÄÉÁÙ·¯´Â real-time °°Àº single I/O ó·³ ¿¬¼ÓµÈ read¸¦ ºü¸£°í È¿À²ÀûÀ¸·Î ó¸®Çϱâ À§ÇÏ¿© ´ë±â ½Ã°£À» °¡Áö´Â ¹æ½ÄÀÌ´Ù. Single I/O ȯ°æ¿¡¼­´Â ºü¸£Áö¸¸ multip HBA ¶Ç´Â ÆÄÀϽýºÅÛ°£ÀÇ Æ®·£Á§¼Ç¿¡´Â Ç×»ó ÃÖ»óÀÇ ¼±ÅÃÀÌ µÉ ¼ö´Â ¾ø´Ù.
    • Linux ElevatorÀÇ ÀÛ¾÷ Å¥¿Ü¿¡ º°µµÀÇ read/write Å¥¸¦ µÐ´Ù. ÀÛ¾÷ Å¥¿¡´Â ¿äûÀÌ block ¹øÈ£ ¼ø¼­·Î Á¤·ÄµÇ¾î ÀÖ°í, read/writeÅ¥´Â FIFO·Î (¿äû µé¾î¿Â ¼ø¼­´ë·Î) µé¾î°£´Ù. I/O Scheduler´Â ÀÛ¾÷ Å¥¿¡ Á¤·ÄµÈ ¿äûµéÀ» °¡Áö°í ÀÛ¾÷À» ÇÏ´Ù°¡ expiration time¿¡ ³ÑÀº ¿äûÀÌ ¹ß°ßµÇ¸é ±× ¿äûÀ» °¡Áö°í ÀÖ´Â read(ȤÀº write)Å¥¿¡°¡¼­ ÀÛ¾÷À» ÁøÇàÇÑ´Ù. ÀϹÝÀûÀ¸·Î read Å¥´Â expiration timeÀÌ 500ms·Î ª°í write Å¥´Â 5ÃÊÁ¤µµ·Î ÁØ´Ù.

  • Anticipatory
    • Ãßõ ´ë»ó
      • Á¦ÇÑµÈ I/O ¼³Á¤À» °¡Áö°í ÀÖ´Â °æ¿ì
      • 1 ¶Ç´Â 2°³ÀÇ LUN¸¸ °¡Áö°í ÀÕ´Â ÀÛÀº ½Ã½ºÅÛ
      • I/O ´ë±â½Ã°£ º¸´Ù ´ëÈ­Çü ÀÀ´ä½Ã°£¿¡ ¿ì¼±±ÇÀ» ÁÖ´Â °ÍÀÌ À¯¸®ÇÒ °æ¿ì (´ëºÎºÐÀÇ workstationµé..)
    • ¿¬¼ÓµÈ ºÎºÐÀÇ read ¿äûÀÇ °æ¿ì µð½ºÅ©ÀÇ Çì´õ´Â ÀÌ¹Ì ´Ù¸¥ À§Ä¡·Î À̵¿ÇØ ÀÖ´Â »óÅ¿¡¼­ ´Ù½Ã ÀÌÀüÀÇ À§Ä¡·Î À̵¿ÇÏ¿© ÀÛ¾÷À» ¼öÇàÇÏ°Ô µÇ´Â ³¶ºñ°¡ ÀÖ´Ù. ¶§¹®¿¡ ¿¬¼ÓÀûÀÎ read¸¦ À§ÇØ ÇѹøÀÇ read°¡ ¸¶ÃÄÁö¸é ÃÖ´ë 6ms ±îÁö ¾Æ¹«Àϵµ ¼öÇàÇÏÁö ¾Ê°í (ÇìµåÀÇ À§Ä¡¸¦ À̵¿ÇÏÁö ¾Ê°í) ´ë±âÇؼ­ ¿¬¼ÓÀûÀÎ readÀÛ¾÷½Ã ½Ã°£À» ¾Æ³¢´Â ¹æ½ÄÀÇ ½ºÄÉÁ층À» anticipatory I/O scheduler¶ó°í ÇÑ´Ù.

  • NOOP
    • ºí·° ¹øÈ£ ¼øÀ¸·Î Á¤·ÄÀº ÇÏÁö ¾Ê°í merging¸¸ ÇÏ´Â ½ºÄÉÁì·¯ ÀÌ´Ù. Hard Disk ¹æ½ÄÀÇ controller (sata/sas)¸¦ »ç¿ëÇÏ´Â SSDÀÇ °æ¿ì, ÀÌ ¹æ½ÄÀ» ¼±ÅÃÇϵµ·Ï ÇÑ´Ù.
    • º°µµ controller¸¦ °¡Áö°í ÀÖÀ» °æ¿ì, driver´Ü¿¡¼­ ÀÌ¹Ì ÃÖÀûÈ­ ¾Ë°í¸®ÁòÀ» °¡Áö°í Àֱ⠶§¹®¿¡ ½Å°æ¾µ ÇÊ¿ä ¾øÀ½. (¿¹.. Fusion IO)

3 ¼³Á¤ ¢Ò

  • kernel 2.6 ºÎÅÍ´Â sys filesystem ¿¡¼­ ¼³Á¤À» ÇÑ´Ù.
  • Ä¿³Î ¹öÀü¿¡ µû¶ó °æ·Î°¡ º¯°æµÉ ¼ö ÀÖ´Ù.
    # cat /sys/block/{DEVICE-NAME}/queue/scheduler# cat /sys/block/sda/queue/scheduler


  • change scheduler
    # echo {SCHEDULER-NAME} > /sys/block/{DEVICE-NAME}/queue/scheduler# echo noop > /sys/block/hda/queue/scheduler

À̸§ Æнº¿öµå
ºñ¹Ð±Û (üũÇÏ¸é ±Û¾´À̸¸ ³»¿ëÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.)
¿ÞÂÊÀÇ ±ÛÀÚ¸¦ ÀÔ·ÂÇϼ¼¿ä.
   

miwit.com sir.co.kr DNS Powered by DNSEver.com DNS Powered by DNSEver.com