|
¢ÑReducing Contention for Dispatcher Processes
¡Ü dispatcher process¿¡ ´ëÇÑ contentionÀ» Á¤ÀÇÇÏ´Â ¹æ¹ý
¡Ü dispatcher process¸¦ Ãß°¡ÇÏ´Â ¹æ¹ý
¢À Identifying Contention for Dispatcher Processes
¢º dispatcher processes¿¡ ´ëÇÑ contentionÀº ¾Æ·¡ÀÇ Â¡ÈÄ¿¡ ÀÇÇØ¼ ¾Ë°ÔµÈ´Ù.
¡¤ dispatcherÀÇ ³ôÀº »ç¿ëÀ²
¡¤ dispatcher°¡ ÀÀ´äÅ¥(Response Queue)ÀÇ È¸´äÀ» ±â´Ù¸®´Â ½Ã°£ÀÇ °è¼ÓÀûÀÎ Áõ°¡.
¡Ü Examing Busy Rates for Dispatcher Processes
¢º Dispatcher processÀÇ Çൿ¿¡ ´ëÇÑ statistics´Â µ¿Àû performance table V$DISPATCHER¿¡ ³ªÅ¸³´Ù.
¢º ÀÌ Å×À̺íÀº SYS À¯Àú¿Í SYSTEM¿Í °°Àº SELECT ANY TABLE ½Ã½ºÅÛ ±ÇÇÑÀ» °¡Áø ´Ù¸¥ À¯Àúµé¸¸ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¡¤ IDLE : ÀÌ Ä®·³Àº dispatcher process¸¦ À§ÇÑ idle timeÀ» ¹éºÐÀÇ ¸îÃʷμ º¸¿©ÁØ´Ù.
¡¤ BUSY : ÀÌ Ä®·³Àº dispatcher process¸¦ À§ÇÑ busy timeÀ» ¹éºÐÀÇ ¸îÃʷμ º¸¿©ÁØ´Ù.
¡¤SELECT network "Protocol", SUM(busy) / ( SUM(busy) + SUM(idle) ) "Total Busy Rate"
FROM v$dispatcher
GROUP BY network;
¢º ÀÌ ÁúÀÇ´Â °¢ ÇÁ·ÎÅäÄÝÀÇ dispatcher process¸¦ À§ÇÑ ÃÑ busy rate¸¦ ¹Ýȯ
¢º °á°ú´Â
Protocol Total Busy Rate
------------------ --------------------------
DECnet .004589828
TCP .029111042
¢º ÀÌ °á°ú·ÎºÎÅÍ ¾Æ·¡¿Í °°Àº ¸î°³ÀÇ °ßÇØ¸¦ ¸¸µé ¼ö ÀÖ´Ù.
¡¤ DECnet dispatcher process´Â °ÅÀÇ ½Ã°£´ç 0.5%¾¿ ¹Ù»Ú´Ù.
¡¤ TCP dispatcher process´Â °ÅÀÇ ½Ã°£´ç 3%¾¿ ¹Ù»Ú´Ù.
¢º ¸¸¾à Ưº°ÇÑ ÇÁ·ÎÅäÄÝÀÇ dispathcher process°¡ ½Ã°£´ç 50%ÀÌ»ó¾¿ ¹Ù»Ú°Ô µÇ¸é, dispatcher process¸¦ Áõ°¡½ÃÅ´À¸·Î¼ ¼º´ÉÇâ»ó¿¡ ÁÁÀ» ¼ö ÀÖ´Ù.
¡Ü Examining Wait Times for Dispatcher Process Response Queues
¢º Dispatcher process¸¦ À§ÇÑ ÀÀ´ä Å¥ÀÇ ÇൿÀ» ¹Ý¿µÇÏ´Â statistics´Â µ¿ÀûÀÎ performance tableÀÎ V$QUEUE¿¡ ¾²¿©Áø´Ù.
¢º SYS À¯Àú¿Í SYSTEM¿Í °°Àº SELECT ANY TABLE ½Ã½ºÅÛ ±ÇÇÑÀ» °¡Áø ´Ù¸¥ À¯Àúµé¸¸ÀÌ »ç¿ë
¢º ÀÌ Ä®·³Àº Å¥¿¡ ÀÀ´äÀ» À§ÇÑ wait timeÀ» º¸¿©ÁØ´Ù.
¡¤WAIT : ÀÌ Ä®·³Àº Å¥¿¡ Á¸ÀçÇÏ´Â ¸ðµç ÀÀ´äµéÀ» À§ÇÑ ÃÑ wait timeÀ» ¹éºÐÀÇ ¸îÃʷμ º¸¿©ÁØ´Ù.
¡¤TOTALQÀÌ Ä®·³Àº Å¥¿¡ Á¸ÀçÇÑ ÀûÀÌ ÀÖ´Â ÀÀ´äÀÇ ÃÑ ¼ö¸¦ º¸¿©ÁØ´Ù.
¡¤SELECT network "Protocol",
DECODE( SUM(totalq), 0 ,'NO RESPONSES',
SUM(wait)/SUM(totalq) || 'hundredths of seconds ')
"Average Wait Time per Response"
FROM v$queue q, v$dispatcher d
WHERE q.type = 'DISPATCHER' AND q.paddr = d.paddr GROUP BY network ;
¢º ÀÌ ÁúÀÇ´Â ¹éºÐÀÇ ÀÏÃÊ ´ç °¢ dispatcher process¿¡ ÀÖ´Â ÀÀ´ä Å¥¿¡¼ user process¿¡ ÀÀ´äÀ» Àü´ÞÇϱâ À§ÇØ ÇϳªÀÇ ÀÀ´äÀÌ ±â´Ù¸®´Â Æò±Õ½Ã°£À» ¹ÝȯÇÑ´Ù.
¢º ÀÌ ÁúÀÇ´Â network protocol¿¡ ÀÇÇØ V$QUEUE Å×À̺íÀÇ ÇàµéÀ» ±×·ìÈÇÑ V$DISPATCHER Å×À̺íÀ» »ç¿ëÇÑ´Ù.
¢º ÀÌ ÁúÀÇ´Â ¶ÇÇÑ Å¥¿¡ ¾î¶°ÇÑ ÀÀ´äµµ ¾øÀ» °æ¿ì¸¦ À§Çؼ ÇÁ·ÎÅäÄÝÀ» ¾Ë¾Æº¼¼ö ÀÖ´Â DECODE syntax¸¦ »ç¿ëÇÑ´Ù.
¢º °á°ú´Â
Protocol Average Wait Time per Response
------------------ --------------------------
DECnet .1739130 hundredths of seconds
TCP No Response
¢º ÀÌ °á°ú·ÎºÎÅÍ, Å¥¿¡ ÀÖ´Â ÇϳªÀÇ ÀÀ´äÀº DECnet dispatcher process¿¡¼´Â Æò±ÕÀûÀ¸·Î õºÐÀÇ 0.17ÃÊ ¸¸Å ±â´Ù¸®°í, TCP dispatcher process¿¡¼´Â queue¿¡ ¾î¶² ÀÀ´äµµ °¡ÁöÁö ¾Ê´Â´Ù´Â °ÍÀ» ¾Ë¼ö ÀÖ´Ù.
¢º Ưº°ÇÑ ³×Æ®¿öÅ© ÇÁ·ÎÅäÄÝÀ» À§ÇÑ Æò±Õ wait timeÀÌ applicationÀÌ µ¿ÀÛÁßÀÏ ¶§ °íÁ¤ÀûÀ¸·Î °è¼Ó Áõ°¡µÈ´Ù¸é, dispatcher process¸¦ Ãß°¡½ÃÅ´À¸·Î¼ ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ¿ï °ÍÀÌ´Ù.
¢À Adding Dispatcher Processes
¢º ¿À¶óŬÀÌ ALTER SYSTEM ¸í·ÉÀÇ MTS_DISPATCHER parameter¸¦ runingÇÏ´Â µ¿¾È¿¡ dispatcher process¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Ù.
¢º dispatcher processÀÇ ÃÑ ¼ö´Â ÃʱâÈ parameterÀÎ MTS_MAX_DISPATCHERSÀÇ °ª¿¡ ÀÇÇØ ÇѰ谡 °áÁ¤µÈ´Ù.
¢º dispatcher process¸¦ Ãß°¡Çϱâ Àü¿¡ ÀÌ °ªÀ» Áõ°¡½ÃŰ´Â °ÍÀÌ ÇÊ¿ä
¢º ÀÌ parameterÀÇ default °ªÀÌ 5À̰í ÃÖ´ë °ªÀº operating system¿¡ µû¶ó º¯È½Ãų ¼ö ÀÖ´Ù.
¢ÑReducing Contention for Shared Server Porcesses
¡Ü shared server process¿¡ ´ëÇÑ contentionÀ» Á¤ÀÇÇÏ´Â ¹æ¹ý
¡Ü shared server processÀÇ ÃÖ´ë¼ö¸¦ Áõ°¡½ÃŰ´Â ¹æ¹ý
¢À Identifying Contention for Shared Server Processes
¢º shared server process¿¡ ´ëÇÑ ContentionÀº request query¿¡ ÀÖ´Â request¸¦ À§ÇØ ±â´Ù¸®´Â ½Ã°£ÀÌ °è¼ÓÀûÀ¸·Î Áõ°¡ÇÔÀ¸·Î ³ªÅ¸³´Ù.
¢º shared server process¸¦À§ÇÑ request Å¥ÀÇ ÇൿÀ» ¹Ý¿µÇÏ´Â statistics´Â µ¿Àû performance tableÀÎ V$QUEUE¿¡ ³ªÅ¸³´Ù.
¢º SYS À¯Àú ¿Í SYSTEM¿Í °°Àº SELECT ANY TABLE ½Ã½ºÅÛ ±ÇÇÑÀ» °¡Áø ´Ù¸¥ À¯Àúµé¸¸ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¢º ÀÌ Ä®·³Àº Å¥¿¡ ÀÀ´äÀ» À§ÇÑ wait timeÀ» º¸¿©ÁØ´Ù. À̵é Ä®·³Àº Å¥¿¡ ÀÖ´Â requestµéÀ» À§ÇÑ wait timeÀ» º¸¿©ÁØ´Ù.
¡¤WAIT :ÀÌ Ä®·³Àº Å¥¿¡ Á¸ÀçÇß´ø ÀûÀÌ ÀÖ´Â ¸ðµç requestµéÀ» À§ÇÑ ÃÑ waiting timeÀ» ¹éºÐÀÇ ¸îÃÊ·Î ³ªÅ¸³½´Ù.
¡¤BUSY : ÀÌ Ä®·³Àº Å¥¿¡ Á¸ÀçÇÑ ÀûÀÌ ÀÖ´Â requestÀÇ ÃѼö¸¦ º¸¿©ÁØ´Ù.
¡¤SELECT DECODE (totalq, 0, 'NO Requests', wait/totalq || 'hundredths of seconds')
"Average Wait Time Per Requests"
FROM v$queue
WHERE type = 'COMMON' ;
¢º ÀÌ ÁúÀÇ´Â request queue¿¡ ´ëÇÑ requestÀÇ ÃѼö¿Í ¸ðµç requests¿¡ ´ëÇÑ ÃÑ wait timeÀ» ¹Ýȯ
¢º °á°ú´Â
Average Wait Time Per Request
--------------------------------------------
.090909 hundredths of seconds
¢º À§ °á°ú·ÎºÎÅÍ ÇÑ request´Â ±×°ÍÀÌ Ã³¸®µÇ±âÀü¿¡ Å¥¿¡¼ Æò±Õ ¹éºÐÀÇ 0.09Ãʸ¦ ±â´Ù¸°´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.
¢º ¾Æ·¡ÀÇ ÁúÀǸ¦ ÅëÇØ¼ ¾ó¸¶³ª ¸¹Àº shared server process°¡ µ¿½Ã¿¡ µ¿ÀÛÇÏ´ÂÁö¸¦ °áÁ¤ÇÒ ¼ö ÀÖ´Ù.
¡¤SELECT COUNT(*) "Shared Server Processes"
FROM v$shared_servers
WHERE status != 'QUIT';
¢º °á°ú´Â
Shared Server Processes
--------------------------------------------
10
¢À Adding Shared Server Processes
¢º Á¸ÀçÇÏ´Â shared server process¿¡ ´ëÇÑ load°¡ Áõ°¡ÇÏ¸é ¿À¶óŬÀº ÀÚµ¿ÀûÀ¸·Î shared server process¸¦ Áõ°¡½Ã۴µ¥, ¸í½ÃÀûÀ¸·Î shared server process¸¦ ´õ ¸¹ÀÌ Ãß°¡½ÃÄÑ ´Ü¼øÇÏ°Ô ¼º´ÉÀ» Çâ»ó½ÃŰ´Â °ÍÀ» ÁÁÁö ¾Ê´Ù.
¢º ±×·¯³ª shared server processÀÇ ¼ö°¡ Ãʱâ parameter MTS_MAX_SERVERS¿¡ ÀÇÇØ ¼³Á¤µÈ ÇѰèÄ¡¿¡ ´ÞÇϰí request Å¥¿¡ ÀÖ´Â Æò±Õ wait timeÀÌ ¿©ÀüÈ÷ Áõ°¡Çϰí ÀÖ´Ù¸é MTS_MAX_SERVERS°ªÀ» Áõ°¡½ÃÅ´À¸·Î ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ´Ù.
¢º ÀÌ parameterÀÇ default°ªÀº 20À̰í ÃÖ´ë°ªÀº operating system¿¡ µû¶ó º¯ÇÒ ¼ö ÀÖ´Ù.
¢º ¿À¶óŬÀÌ ÀÚµ¿ÀûÀ¸·Î shared server process¸¦ Áõ°¡Çϰųª ¸í½ÃÀûÀ¸·Î ¾Æ·¡ ¹æ¹ýÁß Çϳª¸¦ ÅëÇØ¼ shared process¸¦ Áõ°¡½Ãų¼ö ÀÖ´Ù.
¡¤Ãʱâ parameterÀÎ MTS_SERVERS
¡¤ALTER SYSTEM ¸í·ÉÀÇ MTS_SERVERS parameter
|