Ò».ÐÔÄÜÆÊÎö¹¦ÄܽéÉÜ
1.ÐÔÄÜÆÊÎö¹¦ÄܵÄÔÀí¼òÊö
ÐÔÄÜÆÊÎöÊÇÒ»¸öµÍÇ¿¶È·ÖÎö¹¤¾ß,¿ÉÒÔÓÃÔÚÉú²úÓ¦ÓóÌÐòÖÐʶ±ðÆ¿¾±¡£
ËüÊÇÔÚÖ¸¶¨Ê±¼ä·¶Î§£¨³ÖÐøÊ±¼ä£©ÄÚ¶¨Ê±£¨²ÉÑùÖÜÆÚ£©µÄµ÷ÓÃϵͳÖжϣ¬È»ºóÊÕ¼¯µ±Ç°µÄµ÷ÓÃÕ»£¨call stack
Trace£©ÐÅÏ¢£¬¼Ç¼µ÷ÓÃÕ»ÖгöÏֵĺ¯Êý¼°ÕâЩº¯ÊýµÄµ÷Óýṹ£¬»ùÓÚÕâЩÐÅÏ¢µÃµ½º¯ÊýµÄµ÷ÓùØÏµÍ¼¼°Ã¿¸öº¯ÊýµÄ
CPU ʹÓÃÐÅÏ¢¡£Í¨¹ýÕâЩÐÅÏ¢£¬ÎÒÃÇ¿ÉÒÔÇå³þµÄ¿´µ½Ê±¼äÊÇ»¨·ÑÔÚÄÄÒ»¸ö·½·¨µÄÄÄÒ»ÐÐÉÏ£¬´Ó¶øÓÐÕë¶ÔÐԵĽøÐдúÂëµÄÓÅ»¯¡£
ÏêϸÊý¾Ý½éÉÜ£ºÐÔÄÜÆÊÎöÏà¹ØÖªÊ¶
ÎÒÃǵÄAi²úÆ·ÖÐÓÐÁ½ÖÖ·½·¨¿ÉÒÔ½øÐÐÐÔÄÜÆÊÎöµÄÉèÖ㬷ֱðÊÇ Ó¦ÓÃ>tier>ÐÔÄÜÆÊÎö ÒÔ¼°
¹Ø¼üÊÂÎñ>ÐÔÄÜÆÊÎö¡£
2.Ó¦ÓÃ>tier>ÐÔÄÜÆÊÎö
Õë¶Ôµ¥¸öʵÀý£¬½øÐÐÏ̵߳Äץȡ¡£
ĬÈÏÉèÖ㺠³ÖÐøÊ±¼ä£º2min; ²ÉÑùÖÜÆÚ£º100ms ¿ÉÒÔ¸ù¾ÝÐèÒª½øÐе÷Õû¡£

ÆÊÎöÒ³Ãæ£º
ÆÊÎöÒ³Ãæ¼´Ï̷߳ÖÎöÒ³Ãæ£¬ÆäÖаüº¬ÐÔÄÜÆÊÎöµÄ¿ªÊ¼Ê±¼ä¡¢²ÉÑùÖÜÆÚ¡¢²ÉÑù´ÎÊý¡¢²ÉÑùÈËÒÔ¼°µ÷ÓÃÕ»ÐÅÏ¢¡£
µ÷ÓÃÕ»ÐÅÏ¢¿ÉÒÔ¸ù¾ÝÐèÒª½øÐÐÕ¹¿ªºÍÊÕËõ¡£
´Ë´¦µÄ°Ù·Ö±ÈÊǸù¾ÝÔÚ²ÉÑùÖÜÆÚÖÐ,¸ÃÐдúÂë×ܼƱ»²ÉÑùµ½µÄ´ÎÊýÓë×ܲÉÑù´ÎÊýµÄ°Ù·Ö±È¡£´úÂëºóÀ¨ºÅÖеÄÄÚÈÝÊǸôúÂëÔÚÊÂÎñÖеÄÐÐÊý¡£

