Scrap/ServerPerformanceAndScalabilityKiller
UserPreferences
serious-code.net
RecentChanges
±â¼úÀÚ·á
¸µÅ©
TitleIndex
ºí·Î±×
from
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dniis/html/tencom.asp
°³¿ä
¼¹ö vs µ¥½ºÅ©Å¾ ¾ÖÇø®ÄÉÀ̼Ç
¼¹ö ÇÁ·Î±×·¥ÀÇ ¼º´ÉÀ» ¶³¾î¶ß¸®±â À§ÇÑ ½Ê°è¸í
´ë·®ÀÇ ¿ÀºêÁ§Æ®¸¦ »ý¼ºÇϰí, »èÁ¦Ç϶ó.
ÇÁ·Î¼¼¼ ij½Ã¿¡ ´ëÇØ¼ »ý°¢ÇÏÁö ¸¶¶ó.
ÀÚÁÖ »ç¿ëµÇ´Â µ¥ÀÌÅ͸¦ Àý´ë ij½ÌÇÏÁö ¸¶¶ó.
¸¹Àº ½º·¹µå¸¦ »ý¼ºÇ϶ó. ¸¹À»¼ö·Ï ÁÁ´Ù.
µ¥ÀÌÅÍ¿¡´Ù°¡ Àü¿ª ¶ôÀ» »ç¿ëÇ϶ó.
´ÙÁß ÇÁ·Î¼¼¼ ¸Ó½Å¿¡ ´«µ¶µéÀÌÁö ¸¶¶ó.
ºí·ÎÅ· ÇÔ¼ö¸¸À» »ç¿ëÇ϶ó. Àç¹ÌÀÖ´Ù.
ÃøÁ¤ÇÏÁö ¸¶¶ó.
ÇϳªÀÇ Å¬¶óÀÌ¾ðÆ®°¡ º¸³»´Â ÇϳªÀÇ ¿äû¸¸À¸·Î Å×½ºÆ®Ç϶ó.
½ÇÁ¦ ¼¼°è¿¡¼ ÀϾ´Â ÀϵéÀ» »ý°¢ÇÏÁö ¸¶¶ó.
1 °³¿ä
¼¹ö ¼º´É¿¡ °üÇÑ À̽´´Â µ¥½ºÅ©Å¾ ¾ÖÇø®ÄÉÀ̼ÇÀ» Á¦ÀÛÇØ¿Â ÇÁ·Î±×·¡¸Óµéµµ ÀÌÁ¦´Â ½Å°æ½á¾ßÇÒ ºÎºÐÀÌ´Ù. µÚ¿¡¼ ¾²ÀÌ´Â ¹éº» ÇÁ·¹ÀÓ¿÷ÀÌ ¾Æ¹«¸® Àß µÇ¾îÀÖ´Ù°í ÇØµµ, ±×°ÍÀ» ÀÌ¿ëÇØ ½ÇÁ¦ ¾ÖÇø®ÄÉÀ̼ÇÀ» Á¦ÀÛÇÏ´Â »ç¶÷ÀÌ ¾Æ¹« »ý°¢ÀÌ ¾ø´Ù¸é, ¼Ò¿ë¾ø´Ù. µ¥½ºÅ©Å¾ ¾ÖÇø®ÄÉÀ̼ǰú ¼¹ö ¾ÖÇø®ÄÉÀÌ¼Ç »çÀÌ¿¡´Â ¼º´É¿¡ Áß¿äÇÑ ¿µÇâÀ» ÁÖ´Â Ä¿´Ù¶õ Â÷ÀÌÁ¡ÀÌ Á¸ÀçÇÑ´Ù.
2 ¼¹ö vs µ¥½ºÅ©Å¾ ¾ÖÇø®ÄÉÀ̼Ç
µ¥½ºÅ©Å¾ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼º´É¿¡ ¿µÇâÀ» ÁÖ´Â ¿ä¼ÒµéÀº Àß ¾Ë·ÁÁ®ÀÖ´Ù. ±ä ÄÚµå´Â ´À¸° ¼Óµµ¸¦ ÀǹÌÇÑ´Ù. ¸®¼Ò½º¸¦ ¸¹ÀÌ »ç¿ëÇÏ´Â °ÍÀº ¹«°Å¿î ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé¾î³½´Ù. ±ä ½ÃÀÛ ½Ã°£Àº »ç¿ëÀÚ¸¦ ºÐ³ëÇÏ°Ô ÇÑ´Ù. ´ë·®ÀÇ µ¥ÀÌÅ͸¦ ÇÑ ¼ø°£¿¡ ´Ù·ç´Â °ÍÀº ÆäÀÌÁöÆúÆ®°¡ ¹ß»ýÇÒ È®·üÀ» ³ôÀ̰í ÀÌ´Â ½Ã½ºÅÛÀ» ¹ö¹÷°Å¸®°Ô ¸¸µç´Ù. ¼¹ö ¾ÖÇø®ÄÉÀ̼ǿ¡ ¿µÇâÀ» ÁÖ´Â ¿ä¼ÒµéÀº À§¿¡¼ ¸»ÇÑ ¿ä¼Òµé »Ó ¾Æ´Ï¶ó, ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù.
¼¹ö ¾ÖÇø®ÄÉÀ̼ÇÀº Àû°Ô´Â ¼ö½Ê¸í¿¡¼ ¸¹°Ô´Â ¼ö¹é¸íÀÇ Å¬¶óÀÌ¾ðÆ®µéÀ» µ¿½Ã¿¡ ó¸®ÇؾßÇÑ´Ù.
µ¥½ºÅ©Å¾ ¾ÖÇø®ÄÉÀ̼ÇÀº 10ºÐÀÇ 1ÃÊ Á¤µµ ¾È¿¡ ¹ÝÀÀÇϸé, ¹ÝÀÀÀÌ ºü¸¥ °ÍÀ¸·Î Ãë±Þ¹Þ´Â´Ù. ÇÏÁö¸¸ ÀÌ´Â ÇϳªÀÇ ÀÛ¾÷ÀÌ 100ms Á¤µµÀÇ ½Ã°£À» ¼Ò¿äÇÑ´Ù´Â ¸»À̰í, °á±¹ ÃÊ´ç 10°³ Á¤µµ ¹Û¿¡ ó¸®ÇÒ ¼ö ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ´ëºÎºÐÀÇ ¼¹ö ¾ÖÇø®ÄÉÀ̼ÇÀº ÃÊ´ç 10°³º¸´Ù´Â ÈξÀ ³ôÀº 󸮷®ÀÌ ¿ä±¸µÈ´Ù. °Ô´Ù°¡ CPU ¼Óµµ¿¡ ºñÇØ ÈξÀ ´À¸° ³×Æ®¿öÅ©¸¦ °í·ÁÇϸé, ¼¹ö ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¹ÝÀÀ ¼Óµµ´Â ÈξÀ »¡¶óÁ®¾ßÇÑ´Ù.
¼¹ö ¾ÖÇø®ÄÉÀ̼ÇÀº ´ëºÎºÐ ´ë·®ÀÇ µ¥ÀÌÅ͸¦ ´Ù·é´Ù.
ºñÈ¿À²ÀûÀÎ ¾Ë°í¸®Áò, ƯÈ÷ O(N^2)³ª ±× ÀÌ»óÀÇ ½Ã°£À» ¿ä±¸ÇÏ´Â ¾Ë°í¸®ÁòµéÀº ¹é¸¸°³ ´ÜÀ§ÀÇ µ¥ÀÌÅ͸¦ ´Ù·ç´Â µ¥ À־ Àû´çÇÏÁö ¾Ê´Ù.
¼¹ö ¸Ó½ÅÀº µ¥½ºÅ©Å¾¿¡ ºñÇØ¼ °·ÂÇÏ´Ù.
º¸Åë ´õ ¸¹Àº ¸Þ¸ð¸®¸¦ °¡Áö°í ÀÖÀ¸¸ç, ´õ Å« µð½ºÅ©¿Í ºü¸¥ CPU, ±×¸®°í Á¾Á¾ ¿©·¯ °³ÀÇ CPU¸¦ °¡Áø´Ù. ÇÏÁö¸¸ À̿ܿ¡µµ ´õ ÀÖ´Ù. µ¥½ºÅ©Å¾ ¸Ó½ÅÀº ´ëºÎºÐÀÇ ½Ã°£À» ³î´Ù°¡ ¾î´À ÇÑ ¼ø°£ »ç¿ë·®ÀÌ Ä¡¼Ú´Â µ¥ ºñÇØ, ¼¹ö ¸Ó½ÅÀº ´ëºÎºÐ ÀÏÁ¤ ÀÌ»óÀÇ »ç¿ë·®À» °è¼Ó À¯ÁöÇÑ´Ù. ¼¹ö´Â µ¥½ºÅ©Å¾¿¡ ºñÇØ¼ ºñ½Î°í, ÀÌ·± »çÇ×µéÀ» Àß Áöų °Å¶ó°í °¡Á¤µÇ¾îÁø´Ù. -_-;
¼¹ö ¾ÖÇø®ÄÉÀ̼ÇÀº ½ÇÇà ½Ã°£ÀÌ Âª°Ô´Â ¸îÀÏ¿¡¼ ±æ°Ô´Â ¸î´Þ±îÁö À̾îÁø´Ù.
ÀÌ´Â ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼º´ÉÀÌ ¸Þ¸ð¸® ´©¼ö °°Àº ÀÌÀ¯·Î ÀÎÇØ ½Ã°£ÀÌ Áö³²¿¡ µû¶ó ¶³¾îÁö¸é ¾È µÈ´Ù´Â ¸»ÀÌ´Ù.
¼¹ö ¾ÖÇø®ÄÉÀ̼ÇÀº ´ëºÎºÐÀÇ °æ¿ì ´ÙÁß ½º·¹µå ±¸Á¶°¡ ÇÊ¿äÇÏ´Ù.
´Üµ¶ ½º·¹µå ¼¹ö´Â ÇÑ ¼ø°£¿¡ ÇϳªÀÇ ÀÛ¾÷ ¹Û¿¡ ó¸®ÇÏÁö ¸øÇÏ´Â µ¥´Ù°¡ ´ëºÎºÐÀÇ ½Ã°£À» IO¿¡ ºí·ÎÅ·µÇ¾î º¸³»°Ô µÈ´Ù. ÀÌ´Â ¹Þ¾ÆµéÀÏ ¼ö ¾øÀ» Á¤µµÀÇ ¼º´É ÀúÇϸ¦ ¾ß±âÇÑ´Ù. ½º·¹µåÇ®À» »ç¿ëÇÏ°Ô µÇ¸é, ÇϳªÀÇ ½º·¹µå°¡ ³ë´Â µ¿¾È¿¡ ´Ù¸¥ ½º·¹µå°¡ ÀÛ¾÷À» ó¸®ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ³´´Ù. »ç½Ç ¸ÖƼ ÇÁ·Î¼¼¼¸¦ Á¦´ë·Î Ȱ¿ëÇÏ·Á¸é ´ÙÁß ½º·¹µå´Â Çʼö´Ù. ÇÏÁö¸¸ ´ÙÁß ½º·¹µå ÇÁ·Î±×·¥Àº Á¦ÀÛÇϱ⵵ ¾î·Æ°í, µð¹ö±×Çϱ⵵ ¾î·Æ´Ù. ÇÏÁö¸¸ Á¦´ë·Î¸¸ ÇÑ´Ù¸é, ´Üµ¶ ½º·¹µå ¾ÖÇø®ÄÉÀ̼Ǻ¸´Ù´Â ÈξÀ ³ªÀº ¼º´ÉÀ» ¾òÀ» ¼ö ÀÖ´Ù.
3 ¼¹ö ÇÁ·Î±×·¥ÀÇ ¼º´ÉÀ» ¶³¾î¶ß¸®±â À§ÇÑ ½Ê°è¸í
¾Æ·¡ÀÇ "½Ê°è¸í"Àº ¼¹öÀÇ ¼º´É°ú È®À强À» ¶³¾î¶ß¸®±â À§ÇÑ °ÍµéÀÌ´Ù.
°¡´ÉÇÏ´Ù¸é ¹Ýµå½Ã ±ú¾î¾ßÇÒ °ÍµéÀ̶õ ¸»ÀÌ´Ù.
3.1 ´ë·®ÀÇ ¿ÀºêÁ§Æ®¸¦ »ý¼ºÇϰí, »èÁ¦Ç϶ó.
¸Þ¸ð¸® ÇÒ´çÀº »ý°¢º¸´Ù ½Ã°£ÀÌ ¿À·¡ °É¸®´Â ÀÛ¾÷À̱⠶§¹®¿¡, ³Ê¹« ÀæÀº ¸Þ¸ð¸® ÇÒ´çÀº ÇÇÇÏ´Â °ÍÀÌ ÁÁ´Ù. ´ëºÎºÐÀÇ ¸Þ¸ð¸® ÇÒ´çÀÚ°¡ ¸Þ¸ð¸® ÇØÁ¦½Ã, ¸Þ¸ð¸®ÀÇ Á¶°¢È¸¦ ¸·±â À§ÇØ ³»ºÎÀûÀΠ󸮸¦ Çϱ⠶§¹®¿¡, ¸Þ¸ð¸® ÇØÁ¦´Â ´õ¿í ´õ ½Ã°£ÀÌ ¿À·¡ °É¸°´Ù.
3.2 ÇÁ·Î¼¼¼ ij½Ã¿¡ ´ëÇØ¼ »ý°¢ÇÏÁö ¸¶¶ó.
´ëºÎºÐÀÇ »ç¶÷µéÀÌ °¡»ó ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÇÇØ ÀϾ´Â ÆäÀÌÁö ÆúÆ®°¡ »ó´çÈ÷ ³ôÀº ºñ¿ëÀ» ¿ä±¸Çϰí, µÉ ¼ö ÀÖ´Â ÇÑ ÇÇÇÏ´Â °ÍÀÌ »óÃ¥À̶ó´Â °ÍÀ» ¾Ë°í ÀÖÁö¸¸, ´Ù¸¥ Á¾·ùÀÇ ¸Þ¸ð¸® ¾×¼¼½º´Â ¹«Á¶°Ç ÁÁÀº °ÍÀ¸·Î ¾Ë°í ÀÖ´Ù. ±×·¯³ª 80486ÀÌ ³ª¿Â ÀÌÈķκÎÅÍ ¸Þ¸ð¸® ¾×¼¼½º°¡ ¹«Á¶°Ç ÁÁ´Ù´Â ¸íÁ¦´Â °ÅÁþÀÌ µÇ¾ú´Ù. ÇöÀç ³ª¿ÍÀÖ´Â CPUµéÀº ¿ö³« »¡¶ó¼ Àû¾îµµ µÎ ·¹º§ÀÇ ¸Þ¸ð¸® ij½Ã°¡ ÇÊ¿äÇÏ´Ù. ¼ö KB Á¤µµ µÇ´Â L1 ij½Ã´Â CPU ¹Ù·Î ¿·¿¡ ºÙ¾îÀֱ⠶§¹®¿¡, ³»¿ëÀ» Àоî¿À´Â µ¥ 1 »çÀÌŬÀÌ¸é µÇÁö¸¸, ¼ö¹é KB Á¤µµ µÇ´Â L2 ij½Ã´Â Àоî¿À´Âµ¥ 4~7 »çÀÌŬÀ» ÇÊ¿ä·Î ÇÑ´Ù. ±×¸®°í ½ÇÁ¦ RAMÀ» Àоî¿À´Â ÀÛ¾÷Àº ¼ö½Ê »çÀÌŬÀ» ÇÊ¿ä·Î ÇÑ´Ù. RAM¿¡¼ µ¥ÀÌÅ͸¦ Àоî¿À´Â ÀÛ¾÷Àº °ð 100 »çÀÌŬ ÀÌ»óÀÌ °É¸®°Ô µÉ °ÍÀÌ´Ù. CPU ij½Ã´Â ¿©·¯ ¸é¿¡¼, Á¶±×¸Ä°í ºü¸¥ °¡»ó ÆÄÀÏ ½Ã½ºÅÛ°ú ºñ½ÁÇÏ´Ù.
ij½Ã ¸Þ¸ð¸®¿¡¼ °ü½ÉÀÖ°Ô ´Ù·ç´Â °¡Àå ÀÛÀº ´ÜÀ§´Â ÇϳªÀÇ ¹ÙÀÌÆ®°¡ ¾Æ´Ï¶ó, ij½Ã ¶óÀÎÀÌ´Ù. ÆæÆ¼¾öÀÇ °æ¿ì¿¡´Â 32 ¹ÙÀÌÆ®, ¾ËÆÄ °°Àº °æ¿ì¿¡´Â 64 ¹ÙÀÌÆ®´Ù. Áï 8KB Å©±âÀÇ L1 ij½ÃÀÇ °æ¿ì, °Ü¿ì 512°³ÀÇ ÄÚµå¿Í µ¥ÀÌÅͰ¡ Á¸ÀçÇÒ ¼ö ÀÖ´Ù´Â ¸»ÀÌ´Ù. °°ÀÌ »ç¿ëµÇ´Â µ¥ÀÌÅͰ¡ ij½Ã ¸Þ¸ð¸®¿¡ °°ÀÌ Á¸ÀçÇÏÁö ¾ÊÀ» °æ¿ì, ¼º´ÉÀ» »ó´çÈ÷ ¶³¾î¶ß¸± ¼ö ÀÖ´Ù. ÀÌ´Â ¹è¿(µ¥ÀÌÅͰ¡ °ÅÀÇ ÀÎÁ¢ÇØÀÖ´Â...)°ú ¸®½ºÆ®(µ¥ÀÌÅͰ¡ »ó´çÈ÷ ¶³¾îÁ® ÀÖÀ» ¼ö ÀÖ´Â...)ÀÇ ¼Óµµ Â÷À̰¡ ²Ï Ä¿Áú ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù.
µ¥ÀÌÅͰ¡ °°Àº ij½Ã ¶óÀο¡ Á¸ÀçÇÒ ¼ö ÀÖµµ·Ï ¾ÐÃàÇÏ´Â °ÍÀº º¸Åë ¼º´É Çâ»ó¿¡ µµ¿òÀÌ µÈ´Ù. ÇÏÁö¸¸ ÀÌ´Â CPU°¡ ¿©·¯°³ÀÎ »óȲ¿¡¼´Â ¿ÀÈ÷·Á ¼º´ÉÀ» ¶³¾î¶ß¸± ¼ö ÀÖ´Ù. °¢°¢ÀÇ CPU ij½Ã¿¡ ÀÖ´Â ¸Þ¸ð¸®¸¦ µ¿±âÈÇϱâ À§Çؼ, ·Î¿ì ·¹º§ÀÇ ¸Þ¸ð¸® ½Ã½ºÅÛÀÌ ÀÛµ¿ÇØ¾ß Çϱ⠶§¹®ÀÌ´Ù. ¿¹¸¦ µé¾î ÀÓÀÇÀÇ µ¥ÀÌÅ͸¦ ´Ù¸¥ CPUµéÀº Àбâ Àü¿ëÀ¸·Î »ç¿ëÇϰí Àִµ¥, ÇϳªÀÇ CPU°¡ ±× µ¥ÀÌÅ͸¦ °è¼Ó º¯°æÇÑ´Ù¸é, ±× º¯°æ »çÇ×ÀÌ ´Ù¸¥ CPUµé¿¡°Ôµµ ÀüÆÄµÇ¾î¾ßÇϹǷΠ´À·ÁÁú ¼ö ¹Û¿¡ ¾ø´Â °ÍÀÌ´Ù. Áï ÀÌ·± °æ¿ì ¿ÀÈ÷·Á ÇϳªÀÇ Ä³½Ã ¶óÀο¡ µ¥ÀÌÅͰ¡ ¾ÐÃàµÇ¾î ÀÖ´Â °Íº¸´Ù´Â ÆÛÁ®ÀÖ´Â °ÍÀÌ µµ¿òÀÌ µÉ ¼ö ÀÖ´Ù.
¼Óµµ¸¦ À§ÇÑ ÃÖÀûȺ¸´Ù´Â °ø°£À» À§ÇÑ ÃÖÀûȰ¡ ´õ È¿À²ÀûÀÌ´Ù. ÀÛÀº ÄÚµå´Â ÀûÀº ¼öÀÇ ÆäÀÌÁö¸¦ Â÷ÁöÇϰí, ÆäÀÌÁö ÆúÆ®ÀÇ È½¼ö¸¦ ÁÙÀ̸ç, ÀûÀº ij½Ã ¶óÀο¡ µé¾î°¥ ¼ö ÀÖ°Ô µÈ´Ù. ÇÏÁö¸¸ À§¿¡¼µµ ¾ð±ÞÇßµíÀÌ ¾î¶² °æ¿ì, ¼Óµµ ÂÊ¿¡ °ü½ÉÀ» ±â¿ïÀÌ´Â °ÍÀÌ ³ªÀº °æ¿ì°¡ ÀÖ´Ù. ÀÌ µÑÀ» ±¸º°Çϱâ À§Çؼ´Â ÇÁ·ÎÆÄÀÏ·¯¸¦ »ç¿ëÇ϶ó.
3.3 ÀÚÁÖ »ç¿ëµÇ´Â µ¥ÀÌÅ͸¦ Àý´ë ij½ÌÇÏÁö ¸¶¶ó.
ij½ÌÀ̶õ °³³äÀº ¾î¶² ¾ÖÇø®ÄÉÀ̼ǿ¡¼µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. °á°ú°ªÀ» ÀÚÁÖ »ç¿ëÇÏÁö¸¸, ½Ã°£ÀÌ ¿À·¡ °É¸®´Â °è»êÀÌ ÀÖ´Ù¸é ±× °á°ú°ªÀ» ¸Þ¸ð¸® ¾îµò°¡¿¡ ÀúÀåÇØµÎ´Â °ÍÀÌ´Ù. °íÀüÀûÀÎ ½Ã°£°ú °ø°£ÀÇ Å¸Çù(tradeoff)ÀÌ´Ù. ¸Þ¸ð¸®¸¦ Èñ»ýÇØ ¼Óµµ¸¦ ¾ò´Â °ÍÀÌ´Ù. À߸¸ »ç¿ëÇÏ¸é ±²ÀåÈ÷ È¿À²ÀûÀ¸·Î ¼º´ÉÀ» ²ø¾î¿Ã¸± ¼ö ÀÖ´Ù.
ÇÏÁö¸¸ ij½ÃÇÒ µ¥ÀÌÅ͸¦ ÆÇ´ÜÇÒ ¶§´Â ³ÃÁ¤ÇؾßÇÑ´Ù. º° ÇÊ¿ä¾ø´Â µ¥ÀÌÅ͸¦ ij½ÌÇÏ´Â °ÍÀº ¸Þ¸ð¸®¸¸ ³¶ºñÇÏ´Â °ÍÀÌ´Ù. ij½Ã¸¦ ³Ê¹« ¸¹ÀÌ »ç¿ëÇϸé, ´Ù¸¥ ÀÛ¾÷À» À§ÇÑ ¸Þ¸ð¸®°¡ ÁÙ¾îµç´Ù. ij½Ã¸¦ ³Ê¹« Àû°Ô ÀâÀ¸¸é ij½Ã¸¦ ¾´ ÀÌÀ¯°¡ ºÒºÐ¸íÇØÁø´Ù. ¼¹öÀÇ °æ¿ì ´ëºÎºÐ °ø°£º¸´Ù´Â ½Ã°£À» ¿ì¼±½ÃÇϹǷÎ, µ¥½ºÅ©Å¾ ¾ÖÇø®ÄÉÀ̼Ǻ¸´Ù ij½Ã¸¦ »ç¿ëÇÏ´Â ºóµµ°¡ Àæ´Ù. ij½Ã¸¦ °»½ÅÇÏ´Â °ÍÀ» ÀØÁö ¾Êµµ·Ï ÇØ¶ó. À߸øµÈ ³»¿ëÀ» °¡Áø ij½Ã´Â ¾ø´À´Ï¸¸ ¸øÇÏ´Ù.
3.4 ¸¹Àº ½º·¹µå¸¦ »ý¼ºÇ϶ó. ¸¹À»¼ö·Ï ÁÁ´Ù.
½º·¹µå ¼ýÀÚ¸¦ Æ©´×ÇÏ´Â °ÍÀº ¼¹ö ¼º´É¿¡ ¾öû³ ¿µÇâÀ» ³¢Ä£´Ù. ¸¸ÀÏ ½º·¹µå°¡ IO ÀÛ¾÷°ú ¹ÐÁ¢ÇÏ°Ô °ü·ÃµÈ ½º·¹µå¶ó¸é, ±× ½º·¹µåµéÀº ´ëºÎºÐÀÇ ½Ã°£À» ºí·¯Å· »óÅ·Πº¸³¾ °ÍÀÌ´Ù. À̸¦ °³¼±Çϱâ À§ÇØ ½º·¹µåÀÇ ¼ýÀÚ¸¦ ´Ã¸®¸é ´ÜÀ§ ½Ã°£´ç 󸮷®À» ´Ã¸®´Â µ¥´Â µµ¿òÀÌ µÉ °ÍÀÌ´Ù. ±×·¯³ª ÀÌ·± ½ÄÀ¸·Î ½º·¹µå ¼ýÀÚ¸¦ ³Ê¹« ´Ã¸®°Ô µÇ¸é, ÄÁÅØ½ºÆ® ½ºÀ§Ä¡ ¹®Á¦ ¶§¹®¿¡ ¿ÀÈ÷·Á ¼¹ö ¼º´ÉÀ» ¶³¾î¶ß¸®°Ô µÈ´Ù. ÄÁÅØ½ºÆ® ½ºÀ§Ä¡´Â ¸» ±×´ë·Î ¿À¹öÇìµå(overhead)·Î¼ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Ã³¸®ÇÏ´Â ÀÏ¿¡ µµ¿ò ÁÖ´Â °ÍÀÌ ¾Æ¹« °Íµµ ¾ø´Ù. ¹«¾ùº¸´Ùµµ ÄÁÅØ½ºÆ® ½ºÀ§Ä¡°¡ ÀϾ °æ¿ì, CPU ij½Ã¿¡ ÀÖ´Â ³»¿ëµéÀÌ ¾µ¸ð¾ø¾îÁø´Ù. À̵éÀ» ±³Ã¼ÇÏ´Â °ÍÀº °áÄÚ ºñ¿ëÀÌ Àû°Ô µå´Â ÀÏÀÌ ¾Æ´Ï´Ù.
½º·¹µå ¼ýÀÚ´Â ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Á¶¿¡ µû¶ó ´Þ¶óÁø´Ù. Ŭ¶óÀÌ¾ðÆ® Çϳª´ç ½º·¹µå Çϳª´Â ´ëºÎºÐÀÇ °æ¿ì ¾µ¸ð°¡ ¾ø´Ù. Ŭ¶óÀÌ¾ðÆ® ¼ýÀÚ°¡ ¸¹¾ÆÁú °æ¿ì, ¼º´ÉÀÌ ±âÇϱ޼öÀûÀ¸·Î ¶³¾îÁø´Ù. ½º·¹µå Ç®¸µ ¸ðµ¨ÀÌ À̺¸´Ù´Â ³´´Ù. Windows 2000 À̻󿡼´Â
QueueUserWorkItem
½º·¹µå Ç®¸µ °ü·Ã API¸¦ Á¦°øÇϱ⠶§¹®¿¡ À̸¦ ÀÌ¿ëÇÏ¸é ½º·¹µå Ç®À» ÀÚü Á¦ÀÛÇÏ´Â ¼ö°í¸¦ ´ú ¼ö ÀÖ´Ù.
3.5 µ¥ÀÌÅÍ¿¡´Ù°¡ Àü¿ª ¶ôÀ» »ç¿ëÇ϶ó.
µ¥ÀÌÅ͸¦ ½º·¹µå ¼¼ÀÌÇÁÇÏ°Ô ¸¸µå´Â °¡Àå ½¬¿î ¹æ¹ýÀº ¶ôÀ» ´Ü Çϳª¸¸ µÎ°í, µ¥ÀÌÅ͸¦ ¾×¼¼½ºÇÏ´Â ¸ðµç ÇÔ¼ö¿¡¼ ±× ¶ôÀ» ÅëÇØ µ¥ÀÌÅÍ¿¡ Á¢±ÙÇÏ°Ô ÇÏ´Â °ÍÀÌ´Ù. ÇÏÁö¸¸ ÀÌ ¹æ¹ýÀº ½º·¹µåÀÇ ½ÇÇàÀ» Á÷·ÄȽÃÄѹö¸®±â ¶§¹®¿¡ ¹®Á¦°¡ ÀÖ´Ù. ¸ðµç ½º·¹µå°¡ °°Àº µ¥ÀÌÅ͸¦ »ç¿ëÇÏ´Â »óȲ¿¡¼ ÀÌ·± ½ÄÀ¸·Î ¶ôÀ» µÎ°Ô µÇ¸é, Àüü ÇÁ·Î±×·¥ÀÌ ´Ü ÇϳªÀÇ ½º·¹µå¸¸ »ç¿ëÇÏ´Â ²ÃÀÌ µÇ¾î¹ö¸®´Â °ÍÀÌ´Ù.
¶ô¿¡ ÀÇÇÑ ¼º´É ÀúÇϸ¦ ¸·´Â ¹æ¹ýÀº ¿©·¯ °¡Áö°¡ ÀÖ´Ù.
³Ê¹« ¹æ¾îÀûÀÎ Äڵ带 Â¥Áö ¸¶¶ó. Áï ÇÊ¿äÇÏÁö ¾ÊÀº µ¥ÀÌÅÍ¿¡´Ù°¡ ¶ôÀ» »ç¿ëÇÏÁö ¸»¶ó.
µ¥ÀÌÅÍ¿¡´Ù°¡ ¶ôÀ» °É ¶§µµ ÇÊ¿äÇÒ ¶§ °É°í, ¹Ù·Î Ç®¾î¾ß ÇÑ´Ù. ±æ´Ù¶õ ÄÚµå Á¦ÀÏ À§¿¡¼ ¶ôÀ» °É°í, ±× ÄÚµåÀÇ Á¦ÀÏ ¹ØºÎºÐ¿¡¼ ¶ôÀ» Ǫ´Â °ÍÀº ÁÁÀº Äڵ尡 ¸ø µÈ´Ù.
µ¥ÀÌÅ͸¦ ¿©·¯ °³·Î ºÐÇÒÇϰí, ¶ôµµ ¿©·¯ °³¸¦ »ç¿ëÇ϶ó.
¿¹¸¦ µé¾î µ¥ÀÌÅ͸¦ ¾ËÆÄºª ù±ÛÀÚ °°Àº °ÍÀ¸·Î ºÐÇÒÇϰí, ±× ¼ö¿¡ ¸¹°Ô ¶ôÀ» µÎ¸é, ÇϳªÀÇ ½º·¹µå°¡ A ¿µ¿ª¿¡¼ ÀÛ¾÷À» ÇÏ´Â µ¿¾È ´Ù¸¥ ½º·¹µå°¡ Z ¿µ¿ª¿¡¼ ÀÛ¾÷ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.
InterlockedXXX °è¿ÀÇ API¸¦ »ç¿ëÇ϶ó.
ÀÌ ÇÔ¼öµéÀº CPU º¥´õ°¡ Á¦°øÇÏ´Â ¿¬»êÀ» »ç¿ëÇϱ⠶§¹®¿¡ ´Ù¸¥ ¶ô ¿¬»êº¸´Ù ÈξÀ ºü¸£´Ù. ±×·¯¹Ç·Î ¶ôÀ» ÇÊ¿ä·Î ÇÏ´Â µ¥ÀÌÅͰ¡ °£´ÜÇÑ °ÍÀÏ °æ¿ì, À̵éÀ» »ç¿ëÇÏ´Â °ÍÀÌ ³´´Ù.
µ¥ÀÌÅͰ¡ ÀÚÁÖ º¯°æµÇÁö ¾Ê´Â´Ù¸é multi-reader/single-write ¶ôÀ» »ç¿ëÇ϶ó.
writer°¡ ¶ôÀ» ¾òÁö ¸øÇÏ´Â Çö»ó(starvation)¿¡¸¸ ÁÖÀÇÇϸé Á» ´õ ³ªÀº ¼º´ÉÀ» ¾òÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù.
Å©¸®Æ¼Äà ¼½¼ÇÀ» »ç¿ëÇÏ´Â °æ¿ì, ½ºÇÉ Ä«¿îÆ®¸¦ °°ÀÌ »ç¿ëÇÏ´Ù.
Windows NT 4.0 ¼ºñ½ºÆÑ 3 ÀÌÈÄ·Î ¼Ò°³µÈ
SetCriticalSectionSpinCount
API¸¦ Âü°íÇ϶ó.
TryEnterCriticalSection
ÇÔ¼ö¸¦ »ç¿ëÇØ¼ ¶ôÀ» ¾òÁö ¸øÇÏ´Â °æ¿ì, ¹º°¡ À¯¿ëÇÑ ÀÏÀ» Ç϶ó.
ÀæÀº º´¸ñÀº ÇÁ·Î±×·¥À» Á÷·ÄȽÃÄѹö¸°´Ù. ±×¸®°í ÀÌ´Â CPU »ç¿ë·üÀ» ¶³¾î¶ß¸°´Ù. À̸¦ º¸°í ¾Æ¹« »ý°¢ ¾øÀÌ ½º·¹µå¸¦ Ãß°¡Çϸé, ¿ÀÈ÷·Á ¹®Á¦¸¦ ´õ ½ÉȽÃŰ°Ô µÈ´Ù.
3.6 ´ÙÁß ÇÁ·Î¼¼¼ ¸Ó½Å¿¡ ´«µ¶µéÀÌÁö ¸¶¶ó.
´ç½ÅÀÌ ¸¸µç ÇÁ·Î±×·¥ÀÌ ´ÙÁß ÇÁ·Î¼¼¼ ȯ°æ¿¡¼ ´õ ´À¸®°Ô µ¹¾Æ°¡´Â °ÍÀ» º¸´Â °ÍÀº ±âºÐ ³ª»Û ÀÏÀÌ´Ù. CPU°¡ N°³¶ó¸é 1°³ÀÎ ½Ã½ºÅÛº¸´Ù N¹èÀÇ ¼º´ÉÀÌ ³ª¿Í¾ßÇÑ´Ù°í »ý°¢Çϴµ¥ ¸»ÀÌ´Ù. ¼º´ÉÀÌ ¶³¾îÁö´Â ÀÌÀ¯´Â ÁÖ·Î º´¸ñ Çö»ó ¶§¹®ÀÌ´Ù. ¶ô¿¡ ÀÇÇÑ º´¸ñ, ¹ö½º¿¡ ÀÇÇÑ º´¸ñ, ij½Ã ¶óÀο¡ ÀÇÇÑ º´¸ñ µîµî. ÇÁ·Î¼¼¼°¡ ½ÇÁ¦ ÀÛ¾÷À» ó¸®ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, ¸®¼Ò½º¸¦ Â÷ÁöÇϱâ À§ÇÑ ½Î¿ò¸¸À» óÀýÇÏ°Ô Çϰí ÀÖ´Â °ÍÀÌ´Ù.
¸ÖƼ ½º·¹µå ¾ÖÇø®ÄÉÀ̼ÇÀ» ÁøÁöÇÏ°Ô °³¹ßÇϰíÀÚ ÇÑ´Ù¸é, ´ÙÁß ÇÁ·Î¼¼¼ ȯ°æ¿¡¼ ½ºÆ®·¹½º Å×½ºÆ®³ª ¼º´É Å×½ºÆ®¸¦ ÇØ¾ß ÇÑ´Ù. ÇÁ·Î¼¼¼°¡ 1°³ÀÎ »óȲ¿¡¼ÀÇ µ¿½Ã¼º(concurrency)Àº ȯ¿µÀÏ »ÓÀ̱⠶§¹®ÀÌ´Ù.
3.7 ºí·ÎÅ· ÇÔ¼ö¸¸À» »ç¿ëÇ϶ó. Àç¹ÌÀÖ´Ù.
IO¸¦ ÇàÇÏ´Â ºí·ÎÅ· ÇÔ¼öµéÀº ´ëºÎºÐÀÇ µ¥½ºÅ©Å¾ ¾ÖÇø®ÄÉÀ̼ǿ¡´Â Àû´çÇÏ´Ù. ÇÏÁö¸¸ ¼¹öÀÇ °æ¿ì ºí·ÎÅ· ÇÔ¼ö¸¦ »ç¿ëÇϸé, ¼º´ÉÀ» ¶³¾î¶ß¸®´Â ÁÖ¿äÇÑ ¿äÀÎÀÌ µÈ´Ù. º¸Åë IO´Â ³¡³ª´Â µ¥±îÁö ¼ö¹é¸¸ »çÀÌŬÀ» ÇÊ¿ä·Î Çϰí, ÀÌ ½Ã°£ µ¿¾È ´Ù¸¥ Ŭ¶óÀÌ¾ðÆ®µéÀº ¾Æ¹« °Íµµ ÇÒ ÀÏ ¾øÀÌ ±â´Ù¸®°Ô µÇ±â ¶§¹®ÀÌ´Ù. ÇÁ·Î±×·¥ÀÇ ±¸Á¶°¡ Á» ´õ º¹ÀâÇØÁö°ÚÁö¸¸, ºñµ¿±â IO¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ³ªÀº ¹æ¹ýÀÌ´Ù.
ºí·ÎÅ· ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ¹Û¿¡ ¾ø´Ù¸é ½º·¹µå¸¦ »ç¿ëÇ϶ó. ´ëºÎºÐ ³Ê¹« ¸¹Àº ½º·¹µå¸¦ »ý¼ºÇÏ´Â °ÍÀº ÁÁÁö ¾Ê°í, ÀûÀº ¼öÀÇ Á¦ÇÑµÈ ½º·¹µå¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ³´´Ù. ±× Áß¿¡ Çϳª´Â IO ÀÛ¾÷À» ½ºÄÉÁ층Çϰí, ³ª¸ÓÁö ½º·¹µåµéÀÌ ½ÇÁ¦ IO ÀÛ¾÷À» ó¸®ÇÏ°Ô ÇÏ´Â °ÍÀÌ´Ù.
3.8 ÃøÁ¤ÇÏÁö ¸¶¶ó.
´ç½ÅÀÌ ¸»ÇÏ´Â °ÍÀ» ÃøÁ¤ÇÒ ¼ö ÀÖ´Ù¸é, ±×¸®°í ±×°ÍÀ» ¼ýÀڷΠǥÇöÇÒ ¼ö ÀÖ´Ù¸é, ´ç½ÅÀº ±×°Í¿¡ ´ëÇØ¼ ¹º°¡ ¾Æ´Â °ÍÀÌ´Ù. ÇÏÁö¸¸ ¼ýÀڷΠǥÇöÇÒ ¼ö ¾ø´Ù¸é ´ç½ÅÀÇ Áö½ÄÀº ºó¾àÇÏ¸ç ºÒÃæºÐÇÑ °ÍÀÌ´Ù. ¹«¾ð°¡¸¦ ¼ýÀڷΠǥÇöÇÏ´Â °ÍÀº Áö½ÄÀÇ ½ÃÀÛÀÏ »Ó¸¸ ¾Æ´Ï¶ó, ´ç½ÅÀÇ »ý°¢ÀÌ °úÇп¡ ÇÑ °ÉÀ½ ´Ù°¡°¬´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
- Lord Kelvin (William Thomson)
ÃøÁ¤À» ÇÏÁö ¾Ê°í´Â ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼º´ÉÀ» ¾Ë ¼ö ¾ø´Ù. ¾îµð°¡ ´À¸®°í ºü¸¥Áö, ´ëÃæ ÁüÀÛÇØ¼ ´õµëÀ» »ÓÀÌ´Ù. ÀÌ·¡¼¾ß Á¦´ë·Î µÈ ¼º´É °³¼± °èȹÀ» ¼¼¿ï ¼ö ÀÖÀ» ¸®°¡ ¾ø´Ù.
ÃøÁ¤¿¡´Â ºí·¢ ¹Ú½º Å×½ºÆÃ°ú ÇÁ·ÎÆÄÀÏÀÌ ÀÖ´Ù. ºí·¢ ¹Ú½º Å×½ºÆÃÀ¸·Î´Â ¸Þ¸ð¸® »ç¿ë·®, ÄÁÅØ½ºÆ® ½ºÀ§Ä¡, CPU »ç¿ë·® µî ¿ÜºÎÀûÀ¸·Î µå·¯³ª´Â »çÇ×À» ¾Ë ¼ö ÀÖ°í, ÇÁ·ÎÆÄÀϸµÀ¸·Î´Â ½ÇÇà ½Ã°£, ÇÔ¼ö È£Ãâ ºóµµ µîÀ» ¾Ë ¼ö ÀÖ´Ù.
ºÐ¼® ¾ø´Â ÃøÁ¤Àº º°·Î ¾µµ¥°¡ ¾ø´Ù. ÃøÁ¤Àº ¾îµð¿¡ ¹®Á¦°¡ ÀÖ°í, ±× ¹®Á¦¸¦ °í¸³½ÃŰ´Â °Í±îÁö´Â ÇØÁÖÁö¸¸, ¿Ö ¹®Á¦°¡ »ý°å´ÂÁö ¾Ë·Á¸é ºÐ¼®À» ÇØ¾ßÇÑ´Ù.
¾ÖÇø®ÄÉÀ̼ÇÀ» º¯°æÇß´Ù¸é, »õ·Î ÃøÁ¤À» ÇØ¶ó. º¯°æÀÌ È¿°ú°¡ ÀÖ¾ú´ÂÁö ¾Ë ¼ö ÀÖ´Ù. º¯°æÀº ´Ù¸¥ ¹®Á¦¸¦ ¹ß»ý½Ãų ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. º¯°æÇßÀ» ¶§ ¸»°íµµ Á¤±âÀûÀ¸·Î ÃøÁ¤À» ÇÏ´Â °ÍÀÌ ÁÁ´Ù.
3.9 ÇϳªÀÇ Å¬¶óÀÌ¾ðÆ®°¡ º¸³»´Â ÇϳªÀÇ ¿äû¸¸À¸·Î Å×½ºÆ®Ç϶ó.
¼¹ö ÇÁ·Î±×·¥À» Á¦ÀÛÇÏ´Â °æ¿ì ÇϳªÀÇ Å¬¶óÀÌ¾ðÆ®¸¸À» ºÙ¿©¼ Å×½ºÆÃÇÏ´Â °ÍÀº ÁÁÁö ¾Ê´Ù. ¿©·¯ Ŭ¶óÀÌ¾ðÆ®°¡ ÀÖ¾î¾ß¸¸ ¹ß»ýÇÏ´Â ¹®Á¦°¡ Çã´ÙÇϱ⠶§¹®ÀÌ´Ù. ¶ÇÇÑ ¼º´É°ú °ü·ÃµÈ ºÎºÐ¿¡ À־ °ÅÀÇ ¾Æ¹« °Íµµ Å×½ºÆ®ÇÒ ¼ö°¡ ¾ø´Ù. ¼¹ö ÇÁ·Î±×·¥À» Å×½ºÆ®ÇÒ ¶§´Â ¹Ýµå½Ã °¡»ó Ŭ¶óÀÌ¾ðÆ®¸¦ ¸¸µé¾î µ¿½Ã¿¡ ¿©·¯ °³¸¦ ºÙ¿©³õ°í Å×½ºÆ®Ç϶ó.
3.10 ½ÇÁ¦ ¼¼°è¿¡¼ ÀϾ´Â ÀϵéÀ» »ý°¢ÇÏÁö ¸¶¶ó.
¸î°³ ¾ÈµÇ´Â ÀΰøÀûÀÎ ½Ã³ª¸®¿À¸¸À» º¸°í, ¿¹¸¦ µé¾î ¾î¶² º¥Ä¡¸¶Å© °°Àº °ÍÀ» º¸°í ÇÁ·Î±×·¥À» Æ©´×ÇÏ´Â °ÍÀº ÀÚÁÖ ºüÁú ¼ö ÀÖ´Â ÇÔÁ¤ÀÌ´Ù. ±×·± ½Ã³ª¸®¿À¸¦ ³Ð°Ô º¸°í, ½ÇÁ¦ ¼¼°è¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â ºÎºÐ¸¸À» »Ì¾Æ³»´Â °ÍÀÌ ÁÁ´Ù.
CategoryOptimization
FindPage
by browsing, title search
, text search
or an index
Or try one of these actions:
AttachFile
,
DeletePage
,
LikePages
,
LocalSiteMap
,
RenamePage
,
SpellCheck
SeriousMoin
v1 (
koMoinMoin
1.0a4 Modified)