3.¹Ø¼üÊÂÎñ>ÐÔÄÜÆÊÎö
¹Ø¼üÊÂÎñ>ÐÔÄÜÆÊÎö ץȡµÄ½á¹û ÊÇ Ó¦ÓÃ>tier>ÐÔÄÜÆÊÎö µÄÒ»¸ö×Ó¼¯¡£Õë¶ÔµÄÊÇ
Ñ¡¶¨Ì½Õë¶ÔÓ¦µÄ¹Ø¼üÊÂÎñ £¨Ò»ÀàÇëÇ󣩽øÐÐÏ̵߳Äץȡ¡£
¶ÔÓÚij¸ö¹Ø¼üÊÂÎñÀ´ËµÖ»ÄÜͬʱ¶Ô¶à¸ö²»Í¬Ì½Õë½øÐжà¸öÐÔÄÜÆÊÎö¡££¨Ò»¸ö̽ÕëÒ»´ÎÖ»ÄÜ×öÒ»¸öÐÔÄÜÆÊÎö£©

ĬÈÏÉèÖ㺠³ÖÐøÊ±¼ä£º60 min; ²ÉÑùÖÜÆÚ£º1000 ms ¿ÉÒÔ¸ù¾ÝÐèÒª½øÐе÷Õû¡£
×¢£º²ÉÑùÖÜÆÚºÍ³ÖÐøÊ±¼ä Ö»ÄÜÔÚ¿ªÊ¼´´½¨ÐÔÄÜÆÊÎöʱ½øÐÐÉ趨¡£

ÆÊÎöÒ³Ãæ£º
¹Ø¼üÊÂÎñµÄÐÂÄÜÆÊÎöÓÉ×ÜÀÀºÍÏ̷߳ÖÎöºÍÐÔÄÜÆÊÎöÐÅÏ¢£¨¶ÔÓ¦µÄ¹Ø¼üÊÂÎñºÍÓ¦ÓÃÃû³Æ£¬¿ªÊ¼Ê±¼ä¡¢×´Ì¬ºÍ²ÉÑù´ÎÊý£©¡£

×ÜÀÀÒ³Ãæ չʾÁËץȡµ½µÄÈ«²¿µÄtraceÊý¾ÝÒÔ¼°TraceÏìӦʱ¼ä·Ö²¼£¬ÏìӦʱ¼ä&ÍÌÍÂÁ¿£¬APP
Server BreakdownºÍºÄʱ×µÄͳ¼ÆµÈͼ±í¡£
ÏÂÃæÊÇ¿ÉÒÔ½øÐÐÉî¶ÈÁ´½Ó²Ù×÷µÄ¼òÒª×ܽ᣺

Ï̷߳ÖÎöÒ³Ãæ
µ÷ÓÃÕ»ÐÅÏ¢¿ÉÒÔ¸ù¾ÝÐèÒª½øÐÐÕ¹¿ªºÍÊÕËõ¡£
´Ë´¦µÄ°Ù·Ö±ÈÊǸù¾ÝÔÚ²ÉÑùÖÜÆÚÖÐ,¸ÃÐдúÂë×ܼƱ»²ÉÑùµ½µÄ´ÎÊýÓë×ܲÉÑù´ÎÊýµÄ°Ù·Ö±È¡£´úÂëºóÀ¨ºÅÖеÄÄÚÈÝÊǸôúÂëÔÚÊÂÎñÖеÄÐÐÊý¡£
Í£µ½Ä³¸öÀàµÄij¸ö·½·¨±ÈÈç get µÄ·½·¨,Ò»°ã¶¼ÊÇÓÉÓÚÔÚ½øÐÐÃܼ¯¼ÆËã,»òÕßµ÷ÓÃÊý¾Ý¿âµ«ÊÇÊý¾Ý¿â³¤Ê±¼äûÓзµ»Ø½á¹û,»òÕßÊý¾Ý¿âÖÐÓÐËø¡£Èç¹ûÊÇ
cpu Âý,¾Í»á³öÏÖÔÚÕâÀï;Èç¹ûÓÉÓÚËøµÈÔÒò,¾Í»á³öÏÖÔÚÏ̺߳ÍËøµÄ±êǩҳÖС£
ʱ¼ä·Ö²¼Í¼µÄ°Ù·Ö±È¼ÆË㣺 ¸ÃÐдúÂë×ܼƱ»²ÉÑùµ½µÄ´ÎÊýÓë×ܲÉÑù´ÎÊýµÄ°Ù·Ö±È
CPUʱ¼äͼµÄ°Ù·Ö±È¼ÆË㣺 ¸ÃÐдúÂë×ܼÆÔÚrunable״̬±»²ÉÑùµ½µÄ´ÎÊýÓë×ܲÉÑù´ÎÊýµÄ°Ù·Ö±È¡£ ¿ÉÒÔÀí½âÊǸ÷½·¨ÔÚÕâÀàÇëÇóÖеĶÔÓÚCPU¿ªÏúÕ¼±È¡£
Ï̺߳ÍËøÍ¼µÄ°Ù·Ö±È¼ÆË㣺¸ÃÐдúÂë×ܼÆÔÚnorunable״̬±»²ÉÑùµ½µÄ´ÎÊýÓë×ܲÉÑù´ÎÊýµÄ°Ù·Ö±È¡£ ¿ÉÒÔÀí½âÊǸ÷½·¨ÔÚÕâÀàÇëÇóÖеĶÔÓÚ´¦ÓÚblocked״̬ʱ¼äµÄÕ¼±È¡£

×¢£ºÈç¹ûÏëÒª½øÐÐ ¹Ø¼üÊÂÎñ>ÐÔÄÜÆÊÎö ÔòÐèÒªÔ¤ÏȽ«Òª½øÐÐÐÔÄÜÆÊÎöµÄWeb ÊÂÎñÉèΪ¹Ø¼üÊÂÎñ£¬ÇÒÐÔÄÜÆÊÎö½øÐÐʱ±ØÐëÈ·±£ÆÊÎöµÄ̽Õë¾ßÓгÖÐøµÄ·ÃÎÊ¡£
ÉèÖ÷½·¨ÈçÏ£¬

¶þ.ÎÒÓöµ½¹ýµÄÓû§°¸Àý·ÖÎö
1.ÎÊÌâÀàÐÍ£º¹ý¶È¼ÓÔØ¶¯Ì¬ÀർÖÂÐÔÄÜϽµ
ÎÊÌâÏÖÏó£º
¿Í»§ÔÚ½øÐÐÒ»´Î´óµÄ¸ºÔزâÊÔ£¬ÔÚ¸ºÔØÏàͬµÄÇé¿öÏ£¬Ó¦ÓõÄÏìӦʱ¼äÔÚ6¸öСʱ×óÓÒµÄʱ¼äÄÚÖð²½ÉÏÉý£¬×îÖÕÉÏÉýµ½ÁËÒ»¸ö²»¿ÉÈÝÈ̵ÄÇé¿ö£¬Ó¦ÓÃµÄÆ½¾ùÏìӦʱ¼ä´ïµ½6s¡£
ÎÊÌâµ÷²éºÍ·ÖÎö£º
ÎÒÃÇÔÚ²âÊԵĺóÆÚ£¬Ê¹Óà JVM ÐÔÄÜÆÊÎö¹¦ÄÜ ·¢ÏÖ£¬¿Í»§´úÂëÓг¬¹ý50%ÒÔÉϵÄʱ¼ä¼¯ÖÐÔÚjava.lang.classloader.defineclass¶¯Ì¬Àà¼ÓÔØÉÏ£¬ÕâÃ÷ÏÔÊÇÒ»¸öÓÉÓÚ¹ý¶ÈµÄ¶¯Ì¬Àà¼ÓÔØÔì³ÉµÄÓ¦ÓûºÂý¡£

ͬʱ½áºÏJVMÖжÔÓÚclass countµÄ¼à¿Ø£¬·¢ÏÖ¿Í»§µÄclass count£¨1.5WµÄ»î¶¯Àà¼ÓÔØ£¬25wµÄÐ¶ÔØÀࣩ£º

class countµÄÔËÐÐÓ¦¸ÃÊÇ±È½ÏÆ½Îȵģº

Õâ¸öÎÊÌâµÄºóÐø£º
¿Í»§¿ª·¢ÍŶӸù¾Ý ÐÔÄÜÆÊÎöµÄ½á¹û·¢ÏÖ£¬ÊÊÓÉÓÚËûÃÇÔÚ¸ñʽת»»Ê¹ÓõĿò¼Üµ¼ÖµĴóÁ¿À಻¶ÏµØ±»¼ÓÔØºÍÐ¶ÔØ£¬ÔÚ¾¹ý¿Í»§ÍŶӵÄÐ޸ĺó£¬ÔٴνøÐеĸºÔزâÊÔÔËÐÐ6СʱÄÚ£¬Æ½¾ùÏìӦʱ¼ä¶¼Î¬³ÖÔÚ600ms×óÓÒ£¬²¢ÇÒͨ¹ý¶ÔÓÚclass
countµÄ¼ì²â£¬·¢ÏÖÐ¶ÔØÀàµÄÊýÁ¿Ã÷ÏÔÓÐÒ»¸ö´ó·ù¶ÈµÄϽµ¡£

2.ÎÊÌâÀàÐÍ£º²»ÕýÈ·µÄthread sleepʹÓõ¼ÖÂÐÔÄÜϽµ
ÎÊÌâÏÖÏó£º
¿Í»§ÔÚ½øÐÐÒ»´ÎÓªÏúÃëɱ»î¶¯£¬Ã¿¸öСʱ¶¼»áÓÐ10·ÖÖӸ߲¢·¢·ÃÎÊ£¬ÔÚÕâ10·ÖÖӸ߲¢·¢µÄʱ¶Î£¬¿Í»§ÖÕ¶ËÇëÇóÓдóÁ¿502±¨´í¡£
ÎÊÌâµ÷²éºÍ·ÖÎö£º
µÚÒ»½×¶Î£º
·ÖÎö¸ß·åʱÆÚµÄCPUʹÓÃÇé¿ö£¬Ïß³ÌʹÓÃÇé¿ö£¬ÏìӦʱ¼äÇé¿ö£¬ÍÌÍÂÁ¿Çé¿ö£¨ÕâÊÇÎҷdz£Ï²»¶µÄÒ»¸ö¹ØÁª·ÖÎö£¬ÄÜÓÐЧ¶¨Î»¿Í»§ÊDz»ÊÇÒòΪCPU¿ªÏúµ¼ÖµÄÐÔÄÜÎÊÌ⣩£¬·¢ÏÖÏìӦʱ¼ä/ÍÌÍÂÁ¿´ó·ù¶ÈÉÏÕÇ£¬Ï̳߳ØÓþ¡£¬µ«ÊÇCPUʹÓÃËäÈ»ÓÐËùÉÏÕÇ£¬µ«ÊÇԶԶδ´ïµ½ÉÏÏÞ¡£

ͬʱ½áºÏ¿Í»§ÖÕ¶ËÇëÇóÓдóÁ¿502±¨´í¡£
³õ²½·ÖÎöÊÇÒòΪÏ̳߳ØÓþ¡£¬µ¼ÖÂÇëÇó¶ÂÈûÔÚÇëÇó¶ÓÁÐÖУ¬×îºóµ¼Ö´óÁ¿ÇëÇó·ÃÎʳ¬Ê±£¬±¨502´íÎó¡£
¸ø³ö½¨Òé²Ù×÷£º Ôö´óÏ̳߳Ø×î´óÏß³ÌÊýÁ¿£¬¼ÌÐø¹Û²ì¡£
µÚ¶þ½×¶Î£º
´Ëʱ¸ø³öµÄÏà¹Ø½¨Ò飺Ïß³ÌÊÇÒ»ÖÖÊ®·Ö±¦¹óµÄ×ÊÔ´£¬´´½¨£¬Ïú»Ù£¬Çл» ¶¼ÊÇÏ൱ºÄÐÔÄܵ쬵±SleepµÄʱºò£¬¾ÍµÈÓÚ˵£ºÏÖÔÚÎÒ²»Ó㬵«ÊÇÄãÒ²±ðÏëÓá£ÄãÒªÓã¬×Ô¼ºÈ¥CreateÒ»¸ö¡£µ±creatµÄÏ̵߳½µ××î´óÖµÒÔºó£¬ÇëÇó¾ÍÖ»ÄÜ×èÈûÔÚÇëÇó¶ÓÁÐÖÐÁË¡£Òò´ËsleepµÄʱºòËäÈ»²»Õ¼ÓÃCPU£¬µ«ÊÇÕ¼×ÅÏß³Ì×ÊÔ´,»áÑÏÖØ×è°ÏµÍ³µÄÏ̵߳÷¶È¡£
Ôö´óÏ̳߳Ø×î´óÏß³ÌÊýÁ¿ÒԺ󣬸߷åÆÚ·ÃÎÊÐÔÄܲ¢Ã»Óеõ½Ìá¸ß£¬ÎÒÃÇÐèÒª½øÒ»²½·ÖÎö¡£
ÓÉa1½øÒ»²½·ÖÎö£ºÓ¦ÓñíÏÖ³öÐÔÄܵÄϽµ£¬È´Ã»Óй۲쵽CPUÕ¼ÓõÄÌá¸ß£¬ÄǾͱíʾÏ߳̿ÉÄÜÔڵȴýI/O»òÊÇÆäËûһЩ²Ù×÷µÄ½á¹û¡£
ͬʱͨ¹ý JVMÐÔÄÜÆÊÎö¹¦ÄÜ£¬·¢ÏÖȷʵÓû§ÔÚ ·¢Æð¶ÔÓÚºǫ́ϵͳµ÷Óà ÒÔºó»á½øÈë¶¼»á½øÈëthread.sleep¡££¨Ê±¼äÌ«¾ÃÕÒ²»µ½Í¼£¬¾Í²»Ìṩ½ØÍ¼ÁË¡££©
Óë¿Í»§¿ª·¢È·ÈϺó·¢ÏÖ£¬ÔÚµ÷Óà ½»Òׯ½Ì¨ ºó¶ËµÄ client.jar°üÖÐÿ´Îµ÷Ó÷¢ÆðÒÔºó¶¼»áµ÷ÓÃthread.sleep½øÐÐÏß³ÌÐÝÃߣ¨ÐÝÃßʱ¼äÓëthreadÊýÁ¿³ÉÕý±È£©¡£
¾¹ýÏÖ³¡Óë¿Í»§ºǫ́ϵͳ¿ª·¢È·ÈÏ£¬ÎªÁ˱£Ö¤Ç°Ì¨ÏµÍ³µÄÕý³£ÔËÐУ¬ÁÙʱȡÏûÁËthread.sleepµÄµ÷Óá£Í¬Ê±ÔÚ¿Í»§ºǫ́ϵͳ¼Óװ̽Õë,µ÷ÕûÏ̳߳شóС£¬È·ÈϺǫ́ϵͳ¿ÉÄܵį¿¾±¡£
µÚÈý½×¶Î£º
¾¹ýµÚ¶þ½×¶Îµ÷Õû£¬Ñ¹Á¦³É¹¦ÓÉǰ̨ϵͳ´«µ¼ÖÁºǫ́ϵͳ£¬¶øºǫ́ϵͳ´æÔÚ´óÁ¿update²Ù×÷»ºÂý£¬µ¼ÖÂÊý¾Ý¿âÁ¬½ÓÓþ¡µÄÇé¿ö¡££¨ÈçºÎʹÓÃAI·¢ÏÖºÍÕï¶ÏÓÉÓÚÊý¾Ý¿âµ÷ÓòúÉúµÄÐÔÄÜÎÊÌâ
Ò»ÎÄÖеÄÎÊÌâ3ºÍÎÊÌâ4µÄÏÖÏó£¬ÕâÀï¾Í²»ÔÚÏêÊö¡££©
¾¹ýÓÅ»¯updateÓï¾ä£¬Ôö¼ÓÊý¾Ý¿âÁ¬½Ó³ØÊýÁ¿µÈ²Ù×÷£¬Ê¹Óû§µÄÏìӦʱ¼ä·ÃÎÊËٶȵõ½´ó·½Ìá¸ß£¬¹ÊÕÏÓÐËù»º½â¡£
3.ÎÊÌâÀàÐÍ£ºÓ¦ÓÃÐÔÄÜÒì³£»ºÂý
ÎÊÌâÏÖÏ󣺿ͻ§ÏµÍ³°ìÀíÒµÎñÒì³£»ºÂý´ò²»¿ª¡£
ÎÊÌâµ÷²éºÍ·ÖÎö£º
ÎÒÃÇ·ÖÎö¿Í»§ÏµÍ³ÏìӦʱ¼äÕ¼±È×î¸ßµÄÊÂÎñΪxxx£¬Õ¼±È´ïµ½57%£º

ÎÒÃǽ«ÆäÉèΪ¹Ø¼üÊÂÎñ£¬È»ºó½øÐÐÐÔÄÜÆÊÎö·¢ÏÖÊÇÓÉÓÚÆäÊý¾Ý¿â²éѯʱ¼ä¹ý³¤£¬µ¼ÖÂÊý¾Ý¿â¿âµÄÁ¬½ÓÊý²»¹»µ¼ÖÂϵͳ¹ÊÕÏ

Ëæºóͨ¹ý²ÉÈ¡ÖØ½¨Óû§±í¡¢Ôö¼ÓÊý¾Ý¿âÁ¬½ÓÊýºÍÖØÆôAPPʵÀýµÈ´ëÊ©£¬Ê¹¹ÊÕÏÇé¿öÓÐËùºÃת£¬»ºÂýÎÊÌâµÃµ½½â¾ö¡£
|