×î´ó»¯
AIX É쵀 Java ÐÔÄÜ£¬µÚ 1 ²¿·Ö: »ù´¡
Õâ¸öÓÉÎå¸ö²¿·Ö×é³ÉµÄϵÁÐÌṩÁËÈô¸É¼¼Çɺͼ¼Êõ£¬ÕâЩ¼¼Çɺͼ¼Êõͨ³£ÓÃÓÚÓÅ»¯
Java? Ó¦ÓóÌÐò£¬ÒÔ±ãÔÚ AIX? ÉÏʵÏÖ×î¼ÑµÄÐÔÄÜ¡£ÆäÖл¹ÌṩÁËÓйØÃ¿¸ö¼¼ÇɵÄÊÊÓÃÐÔÌÖÂÛ¡£Ê¹ÓÃÕâЩ¼¼ÇÉ£¬ÄúÓ¦¸ÃÄܹ»¿ìËÙÓÅ»¯
Java »·¾³£¬ÒÔÊʺÏÓ¦ÓóÌÐòµÄÐèÒª¡£
ÒýÑÔ
´æÔÚÈô¸É¿ÉÓÃÓÚÔËÐÐ AIX µÄ IBM eServer pSeries ƽ̨µÄÐÔÄÜÓÅ»¯¹¤¾ß¡£ÔËÐÐÔÚ AIX
ÉÏ IBM µÄ Java ʵÏÖ»¹°üº¬Èô¸Éµ÷Õû£¬ÆäÖдó¶àÊýµ÷Õû¶¼ÓÐÏ൱Çå³þµÄÎĵµËµÃ÷¡£¾¡¹ÜÈç´Ë£¬IBM Ö§³ÖÍŶÓÈÔÈ»Óöµ½Á˶àÖÖÇé¿ö£¬ÆäÖÐÐÔÄÜÓÅ»¯¹¤×÷Êܵ½ÕâÁ½×鹤¾ßÖ®¼äµÄ·ÖÀëÓ°Ïì¡£
±¾ÏµÁÐÎÄÕÂÏòÄúչʾÁËÈçºÎ½áºÏʹÓà AIX ºÍ Java ¹¤¾ß£¬ÒÔ×î´ó»¯»ùÓÚ AIX µÄ Java Ó¦ÓóÌÐòµÄÐÔÄÜ¡£µÚ
1 ²¿·Ö£¨¡°»ù´¡¡±£©ÌÖÂÛÁËʵÏֳɹ¦µÄÓÅ»¯¹¤×÷µÄÏȾöÌõ¼þ£¬²¢¸ÅÊöÁË¿ÉÓÃÓÚÐÖú´ËÀ๤×÷µÄ¹¤¾ß¡£Ç¿ÁÒ½¨ÒéÄúÍêÕûÔĶÁ´ËÎÄ£¬ÒòΪËü¿ÉÒÔÔÚÒÔºóΪÄú¼õÉÙ´óÁ¿µÄÂé·³¡£
±¾ÏµÁÐÖеĽÓÏÂÀ´ÈýƪÎÄÕÂÖ÷Òª¼¯ÖÐÓÚÐÔÄÜÓÅ»¯µÄÌØ¶¨·½Ãæ¡£µÚ 2 ²¿·Ö£¨¡°ËÙ¶ÈÐèÇó¡±£©ÌÖÂÛÁËÈçºÎ¸Ä½øÖ´ÐÐËٶȺÍÍÌÍÂÁ¿¡£µÚ
3 ²¿·Ö£¨¡°¸ü¶à¾ÍÊǸüºÃ¡±£©×ÅÑÛÓÚ´óСµ÷Õû¹¤×÷£¬²¢²ûÊöÁËÈçºÎÄܹ»ÓÐÀûµØ²Ù×÷ÄÚ´æ¡£µÚ 4 ²¿·Ö£¨¡°¼àÊÓÁ÷Á¿¡±£©Ñо¿ÁË×÷ΪÐÔÄÜÓÅ»¯Ä¿±êµÄÍøÂçºÍ´ÅÅÌ
I/O¡£±àдÕâÈýƪÎÄÕÂÊÇΪÁ˱ãÓÚ¿ìËÙ²éÕÒ£¬Òò´Ë»¶ÓÄú½«ÕâЩÎÄÕÂ×÷Ϊ¿ìËٲο¼£¬¶ø²»ÊÇ´ÓÍ·µ½Î²µØÔĶÁ¡£ÆäÖÐÿƪÎÄÕ»¹ÌÖÂÛÁËÎÒÃÇÈÏΪÔÚʵ¼Ê¹¤×÷Öзdz£ÓÐÓõÄÒ»°ã¼¼Çɺ͵÷Õû¡£
Çë×¢Ò⣬±¾ÎĽöÏÞÓÚ J2SE ÐÅÏ¢£»ÓйØÌض¨ÓÚ J2EE µÄÓÅ»¯£¬Çë²Î¿¼ J2EE ×é¼þµÄÅäÌ×Îĵµ¡£Èç¹ûÄúÔÚʹÓðó¶¨
Java µÄÓ¦ÓóÌÐò£¬Ó¦¸Ã²Î¿¼Ó¦ÓóÌÐòÎĵµÒÔÈ·±£Ëù×öµÄÈκθü¸Ä²»»áÓ°ÏìÓ¦ÓóÌÐò¹¦ÄÜ¡£
¿ªÊ¼Ö®Ç°
ÈκÎÀàÐ͵ÄÓÅ»¯¹¤×÷¶¼±ØÐ뿼Âǵ½Èô¸ÉÊÂÏÆäÖÐÓÐЩÊÂÏîÔÚÐÔÖÊÉÏÊǶÔÁ¢µÄ¡£¾¡¹ÜÿһÏî´ËÀ๤×÷¶¼ÊǶÀÌØµÄ£¬µ«ÊÇ´æÔÚһЩͨÓò¢ÇÒ¼¸ºõʼÖÕÓаïÖúµÄ²½Öè¡£ÏÂÃæÊÇÔÚ¿¼ÂÇÐÔÄÜÓÅ»¯Ç°ÐèҪ׼±¸ºÃµÄÊÂÏîµÄ¼òÒªÇåµ¥¡£Èç¹û´æÔÚÈκβ»ÄÜÔÚÓÅ»¯¿ªÊ¼Ö®Ç°Íê³ÉµÄ²½Ö裬¾ÍÓ¦¸Ã´æÔÚÕâÑù×öµÄ³ä·ÖÀíÓÉ¡£
Ç¨ÒÆµ½×îа汾
ÓÐ¹Ø AIX ÉϵÄ×îпÉÓà Java °æ±¾ÁÐ±í£¬Çë²ÎÔÄ IBM developer kits for AIX,
Java technology edition¡£½Ïа汾µÄ Java °üº¬Í¨³£¾ßÓÐÖØÒªÒâÒåµÄÐÔÄÜÔöÇ¿¡£ÀýÈ磬ÓëÒÔǰ°æ±¾Ïà±È£¬Java
1.4 ¾ßÓÐÇ¿´óµÃ¶àµÄÀ¬»øÊÕ¼¯ÊµÏÖ¡£
¼´Ê¹Êܵ½Ê¹ÓÃÌØ¶¨ Java °æ±¾ÒªÇóµÄÔ¼Êø£¬Ò²Ó¦¸ÃÇ¨ÒÆµ½×îеĿÉÓ÷þÎñ¸üУ¨Service
Refresh£¬SR£©¡£ÕâÊÇ´Ó¹¦ÄܺÍÐÔÄÜÐÞ¸´ÖлñÒæµÄ¿ìËÙ·½·¨¡£´ËÍ⣬Èç¹ûÓöµ½ÈκÎÀàÐ͵ÄÎÊÌ⣬Äú½«ÐèÒªÇ¨ÒÆµ½×îеÄ
SR ²ÅÄÜ»ñµÃÖ§³Ö¡£¶Ô×îРSR µÄÉý¼¶µÄÁíÒ»¸öʾÀýÊÇÔÚ Java 1.3.1 ÒÑ·¢²¼Ö®ºóÌí¼ÓµÄÖîÈç -Xdisableexplicitgc
µÈ¿ª¹Ø£¬Òò´Ë³ý·ÇÄúÇ¨ÒÆµ½Ìض¨µÄ°æ±¾£¬·ñÔòÎÞ·¨Ê¹ÓÃÕâЩ¿ª¹Ø¡£
±¾ÎÄ×ÅÖØÒÔ Java 1.4 ºÍ Java 1.3.1 »·¾³ÎªÀý£¬ÒòΪ½Ï¾ÉµÄ°æ±¾ÒªÃ´ÒѾ½áÊø·þÎñ£¬ÒªÃ´ºÜ¿ì¾ÍÒª½áÊø·þÎñÁË¡£ÓÉÓÚͬÑùµÄÔÒò£¬ÎÒÃǽ«ÒÔ
AIX 5L£¨Ã÷È·µØËµÊÇ AIX 5.1 ºÍ AIX 5.2)»·¾³ÎªÀý£¬¶ø²»ÊÇ AIX 4.3.3 »ò¸üµÍ°æ±¾¡£
Èç¹ûÓ¦ÓóÌÐòµÄÅäÖÿÉÐУ¬Äú¿ÉÄÜ»¹Ï£Íû¿¼ÂÇÇ¨ÒÆµ½ 64 λ°æ±¾µÄ Java¡£ÕâÒ»Ö÷Ìⳬ³öÁ˱¾ÏµÁеķ¶Î§£»³ý·ÇÌØ±ð˵Ã÷£¬·ñÔòÎÒÃǽ«°ÑÌÖÂÛÏÞÖÆµ½
32 λ Java¡£Çë¼ÌÐø¹Ø×¢ ESDD Éϲ»¾Ã½«ÍƳöµÄһƪÓÐ¹Ø 64 λ Java µÄÎÄÕ¡£
ÔÚÓÅ»¯Ö®Ç°ÐÞ¸´ÎÊÌâ
Èç¹ûÓöµ½ÖîÈç±ÀÀ£¡¢ÄÚ´æÐ¹Â©»òÓ¦ÓóÌÐò¹ÒÆðµÈÎÊÌ⣬ÄÇôÄú»¹Ã»ÓÐΪÓÅ»¯¹¤×÷×öºÃ×¼±¸¡£Õâ°üÀ¨Äú½ûÓÃÁË Just-In-Time
(JIT) ±àÒëÆ÷µÄ²¿·Ö»òÈ«²¿µÄÇé¿ö¡£Èç¹û»·¾³ÖÐÖ¸¶¨ÁË JAVA_COMPILER »ò JITC_COMPILEOPT
»·¾³±äÁ¿£¬ÔòÓ¦ÓóÌÐò¿ÉÄÜÒѾÔâÊܵ½ÐÔÄÜËðʧ£¨Çë×¢Ò⣬ÄúÒ²¿ÉÒÔʹÓà JITC_COMPILEOPT À´ÓÅ»¯Ó¦ÓóÌÐòÐÔÄÜ¡£ÔÚ¿ªÊ¼ÐÔÄÜÓÅ»¯Ö®Ç°£¬ÄúÓ¦¸ÃÒѾÐÞ¸´ÁËÎÊÌ⣬ÎÞÂÛÊÇͨ¹ýÉý¼¶µ½×îеķþÎñˢУ¬»¹ÊÇͨ¹ýÓë
IBM Java Service ÍŶӽÓÇ¢¡£IBM developer kits - diagnosis
documentation É쵀 Java Diagnostics Guide ÌṩÁËÓйØÈçºÎµ÷ÊÔ IBM
Java Óöµ½µÄÈκÎÎÊÌâµÄ³öÉ«½¨Òé¡£
ÑéÖ¤ÄúµÄ»·¾³
Äúͨ³£²»ÐèÒªµ£ÐÄÈκÎÌØ¶¨µÄ»·¾³ÉèÖã¨Ç°Ò»²¿·ÖÖÐÌáµ½µÄ JIT ÉèÖã¬ÒÔ¼°ÓÃÓÚ¶Ñ´óСÐÞ¸ÄËùÐèÒªµÄ LDR_CNTRL
ÉèÖã¬ÊÇһЩֵµÃ×¢ÒâµÄÀýÍ⣩£¬ÒòΪ Java Æô¶¯³ÌÐò»á×Ô¼ºÉèÖû·¾³¡£µ«ÊÇ£¬Èç¹ûÓ¦ÓóÌÐòʹÓà JNI£¬Ôò±ØÐëΪ
JNI ×é¼þÉèÖÃÕýÈ·µÄ»·¾³¡£Ã¿¸ö Java °æ±¾ÅäÌ×µÄ SDK Ö¸ÄÏ»ò×ÔÊöÎļþ¶¼ÌṩÁËÐèÒªÉèÖÃÎªÌØ¶¨ÖµµÄ±äÁ¿ÁÐ±í£¬ÕâÆäÖÐij¸ö±äÁ¿²»Æ¥Åä»áµ¼ÖÂÐÔÄܺͣ¨»ò£©¹¦ÄÜÎÊÌâ¡£
ÄúÏ£ÍûÓÅ»¯µÄÊÇ·ñΪ Java£¿
ËäÈ»Ñо¿¸÷¸ö¼¼Çɲ¢µ÷Õû Java Ó¦ÓóÌÐò»·¾³ÊǸö²»´íµÄÖ÷Ò⣬µ«ÊÇÖ»ÓÐÔÚÏû³ýÆäËûÆ¿¾±Ö®ºó²ÅÄÜ¿´µ½ÐÔÄÜÓ°Ïì¡£ÀýÈ磬Èç¹û
Java ûÓгöÏÖÔÚÏûºÄÄÚ´æ×î¶àµÄǰ 5 ¸ö½ø³ÌÖУ¬Èç¹ûϵͳÉÏµÄÆäËû½ø³ÌµÄ CPU ʹÓÃÂʱ£³ÖÔÚ 100%£¬Äú¶Ô
Java ×ö³öµÄ¸ü¸ÄºÜ¿ÉÄܲ»»áÆð×÷Óá£
ËüÄÜÔËÐеøü¿ìÂð£¿
ÐÔÄÜ Õâ¸ö´ë´ÊÊÇ¶à·½ÃæµÄ£¬Ã¿¸ö½ÇÂä¶¼ÐèÒª×ö³öȨºâ¾ö²ß¡£Òª´ÓÈκδËÀà¾ö²ßÖÐÅųý²Â²â³É·Ö£¬±ØÐë³ä·ÖÁ˽âÔ¤ÆÚÐÐΪ£¬´Ó¶øÎªÄúÌṩ֧³Ö¡£Äú»¹±ØÐëÓµÓÐÈÎÓÉ×Ô¼ºÖ§ÅäµÄÁ¼ºÃ¶¨ÒåµÄ»úÖÆÀ´²â¶¨Ëù×öµÄÈκθü¸ÄµÄÓ°Ïì¡£ÎÞÂÛÓÅ»¯¹¤×÷µÄ¹æÄ£ÈçºÎ£¬ÕâÀïÃèÊöµÄ²½Öè¶¼½«Ê¹ÓÅ»¯¹¤×÷¸ü¼Ó¸ßЧ¡£
Á˽âÄúµÄÓ¦ÓóÌÐòÌØÕ÷
ÔÚ¿ªÊ¼ÓÅ»¯Ó¦ÓóÌÐò֮ǰ£¬±ØÐëÁ˽âÓ¦ÓóÌÐòÔ¤ÆÚ½«ÈçºÎ¹¤×÷¡£³ýÁËÖîÈç¿Í»§»ú-·þÎñÆ÷ÍØÆË»òͼÐÎÓû§½çÃæ£¨Graphical
User Interface£¬GUI£©Ó¦ÓóÌÐòµÈ¹ãÒå·ÖÀàÒÔÍ⣬Äú»¹Ó¦¸ÃÁ˽âÓ¦ÓóÌÐò´úÂëÔÚÄÚ²¿ÊÇÈçºÎ¹¤×÷ÒÔʵÏÖÆä³¢ÊÔÍê³ÉµÄÈÎÎñµÄ¡£¾ÙÀýÀ´Ëµ£¬ÎÒÃÇ¿ÉÒÔÏòÄúÑÝʾÈçºÎ¼ÆËãij´ÎÌØ¶¨ÔËÐÐÆÚ¼äʹÓõÄ
CPU °Ù·Ö±ÈÖµ£¬µ«ÊǶԹ۲쵽µÄÊý×ֵĽâÊÍÔòÊÇÿ¸öÓ¦ÓóÌÐòËùÌØÓеġ£ÄúÓ¦¸ÃÄܹ»Çø·Ö¡°Õý³£¡±ºÍ¡°Òì³£¡±µÄ¹Û²ìÐÐΪ£¬ÒÔ±ã¾ö¶¨ÒªÓÅ»¯Ê²Ã´¶ÔÏó¡£
Çë×¢Ò⣬Äú²»ÐèÒª·ÃÎÊ Java Ô´´úÂë¼´¿ÉÖ´ÐÐÕâЩÎĵµÖÐÃèÊöµÄ´ó¶àÊýÓÅ»¯¡£Õâ²¢²»Òâζ×ÅÄúÓ¦¸Ã½«Ó¦ÓóÌÐòÊÓΪºÚºÐ¡£ÄúµÄÓ¦ÓóÌÐòÊÇÉè¼ÆÎª¿ìËÙÍê³É¹¤×÷²¢Í˳ö£¬»¹ÊǼÌÐøÔËÐкܳ¤Ò»¶Îʱ¼ä£¨ÀýÈç×÷Ϊ·þÎñÆ÷£©£¿ËüÊÇÔÚÆô¶¯ÆÚ¼ä´óÁ¿µØ·ÖÅäÄڴ棬»¹ÊÇÔÚÆô¶¯Ê±½öÕ¼ÓÃÉÙÁ¿ÄÚ´æ¿Õ¼ä£¿ËüÊÇ·ñÖ´ÐдóÁ¿µÄ»ØÊÕ£¬»òÕßËüÊÇ·ñÕ¼ÓÐÒÑ·ÖÅäµÄ¶ÔÏó£¿ÖîÈç´ËÀàµÄÎÊÌ⽫¾ö¶¨ÄúµÄÓÅ»¯¹¤×÷¡£
Ñ¡ÔñÓÅÐãµÄ²âÊÔÌ×¼þ
ÎÒÃÇÇ¿ÁÒ½¨Òé×¼±¸Ä³ÖÖ·½·¨À´Á¿»¯ÄúÒÑʵÏÖµÄÊÕÒæ¡£Ê¹ÓÃÕâÆäÖÐÈκι¤¾ßµÄÏȾöÌõ¼þÊÇ´æÔÚÒ»¸ö¿ÉÖØ¸´¡¢¿ÉÑéÖ¤ºÍ¿É¿¿µÄ²âÊÔÌ×¼þ£¬´ËÌ×¼þÔÊÐíÄú¼ì²é¾¡¿ÉÄܶàµÄÓ¦ÓóÌÐò¹¦ÄÜ¡£¼Çס£¬ÔÚijЩÇé¿öÏ£¬µ÷ÕûÔËÐÐʱÐÐΪµÄÒ»¸ö·½Ãæ¿ÉÄÜ»á¶ÔÁíÒ»²¿·ÖÔì³É¸ºÃæÓ°Ïì¡£Ö»ÓÐÓÅÐãµÄ²âÊÔÌ×¼þ²ÅʹÄúÄܹ»Á˽âÔËÐÐʱÐÔÄܺÍÄÚ´æÕ¼Óÿռ䣨¾ÙÀý¶øÑÔ£©Ö®¼äµÄȨºâ¡£
½¨Á¢»ù×¼
ÔÚ¶Ôϵͳ×ö³öÈκθü¸Ä֮ǰ£¬Ó¦¸Ã»¨Ê±¼ä½¨Á¢Çå³þºÍÃ÷È·µÄ·½·¨À´²â¶¨Ëù×öµÄÈκθü¸ÄµÄЧ¹û¡£´Ë·½·¨¿ÉÒÔÏñʹÓá°time¡±ÃüÁîÒ»Ñù¼òµ¥£¬»òÕ߸ü¼Ó¾«Ï¸£¬ÀýÈçʹÓÃÄ£Äâһǧ¸öÓû§µÄ½Å±¾À´²âÁ¿ÏìӦʱ¼ä¡£ÎÞÂÛÊÇÄÄÖÖ·½·¨£¬ÓÃÓڲⶨÐÔÄܵ÷ÕûЧ¹ûµÄ¹¤×÷¸ºÔض¼Ó¦¸Ã×ã¹»¶àÑù»¯£¬ÒÔ¼ì²é¾¡¿ÉÄܶàµÄ²»Í¬³¡¾°¡£³ýÁËÈκÎÀàÐ͵ÄÍⲿ¶ÈÁ¿Ö®Í⣬ÎÒÃǽ¨ÒéʹÓÃ
AIX ÐÔÄÜ PMR Êý¾ÝÊÕ¼¯¹¤¾ß (PerfPMR)¡£
PerfPMR ¹¤¾ßʵ¼ÊÉÏÊÇ AIX ºÍÆäËû·þÎñÍŶÓʹÓõÄÒ»¸öÊý¾ÝÊÕ¼¯¹¤¾ß¡£Ëü´´½¨Ö¸¶¨Ê±¼ä¶ÎÄÚµÄϵͳ¿ìÕÕ£¬´Ó¶øÌṩϵͳÔÚ¸Ãʱ¼ä¶ÎÄÚ¡°×ö¡±Ê²Ã´µÄÇå³þָʾ¡£Óëµ¥¶ÀÔËÐÐÿ¸ö
AIX ¹¤¾ß²»Í¬£¬Äú¿ÉÒÔÖ±½ÓÒªÇó PerfPMR ΪÄúÔËÐÐÄÇЩ¹¤¾ß¡£ÓÉÓÚ´´½¨ÕâЩ¿ìÕյķ½·¨¾¹ýÁËÁ¼ºÃµÄ¶¨Ò壬Äú¿ÉÒÔÔÚÓÅ»¯ÖÜÆÚÖеIJ»Í¬Ê±µã´´½¨¶à¸ö¿ìÕÕ£¬ÒÔ¸ú×ÙÓÅ»¯½ø¶È¡£Çë×¢Ò⣬ÎÒÃÇÔÚ±¾ÏµÁÐÖÐÌṩÁËÌØ¶¨¹¤¾ß¶ø²»ÊÇ
PerfPMR µÄʾÀý¡£
ÓÃÓÚÍê³ÉÓÅ»¯µÄ¹¤¾ß
´æÔÚÒ»×é·á¸»µÄ¹¤¾ß¿ÉÓÃÓÚ¼àÊÓ AIX ϵͳµÄËùÓз½Ãæ¡£±í 1 ÌṩÁ˸÷¸ö¹¤¾ßµÄ¼òÊö¡£ÕâЩ¹¤¾ß¿ÉÓÃÓÚ½ö¼àÊÓµ¥¸ö½ø³Ì»ò¼àÊÓÕû¸öϵͳ¡£AIX
5L Performance Tools Handbook ºÍ Understanding IBM eServer
pSeries Performance and Sizing ¼°Æä²Î¿¼×ÊÁÏÊÇÁ˽âÏÂÃæÌáµ½µÄ¸÷¸ö¹¤¾ßµÄºÜºÃÆðµã¡£
±í 1£ºAIX ÉϵÄϵͳ¼àÊÓ¹¤¾ß

ºóÐøµÄÎÄÕ½«¶ÔÕâÆäÖÐÿ¸ö¹¤¾ß½øÐмòÒª½éÉÜ¡£»¹ÓÐһЩ¹¤¾ßÎÞ·¨¹éÈëij¸öÌØ¶¨Àà±ð£¬ÏÂÃæ½«¶ÔËüÃǽøÐмòÒªµÄÌÖÂÛ¡£
topas
topas ÊÇÒ»¸öÓÐÓõÄͼÐνçÃæ£¬¿ÉÒÔΪÄúÌṩϵͳÉÏÕýÔÚ·¢ÉúµÄÊÂÇéµÄ¼´Ê±½á¹û¡£µ±Äú²»´øÈκÎÃüÁîÐвÎÊýÔËÐд˹¤¾ßʱ£¬ÆÁÄ»½«ÏÔʾÈçÏÂÄÚÈÝ£º
Topas Monitor for host: aix4prt EVENTS/QUEUES FILE/TTYMon Apr 16 16:16:50 2001 Interval: 2 Cswitch 5984 Readch 4864 Syscall 15776 Writech 34280 Kernel 63.1 |################## | Reads 8 Rawin 0 User 36.8 |########## | Writes 2469 Ttyout 0 Wait 0.0 | | Forks 0 Igets 0 Idle 0.0 | | Execs 0 Namei 4 Runqueue 11.5 Dirblk 0 Network KBPS I-Pack O-Pack KB-In KB-Out Waitqueue 0.0 lo0 213.9 2154.2 2153.7 107.0 106.9 tr0 34.7 16.9 34.4 0.9 33.8 PAGING MEMORY Faults 3862 Real,MB 1023 Disk Busy% KBPS TPS KB-Read KB-Writ Steals 1580 % Comp 27.0 hdisk0 0.0 0.0 0.0 0.0 0.0 PgspIn 0 % Noncomp 73.9 PgspOut 0 % Client 0.5 Name PID CPU% PgSp Owner PageIn 0 java 16684 83.6 35.1 root PageOut 0 PAGING SPACE java 12192 12.7 86.2 root Sios 0 Size,MB 512 lrud 1032 2.7 0.0 root % Used 1.2 aixterm 19502 0.5 0.7 root NFS (calls/sec) % Free 98.7 topas 6908 0.5 0.8 root ServerV2 0 ksh 18148 0.0 0.7 root ClientV2 0 Press: gil 1806 0.0 0.0 root ServerV3 0 "h" for help |
×óϲàµÄÐÅÏ¢ÏÔʾÁË×î»îÔ¾µÄ½ø³Ì£»ÕâÀJava ÏûºÄÁË 83.6% µÄ CPU¡£ÖмäµÄÓÒ²àÇøÓòÏÔʾÁË×ܵÄÎïÀíÄڴ棨ÔÚ´ËÀýÖÐΪ
1 GB£©ºÍ·ÖÒ³¿Õ¼ä (512 MB)£¬ÒÔ¼°ÕýÔÚʹÓõÄÈÝÁ¿¡£Òò´ËÄú¿ÉÒÔÔÚµ¥¸öÆÁÄ»ÖлñµÃÓйØÏµÍ³ÕýÔÚ×öʲôµÄÇå³þ¸Å¿ö£¬È»ºóÄú¿ÉÒÔ»ùÓÚÆäÖÐÏÔʾµÄÐÅϢѡÔñ¸÷¸öÒª¼¯Öеķ½Ãæ¡£
trace
trace ²¶»ñ´øÊ±¼ä´ÁµÄϵͳʼþµÄ˳ÐòÁ÷¡£trace ÊÇÓÃÓÚ¹Û²ìϵͳºÍÓ¦ÓóÌÐòÖ´Ðеı¦¹ó¹¤¾ß¡£Ðí¶àÆäËû¹¤¾ßÌṩÁËÖîÈç
CPU ºÍ I/O ÀûÓÃÂʵȳéÏóÐÅÏ¢£¬¶ø trace ¹¤¾ßÔò°ïÖúÏêÊöÁËÓйØÊ¼þÔںδ¦·¢Éú¡¢Äĸö½ø³Ì¶Ôʼþ¸ºÔð¡¢Ê¼þºÎʱ·¢ÉúÒÔ¼°ËüÃÇÈçºÎÓ°ÏìϵͳµÄÐÅÏ¢¡£Á½¸öÄܹ»´Ó
trace ÌáÈ¡ÐÅÏ¢µÄºóÆÚ´¦Àí¹¤¾ßΪ utld£¨ÔÚ AIX 4 ÖУ©ºÍ curt £¨ÔÚ AIX 5 ÖУ©¡£ÕâЩ¹¤¾ßÌṩÁËÓйØ
CPU ÀûÓÃÂʺͽø³Ì/Ï̻߳µÄͳ¼ÆÐÅÏ¢¡£µÚÈý¸öºóÆÚ´¦Àí¹¤¾ßÊÇ splat£¬´Ë¹¤¾ß±íʾ¡°¼òµ¥ÐÔÄÜËø·ÖÎö¹¤¾ß¡±(Simple
Performance Lock Analysis Tool)¡£´Ë¹¤¾ßÓÃÓÚ·ÖÎö¼òµ¥ËøÔÚ AIX Äں˺ÍÄÚºËÀ©Õ¹ÖеÄËø»î¶¯¡£
nmon
nmon ÊÇÒ»¸öÃâ·ÑµÄÈí¼þ¹¤¾ß£¬²¢ÌṩÐí¶àÓë topas ÏàͬµÄÐÅÏ¢£¬²»¹ýÊǽ«ÐÅÏ¢±£´æÎª Lotus 123
ºÍ Excel ¸ñʽµÄÎļþ¡£´Ë¹¤¾ßµÄÏÂÔØÕ¾µãΪ http://www.ibm.com/developerworks/eserver/articles/analyze_aix/¡£ËùÊÕ¼¯µÄÐÅÏ¢°üÀ¨
CPU¡¢´ÅÅÌ¡¢ÍøÂç¡¢ÊÊÅäÆ÷ͳ¼Æ¡¢Äں˼ÆÊýÆ÷¡¢ÄÚ´æºÍ¡°×îæ¡±½ø³ÌÐÅÏ¢¡£
ƽ̨ÎÞ¹ØµÄ Java ÐÔÄܼàÊÓ
Java ÐéÄâ»ú¼àÊÓ³ÌÐò½Ó¿Ú£¨Java Virtual Machine Profiling Interface£¬JVMPI£©ÊÜ
IBM Java Ö§³Ö£¬²¢ÇÒ¶ÔÓÚÐÔÄܼàÊÓµÄËùÓз½Ãæ¶¼·Ç³£ÓÐÓá£Äú¿ÉÒÔʹÓõÚÈý·½¸ÅÒª»òʹÓà IBM Java
¸ÅÒª½Ó¿Ú£¬ÒÔÖ´ÐÐ Java ÐÔÄܼàÊÓ¡£Óйظü¶àÏêϸÐÅÏ¢£¬Çë²ÎÔÄλÓÚ IBM developer kits
- diagnosis documentation µÄ Java Diagnostics Guide ÖеÄ
-Xhprof¡£ÓйØÌض¨ÓÚ AIX ÉϵĸÅÒª·ÖÎöµÄÐÅÏ¢£¬Äú»¹Ó¦¸Ã²ÎÔÄλÓÚ IBM developer kits
for AIX, Java technology edition µÄ×ÔÊöÎļþ/SDK Ö¸ÄÏ¡£ÀýÈ磬³ý·ÇÄúÉèÖÃÁË»·¾³±äÁ¿
AIXTHREAD_ENRUSG=ON£¬·ñÔòÔÚ¸ÅÒª·ÖÎöÆÚ¼ä²»»á±¨¸æÏß³Ì CPU ʱ¼ä¡£ËùÓÐ Java °æ±¾µÄ×ÔÊöÎļþ/SDK
Ö¸Ä϶¼¶Ô´Ë×÷ÁËÎĵµ¼Ç¼¡£
Ò²Ðí×î³£ÓÃÀàÐ굀 Java ÐÔÄܼàÊÓÊÇ verbosegc ÈÕÖ¾¡£ÓйØÈçºÎ·ÖÎö verbosegc ÈÕÖ¾µÄ¸ü¶àÏêϸÐÅÏ¢¿ÉÒÔÔÚ
Fine-tuning Java garbage collection performance ÖÐÕÒµ½¡£ËäÈ»ÆôÓÃ
verbosegc ¸ú×ÙµÄÈ·»áµ¼Ö½ÏСµÄÐÔÄÜÓ°Ï죬µ«ÊÇËù»ñµÃµÄÓÃÓÚʺó·ÖÎö¼ì²éµÄÓŵãÎÞÒÉ»áʤ¹ýÐÔÄÜËðʧ¡£Fine-tuning
Java garbage collection performance Ìáµ½ÁËÈçºÎ»ùÓÚ verbosegc
Êä³öÖ´ÐÐÓÅ»¯¡£
AIX ÉϵÄȱʡ Java ÐÐΪ
±¾²¿·ÖÃèÊö¸÷¸öÉèÖõĵ±Ç°ÏÖ×´¡£ÕâЩÉèÖÃÔÚ´ó¶àÊýÇé¿öϽ«»áËæÊ±¼äÍÆÒÆ¶ø¸ü¸Ä¡£SDK µÄÅäÌ××ÔÊöÎļþºÍ SDK
Ö¸ÄÏʼÖÕÊÇ´ËÀàÉèÖõÄ×îвο¼×ÊÁÏ¡£
Java ʹÓÃÁËÏÂÁл·¾³ÉèÖãº
AIXTHREAD_SCOPE=S
´ËÉèÖÃÓÃÓÚÈ·±£Ã¿¸ö Java Ïß³ÌÒ»¶ÔÒ»µØÓ³É䵽ij¸öÄÚºËÏ̡߳£¿ÉÒÔÔÚ¶àÖÖ³¡ºÏ¿´µ½´Ë·½·¨µÄÓŵ㣻һ¸öÏÔÖøµÄʾÀý¾ÍÊÇ
Java ÈçºÎÀûÓö¯Ì¬Âß¼·ÖÇø£¨Dynamic Logical Partitioning£¬DLPAR£©£»µ±½«ÐµÄ
CPU Ìí¼Óµ½¸Ã·ÖÇøÊ±£¬¿ÉÒÔ½«Ä³¸ö Java Ï̵߳÷¶Èµ½¸Ã CPU ÉÏ¡£ÔÚÕý³£Çé¿öϲ»Ó¦¸Ã¸ü¸Ä´ËÉèÖá£
AIXTHREAD_COND_DEBUG¡¢AIXTHREAD_MUTEX_DEBUG ºÍ AIXTHREAD_RWLOCK_DEBUG
ÕâЩ±êÖ¾ÓÃÓÚÄں˵÷ÊÔÄ¿µÄ¡£ÕâЩ±êÖ¾ÓÐʱ¿ÉÄÜÉèÖÃΪ OFF¡£Èç¹û²»ÊÇÕâÑù£¬Ôò¹Ø±ÕËüÃÇ»áÌṩºÜºÃµÄÐÔÄÜÌáÉý¡£
LDR_CNTRL=MAXDATA=0x80000000
ÕâÊÇ Java 1.3.1 ÉϵÄȱʡÉèÖ㬲¢¿ØÖÆÈçºÎÔÊÐí´óÐÍ Java ¶ÑÔö³¤¡£Java 1.4 »ùÓÚËùÇëÇóµÄ¶ÑÀ´¾ö¶¨
LDR_CNTRL ÉèÖá£ÓйØÈçºÎ²Ù×÷´Ë±äÁ¿µÄÏêϸÐÅÏ¢£¬Çë²ÎÔÄ Getting more memory
in AIX for your Java applications¡£
JAVA_COMPILER
´ËÉèÖþö¶¨½«ÒªÊ¹ÓÃµÄ Just-In-Time ±àÒëÆ÷¡£È±Ê¡ÉèÖÃΪ jitc£¬²¢Ö¸Ïò IBM JIT ±àÒëÆ÷¡£¿ÉÒÔ½«Æä¸ü¸ÄΪ
jitcg£¬±íʾ JIT ±àÒëÆ÷µÄµ÷ÊÔ°æ±¾£»»òÕ߸ü¸ÄΪ NONE£¬±íʾ¹Ø±Õ JIT ±àÒëÆ÷£¨ÕâÑù×öÔÚ´ó¶àÊýÇé¿ö϶ÔÐÔÄÜÀ´Ëµ¾ø¶ÔÊÇ×îÔã¸âµÄ£©¡£
IBM_MIXED_MODE_THRESHOLD
´ËÉèÖþö¶¨ JVM JIT ÔÚ±àÒëij¸ö·½·¨Ç°¸Ã·½·¨µÄµ÷ÓôÎÊý¡£´ËÉèÖÃÊÓÆ½Ì¨ºÍ°æ±¾¶øÒ죻ÀýÈ磬¶ÔÓÚ AIX
É쵀 Java 1.3.1£¬´ËÉèÖÃΪ 600¡£
Çë×¢Ò⣬ÉÏÊöÈκÎÒ»¸öÉèÖö¼²»»á¸²¸ÇÏÖÓеÄÉèÖá£ÀýÈ磬Èç¹û½« LDR_CNTRL=MAXDATA ¸ü¸ÄΪij¸öÆäËûÖµ£¬Ôò»áʹÓÃÄúÖ¸¶¨µÄÖµ¶ø²»ÊÇʹÓÃÉÏÃæÌáµ½µÄȱʡֵ¡£
IBM Java SDK µÄÅäÌ××ÔÊöÎļþ/SDK Ö¸ÄϽâÊÍÁËÈκΠJava ±¾»ú½Ó¿Ú£¨Java Native
Interface£¬JNI£©¿â¶¼±ØÐë¾ßÓеĻ·¾³ÉèÖá£Èç¹ûÐÞ¸ÄÁ˸ÃÁбíÖÐÖ¸¶¨µÄÈκλ·¾³ÉèÖã¬Äú±ØÐëÈ·±£Ò²Ê¹ÓÃÏàÓ¦µÄÉèÖÃÀ´Éú³É
JNI ¿â¡£
×ܽá
±¾ÎĽéÉÜÁËһЩ»ù±¾²½Ö裬¿É×÷Ϊ¿ªÊ¼ÓÅ»¯¹¤×÷µÄÇåµ¥¡£½ÓÏÂÀ´µÄÈý¸ö²¿·Ö½«Ñо¿ CPU¡¢ÄÚ´æ¡¢ÍøÂçºÍ´ÅÅÌ I/O
ÓÅ»¯¡£
×î´ó»¯ AIX É쵀 Java ÐÔÄÜ£¬µÚ 2 ²¿·Ö: ËÙ¶ÈÐèÇó
ÒýÑÔ
ÕâÊÇÓÉÎ岿·Ö×é³ÉµÄÓÐ¹Ø AIX É쵀 Java ÐÔÄÜÓÅ»¯µÄϵÁÐÖÐµÄµÚ 2 ²¿·Ö¡£Ç¿ÁÒ½¨ÒéÄúÔÚ½øÒ»²½¼ÌÐøÖ®Ç°ÔĶÁ±¾ÏµÁÐÖеĵÚ
1 ²¿·Ö£¨Èç¹ûÄú»¹Ã»ÓÐÕâÑù×öµÄ»°£©¡£
±¾ÎÄÑо¿ÓÃÓÚ×î´ó»¯ÏµÍ³Ö´ÐÐËٶȺÍÍÌÍÂÁ¿µÄ·½·¨¡£¶ÔÓÚÉæ¼°Óû§½çÃæµÄ³ÌÐò£¬ÎÒÃÇ»¹½«Ñо¿ÈçºÎÈ·±£ÏµÍ³µÄÏìÓ¦ÄÜÁ¦±£³ÖÔڿɽÓÊܵļ¶±ðÄÚ¡£
ÄúÓ¦¸Ã²é¿´±¾ÎĵÚÒ»²¿·Ö£¬ÒÔÁ˽âÊÊÓÃÓÚ´ó¶àÊýÇé¿öµÄÒ»°ã¼¼ÇÉ¡£ÎÒÃÇ»¹ÌṩÁ˶ÔÓÚ CPU Æ¿¾±¼ì²âºÍÑо¿·Ç³£ÓÐÓõŤ¾ßµÄ¿ìËٲο¼¡£ÏÂÒ»²¿·Ö½«ÃèÊö¸÷ÖÖÀàÐ͵ÄÓ¦ÓóÌÐòÒÔ¼°ÈçºÎÓÅ»¯ËüÃÇ¡£´ËÌÖÂÛ½«ÀûÓÃÄúµÄÓ¦ÓóÌÐò֪ʶÀ´¾ö¶¨ÄÄЩ¼¼ÇÉ×îÊʺÏÄú¡£µÚÈý²¿·Ö½«ÃèÊö¸÷ÖÖ¼¼ÇÉ¡£±¾ÎÄÔÚ½áÊøÊ±½«ÌÖÂÛһϱ¾ÏµÁÐÖеÄÏÂһƪÎÄÕ¡£
CPU Æ¿¾±
±¾ÎĽ«ÌÖÂÛÈçºÎʹÄúµÄÓ¦ÓóÌÐò¸ü¿ì»òÏìÓ¦ÄÜÁ¦¸ü¸ß£¬»òÕßͬʱʵÏÖÕâÁ½¸öÄ¿µÄ¡£
ͨ¹ý½«Êµ¼ÊÓëÔ¤ÆÚµÄÐÔÄÜÊý×Ö½øÐбȽϣ¬Äúͨ³£¿ÉÒÔÈ·¶¨Ó¦ÓóÌÐòÊÇ·ñÔËÐеÃÌ«Âý¡£»òÕߣ¬Ó¦ÓóÌÐòµÄÓû§½çÃæ¿ÉÄܶ¨ÆÚµØ¶¨×¡£¬»òÕßµ½Ó¦ÓóÌÐòµÄÍøÂçÁ¬½Ó¿ÉÄÜÓÉÓÚÓ¦ÓóÌÐòæ¶ø³¬Ê±¡£Ê¹ÓÃ
topas »ò tprof ½«ÏÔʾ CPU ÀûÓÃÂÊÊÇ·ñ´ïµ½ 100%¡£ÄúÐèÒªÄܹ»Çø·ÖÒì³£»î¶¯ºÍ´óСÉèÖò»µ±µÄÇé¿ö£»Èç¹ûÄúÐèÒª¸ü¿ìµÄ
CPU »ò¸ü¸ß¹æ¸ñµÄ¼ÆËã»ú£¬ÔòûÓжàÉÙµ÷Õû¿Õ¼ä¿ÉÒÔÖ´ÐС£
×÷ΪµÚÒ»²½£¬ÄúÓ¦¸ÃʹÓà topas »òÆäËûÀàËÆ¹¤¾ßÀ´È·¶¨ Java ÊÇ·ñΪ×î´óµÄ CPU Óû§¡£Èç¹û¿´µ½
Java ´¦ÔÚ CPU Óû§ÁбíÖеĽϵÍλÖã¬ÔòÖ´ÐÐÌØ¶¨ÓÚ CPU µÄÓÅ»¯¿ÉÄÜûÓжà´óÓô¦¡£ÎÒÃÇÔÚµÚ 1
²¿·ÖÖÐÌṩÁË topas µÄ¼òµ¥¸ÅÊö¡£
ÀíÏëµÄÇé¿öÊÇÓ¦ÓóÌÐòµÄ CPU ÀûÓÃÂÊ´ïµ½»ò¸ßÓÚ 90%¡£Èç¹ûÄúÒѾ´ïµ½¸Ã½×¶Î²¢ÇÒÈÔÈ»¶ÔÍÌÍÂÁ¿²»ÂúÒ⣬ҲÐíÊÇÄúʹÓõļÆËã»úµÄ¹æ¸ñ²»¹»¸ß¡£Èç¹ûʹÓÃ
DLPAR£¬¿ÉÒÔ³¢ÊÔÌí¼ÓÁíÍâÒ»¸ö»òÁ½¸ö CPU ²¢²âÁ¿²îÒì¡£
vmstat
vmstat ¿ÉÓÃÓÚÌṩÓйØÏµÍ³µÄ¶àÖÖͳ¼ÆÐÅÏ¢¡£¶ÔÓÚÌØ¶¨ÓÚ CPU µÄ¹¤×÷£¬¿ÉÒÔ³¢ÊÔÒÔÏÂÃüÁ
´ËÃüÁîÖ´ÐÐ 3 ´Î²ÉÑù£¬Ã¿´ÎÏà¸ô 1 ÃëÖÓ£¬²¢´øÓÐʱ¼ä´Á (-t)¡£Äúµ±È»¿ÉÒÔËæÐÄËùÓûµØ¸ü¸Ä²ÎÊý¡£ÏÂÃæÏÔʾÁË´ËÃüÁîµÄÊä³ö£º
kthr memory page faults cpu time----- ----------- ------------------------ ------------ ----------- -------- r b avm fre re pi po fr sr cy in sy cs us sy id wa hr mi se 0 0 45483 221 0 0 0 0 1 0 224 326 362 24 7 69 0 15:10:22 0 0 45483 220 0 0 0 0 0 0 159 83 53 1 1 98 0 15:10:23 2 0 45483 220 0 0 0 0 0 0 145 115 46 0 9 90 1 15:10:24 |
´ËÊä³öÖÐÐèÒª¹Û²ìµÄһЩÄÚÈݰüÀ¨£º
ÁÐ r£¨ÔËÐжÓÁУ©ºÍ b£¨±»×èÈû£©¿ªÊ¼ÉÏÉý£¬ÓÈÆäÊǸßÓÚ 10¡£Õâͨ³£ÊÇÓÐÌ«¶à½ø³ÌÔÚÕùÓà CPU µÄ¼£Ïó¡£
Èç¹û cs£¨ÉÏÏÂÎÄÇл»£©Óë½ø³ÌÊýÁ¿Ïà±ÈÉÏÉýµÃ·Ç³£¸ß£¬Äú¿ÉÄÜÐèҪʹÓà vmtune À´ÓÅ»¯ÏµÍ³¡£´ËÖ÷Ìⳬ³öÁ˱¾ÏµÁеķ¶Î§¡£
ÔÚ cpu ²¿·Ö£¬us£¨Óû§Ê±¼ä£©Ö¸Ê¾ÔÚ³ÌÐòÖÐËù»¨µÄʱ¼ä¡£¼ÙÉè Java ÔÚ tprof ÖÐλÓÚÁÐ±í¶¥²¿£¬Äú¿ÉÄÜÐèÒªÓÅ»¯
Java Ó¦ÓóÌÐò¡£
ÔÚ cpu ²¿·Ö£¬Èç¹û sys£¨ÏµÍ³Ê±¼ä£©¸ßÓÚÔ¤ÆÚ£¬²¢ÇÒÄúÈÔÈ»»¹Ê£ÓÐ id£¨¿ÕÏУ©Ê±¼ä£¬Õâ¿ÉÄܱíÊ¾ËøÕùÓ᣼ì²é
tprof ÒÔÁ˽âÄÚºËʱ¼äÖÐÓëËøÏà¹ØµÄµ÷Óá£Äú¿ÉÄÜÏ£Íû³¢ÊÔÔËÐÐ JVM µÄ¶à¸öʵÀý¡£»¹¿ÉÒÔÔÚ javacore
ÎļþÖвéÕÒËÀËø¡£
ÔÚ cpu ²¿·Ö£¬Èç¹û wa£¨I/O µÈ´ý£©·Ç³£¸ß£¬Õâ¿ÉÄÜָʾ´ÅÅÌÆ¿¾±£¬²¢ÇÒÄúÓ¦¸ÃʹÓà iostat ºÍÆäËû¹¤¾ßÀ´²é¿´´ÅÅÌʹÓÃÇé¿ö¡£
pi¡¢po£¨Ò³Ãæµ÷Èë/µ÷³ö£©ÁÐÖеÄÖµ²»ÎªÁã¿ÉÄÜָʾϵͳÔÚʹÓ÷ÖÒ³£¬Äú¿ÉÄÜÐèÒª¸ü¶àµÄÄÚ´æ¡£Ò²ÐíÄúÉèÖõĶÑÕ»´óС¶ÔÓÚijЩ
JVM ʵÀýÀ´Ëµ¿ÉÄÜÌ«¸ßÁË¡£Õ⻹¿ÉÄÜÒâζ×ÅÄú·ÖÅäµÄ¶Ñ´óÓÚϵͳÉϵÄÄÚ´æÁ¿¡£µ±È»£¬Äú¿ÉÄÜ»¹ÓÐÆäËûʹÓÃÄÚ´æµÄÓ¦ÓóÌÐò£¬»òÕßÎļþÒ³¿ÉÄÜÕ¼¾ÝÁËÌ«¶àµÄÄÚ´æ¡£
iostat
¿ÉÒÔʹÓà iostat »ñÈ¡ vmstat ËùÌṩµÄÏàͬ CPU ÐÅÏ¢£¬´ËÍ⻹¿ÉÒÔ»ñÈ¡´ÅÅÌ I/O µÈÐÅÏ¢¡£
ps
ps ÊÇÒ»¸ö·Ç³£Áé»îµÄ¹¤¾ß£¬ÓÃÓÚÈ·¶¨ÕýÔÚϵͳÉÏÔËÐеijÌÐòºÍÄÇЩ³ÌÐòÕýÔÚʹÓõÄ×ÊÔ´¡£ËüÏÔʾÓйØÏµÍ³ÉϵĽø³ÌµÄͳ¼ÆºÍ״̬ÐÅÏ¢£¬ÀýÈç½ø³Ì»òÏß³Ì
ID¡¢I/O »î¶¯¡¢CPU ºÍÄÚ´æÊ¹Óá£
´ËÃüÁÔÊÐíÄúÈ·¶¨ËùÓл Java ½ø³ÌµÄ ID¡£Ðí¶àÆäËûÃüÁîÒªÇóÄúÊ×ÏÈÈ·¶¨½ø³Ì ID£»Ê¹Óà -ef
½«Í¨¹ýÏÔʾÆäÃüÁîÐвÎÊýÀ´°ïÖúÄúÇø·Ö¶à¸ö Java ½ø³Ì¡£
ʹÓøÐÐËȤµÄ Java ½ø³ÌµÄ PID£¨½ø³Ì ID£©£¬Äú¿ÉÒÔ¼ì²éÒÑ´´½¨Á˶àÉÙ¸öÏ̡߳£Õâ¶ÔÓÚÏ£Íû¼àÊÓij¸ö´óÐÍÓ¦ÓóÌÐòµÄÇé¿öÓÈÆä·Ç³£ÓÐÓã»Äú¿ÉÒÔͨ¹ý
wc -l ¶ÔÉÏÊöÊä³ö½øÐйܵÀ´«Ê䣬ÒÔ»ñµÃ JVM ´´½¨µÄÏß³ÌÊýÁ¿¡£Õâ¿ÉÒÔÔÚÒ»¸öÑ»·ÖнøÐУ¬ÒÔ±ãÄúÄܹ»¼ì²âijЩÏß³ÌÊÇ·ñÔÚ²»Ó¦¸ÃÆô¶¯»òÖÕÖ¹µÄʱºòÆô¶¯»òÖÕÖ¹ÁË¡£
¶ÔÓÚ»ñÈ¡ %CPU ºÍ %Memory Êý¾Ý£¨°´Ê¹ÓÃÁ¿×î¶àµÄÓû§ÅÅÐò£©·Ç³£ÓÐÓá£Õâ¶ÔÓÚ¿ìËÙ¶¨Î»ÏµÍ³ÉÏµÄÆ¿¾±·Ç³£ÓÐÓá£
ÏÔʾÐéÄâÄÚ´æÊ¹ÓÃÇé¿ö¡£Çë×¢Ò⣬¼àÊÓ±¾»úºÍ Java ¶ÑµÄÊ×Ñ¡·½·¨ÊÇʹÓà svmon¡£±¾ÏµÁÐµÄµÚ 3 ²¿·Ö½«¶Ô´Ë½øÐÐÏêϸ²ûÊö¡£
ʹÓà PID£¨½ø³Ì ID£©£¬Äú¿ÉÒÔ»ñÈ¡½ø³ÌµÄ»·¾³ÉèÖõÄÊä³ö¡£ÀýÈ磬Õ⽫ÏÔʾËùÖ´ÐÐµÄ Java µÄÍêÕûÎļþ·¾¶£¬¶øÆÕͨµÄ
ps Çåµ¥ÖпÉÄܲ»»áÏÔʾ´ËÐÅÏ¢¡£Çë×¢Ò⣬ΪÁË»ñµÃÍêÕûµÄ»·¾³Çåµ¥£¬½¨ÒéÄú¸ÄΪ´´½¨Ò»¸ö javadump Îļþ£¨ÓйØÏêϸÐÅÏ¢£¬Çë²Î¼û
IBM developer kits - diagnosis documentation£©¡£
sar
sar -u -P ALL x y ¿ÉÓÃÓÚ¼ì²é¶à¸ö CPU Ö®¼äµÄ CPU ʹÓÃÆ½ºâ¡£Èç¹ûʹÓÃÇé¿ö·Ö²¼²»Æ½ºâ£¬Õâ¿ÉÄÜָʾӦÓóÌÐòûÓÐÏ̻߳¯£¬²¢ÇÒÄú¿ÉÄÜÐèÒª´´½¨¸ÃÓ¦ÓóÌÐòµÄ¶à¸öʵÀý¡£ÏÂÃæµÄʾÀýÔÚÒ»¸ö´ïµ½
80% ÀûÓÃÂʵÄË«´¦ÀíÆ÷ϵͳÉÏ£¬Ïà¸ôÎåÃëÖÓ½øÐÐÁËÁ½´Î²ÉÑù¡£
# sar -u -P ALL 5 2
AIX aix4prt 0 5 000544144C00 02/09/01
15:29:32 cpu %usr %sys %wio %idle
15:29:37 0 34 46 0 20
1 32 47 0 21
- 33 47 0 20
15:29:42 0 31 48 0 21
1 35 42 0 22
- 33 45 0 22
Average 0 32 47 0 20
1 34 45 0 22
- 33 46 0 21 |
Äú»¹¿ÉÄÜ¿´µ½ËùÓÐ CPU ¶¼´ïµ½ 100% ÀûÓÃÂÊ£¬»òÕßÖ»Êǵ¥¸ö CPU ´ïµ½ 100% µÄÀûÓÃÂÊ£¨µ±
JVM ÔÚÖ´ÐÐѹËõµÄʱºò£©¡£
tprof
tprof ÊÇ AIX ÒÅÁô¹¤¾ßÖ®Ò»£¬¿ÉÒÔÌṩÿ¸ö AIX ½ø³Ì ID ºÍÃû³ÆµÄÏêϸ CPU ʹÓÃÇé¿ö·ÖÎö¡£AIX
5.2 ¶ÔÆä½øÐÐÁËÍêÈ«µÄ¸Äд£¬ÏÂÃæµÄʾÀýʹÓÃÁË AIX 5.1 Óï·¨¡£ÄúÓ¦¸Ã²ÎÔÄ AIX 5.2 Performance
Tools update:Part 3£¬ÒÔÁ˽âеÄÓï·¨¡£
µ÷ÓôËÃüÁîµÄ×î¼òµ¥·½·¨ÊÇʹÓãº
# tprof -kse -x "sleep 10" |
Ê®ÃëÖӺ󣬽«Éú³ÉÒ»¸öÐÂÎļþ __prof.all£¬ÆäÖаüº¬ÓйØÊ²Ã´ÃüÁîÕýÔÚʹÓÃϵͳÉ쵀 CPU µÄÐÅÏ¢¡£ËÑË÷
FREQ£¬¸ÃÐÅÏ¢Ó¦¸ÃÓëÏÂÃæµÄʾÀýÀàËÆ£º
Process FREQ Total Kernel User Shared Other======= === ===== ====== ==== ====== ===== oracle 244 10635 3515 6897 223 0 java 247 3970 617 0 2062 1291 wait 16 1515 1515 0 0 0 ... ======= === ===== ====== ==== ====== ===== Total 1060 19577 7947 7252 3087 1291 |
´ËʾÀý±íÃ÷£¬³¬¹ý°ëÊýµÄ CPU ʱ¼ä¶¼Óë Oracle Ó¦ÓóÌÐò¹ØÁª£¬²¢ÇÒ Java ÕýÔÚʹÓôóÔ¼ 3970/19577
»ò 1/5 µÄ CPU¡£wait ͨ³£Òâζ×Å¿ÕÏÐʱ¼ä£¬µ«ÊÇÒ²¿ÉÒÔ°üÀ¨ CPU ʹÓÃÁ¿µÄ I/O µÈ´ý²¿·Ö¡£
Ҫȷ¶¨ÊÇ·ñ´æÔÚ´óÁ¿µÄËøÕùÓã¬Äú»¹Ó¦¸Ã¼ì²é KERNEL ²¿·Ö£º
Total Ticks For All Processes (KERNEL) = 7787
Subroutine Ticks % Source Address Bytes
============= ===== ==== ======== ======== ======
.unlock_enable_mem 2286 11.7 low.s 930c 1f4
.waitproc_find_run_queue 1372 7.0 ../../../../../src/bos/kernel/proc/dispatc
h.c 2a6ec 2b0
.e_block_thread 893 4.6 ../../../../../src/bos/kernel/proc/sleep2. |
¶ÔÓÚ Shared Objects ²¿·Ö£¬²éÕÒ libjvm.a£¬ÌرðÊÇ gc_* »òÓëÈκΠGC ¶ÌÓMark¡¢Sweep¡¢Compact£©½Ó½üµÄÃû³Æ¡£Èç¹û·¢ÏÖ´óÁ¿µÄ´ËÀàÄÚÈÝ£¬Ôò
JVM ½ø³Ì¿ÉÄÜÐèÒª GC ÓÅ»¯¡£
Äú»¹Ó¦¸Ã²éÕÒÕ¼ÓôóÁ¿ CPU ʱÖÓÖÜÆÚ°Ù·Ö±ÈµÄÖØÒª×ÓÀý³Ì¡£ÀýÈ磬ij¸ö tprof Êä³öÏÔʾ clProgramCounter2Method
µÄÖµÏ൱¸ß£º
Subroutine Ticks % Source Address Bytes============= ===== ==== ======== ======== ====== .clProgramCounter2Method 3551 14.8 /userlvl/ca131/src/jvm/sov/cl/clloadercache.c |
ÔÚ¼ì²é¶à¸ö´ËÀàʾÀýÖ®ºó£¬ÎÒÃÇ·¢ÏÖɾ³ý Throwable.printStackTrace µ÷ÓÿÉÒÔ´øÀ´ÖØÒªµÄÐÔÄܸĽø¡£µÃ³öÕâ¸öÌØ¶¨·½·¨ÊÇ´Ó·ÖÎö
tprof Êä³ö¿ªÊ¼µÄ¡£
ÌØ¶¨ÓÚ Java µÄ¼¼ÇÉ
ÔÚ¼¸ºõËùÓÐÇé¿öÏ£¨Çë²Î¼ûÏà¹Ø¼¼ÇÉÒÔÁ˽âÀýÍâÇé¿ö£©£¬JIT ±àÒëÆ÷¶¼±ØÐë´ò¿ª£¬ÒòΪÕâÑùµ¼ÖµÄÐÔÄܲîÒìÏ൱ÓÚÖ´ÐÐ×Ö½Ú´úÂëÓëÖ´Ðб¾»ú´úÂëµÄ²îÒì¡£JIT
Äܹ»Ìṩ¸ß´ï 25 ±¶µÄ¸Ä½ø£¬Òò´ËËü¶Ô Java À´ËµÊÇÖÁ¹ØÖØÒªµÄÐÔÄÜ×é¼þ¡£
À¬»øÊÕ¼¯Ò²ÊÇÁíÒ»¸öÖÁ¹ØÖØÒªµÄ×é¼þ£¬Òò´Ë±ØÐë¸ù¾ÝÐèÒª¶ÔÆä½øÐмì²éºÍµ÷Õû¡£Çë×¢Ò⣬ËäÈ»ÆôÓà GC ¸ú×Ù£¨Ê¹ÓÃ
-verbosegc£©¾ßÓÐÇá΢µÄ¸ºÃæÓ°Ï죬µ«ÊÇÄܹ»¼àÊӺͷÖÎö¶ÑµÄÓŵãÏÔȻʤ¹ý¸ºÃæÓ°Ïì¡£ÁíÒ»ÖÖ¿¼ÂÇ·½Ê½ÔÚÓÚ£¬Á¼ºÃ×´¿öµÄ¶Ñ»á×îС»¯Í¨¹ý
-verbosegc ´òÓ¡µÄÐÅÏ¢Á¿£¬Òò´Ëͨ¹ýµ÷Õû¶Ñ£¬Äú»¹¿ÉÒÔ×îС»¯Ö´Ðи½¼Ó¸ú×ٵĿªÏú¡£
»ùÓÚÌØÕ÷µÄÓÅ»¯¼¼ÇÉ
ÏÂÃæÈÃÎÒÃÇ¿´Ò»ÏµäÐÍÓ¦ÓóÌÐòµÄ²»Í¬ÌØÕ÷¡£ÄúÓ¦¸Ã¶¨Î»µ½ÓëÄúµÄÓ¦ÓóÌÐòÀàËÆµÄÐÐΪ£¨ÎÞÂÛÊÇÉè¼ÆÉϵϹÊǹ۲쵽µÄ£©£¬²¢Ó¦ÓöÔÓ¦µÄ¼¼ÇÉ¡£
Ó¦ÓóÌÐòµÄ³¤ÆÚÐÔ
IBM Java Ö¼ÔÚΪÖîÈç·þÎñÆ÷´úÂëµÈ³¤ÆÚÔËÐеÄÓ¦ÓóÌÐòÌṩ¸üºÃµÄÌØÕ÷¡£Èç¹ûÓÉÓÚijÖÖÔÒòÒª³¢ÊÔÔËÐгÖÐøÊ±¼ä²»µ½
5 ·ÖÖÓ×óÓҵIJâÊÔÓÃÀý£¬Äú¿ÉÄÜ·¢ÏÖ IBM Java Ϊ³¤ÆÚÔËÐжø×öµÄ×¼±¸»áÓ°ÏìÆô¶¯Ê±¼ä¡£Èç¹ûÓ¦ÓóÌÐòµÄ¿ìËÙÆô¶¯±È³¤ÆÚÔËÐиüÖØÒª£¬Çë²é¿´
¼¼ÇÉ CPU001£º¿ìËÙÆô¶¯Ó¦ÓóÌÐòºÍ ¼¼ÇÉ CPU004£ºÍêȫȥµô GC¡£Èç¹û ¼¼ÇÉ CPU004£ºÍêȫȥµô
GC ²»ÊÊÓÃÓÚÄú£¬¿ÉÒÔ¸ÄΪ¿¼ÂÇ ¼¼ÇÉ CPU012£º±ÜÃâ¶Ñ´óСµ÷Õû¡£ÔÚÑϸñµÄÇé¿öÏ£¬Èç¹ûÄúµÄ²âÊÔÓÃÀýÊÇÈç´ËµÄ¶Ì£¬ÒÔÖÂ
JIT ³õʼ»¯Ò²¿ªÏúÌ«´ó£¬Äú¿ÉÄÜÏ£ÍûÔÚ¹Ø±Õ JIT µÄÇé¿öϽøÐвâÊÔ¡£Çë×¢Ò⣬ÎÒÃÇûÓн«½ûÓà JIT ×÷ΪһÏî¶ÀÁ¢µÄÐÔÄܼ¼ÇÉÌá³öÀ´£¬ÕâÊÇÒòΪ£¬ÕýÈçÔÚÉÏһƪÎÄÕÂÖÐËùÌáµ½µÄ£¬Õâ¿ÉÄÜÊÇÓ°ÏìÓ¦ÓóÌÐòÐÔÄܵÄ×îÔã¸âµÄÊÂÇé¡£
Èç¹ûÓ¦ÓóÌÐòÄܹ»³ÐÊÜÆô¶¯Ê±¼äµÄÇá΢ÑÓ³Ù£¬ÄúÓ¦¸Ã²ÎÔÄ ¼¼ÇÉ CPU003£ºÔÚµÚÒ»´Îµ÷ÓÃʱ±àÒëËùÓÐÄÚÈÝºÍ ¼¼ÇÉ
CPU008£ºÊ¹ÓÃСÐͶѡ£¶ÔÓÚ¾ßÓÐÃ÷ÏԵġ°³õʼ»¯¡±ºÍ¡°ÔËÐС±½×¶ÎµÄ³¤Ê±¼äÔËÐеÄÓ¦ÓóÌÐò£¬¼¼ÇÉ CPU003£ºÔÚµÚÒ»´Îµ÷ÓÃʱ±àÒëËùÓÐÄÚÈÝÊǷdz£±ãÀûµÄ¡£
½»»¥¼¶±ð
»ùÓÚÄúµÄ´úÂëÊÇ·ñΪ¼ÆËãÃܼ¯ÐÍ£¬JVM µÄÏìÓ¦ÄÜÁ¦¿ÉÒÔ¾ßÓдӷdz£¹Ø¼üµ½²»Ïà¹ØµÄ²»Í¬ÖØÒªÐÔ¡£Èç¹ûÄúÒª³¢ÊÔÓÅ»¯µÄ
JVM ÔÚÔËÐÐ GUI£¬Ôò³¤Ê±¼äµÄ GC ÔÝÍ£½«ÊDz»¿É½ÓÊܵġ£Óë´Ëͬʱ£¬Èç¹ûÄúÔÚÔËÐжà¸öÔÊÐí¸ºÔØ¹²ÏíµÄ
JVM ʵÀý£¬»òÕßÈç¹ûÕýÔÚÖ´ÐÐÅú´¦ÀíģʽµÄ´¦Àí£¬Ôò³¤Ê±¼äµÄÔÝÍ£Ò²ÐíÊǿɽÓÊܵġ£
¶ÔÓÚÎÞ·¨³ÐÊܳ¤Ê±¼äÔÝÍ£µÄÓ¦ÓóÌÐò£¬Çë²Î¼û ¼¼ÇÉ CPU002£ºÊ¹Óò¢·¢ GC¡¢¼¼ÇÉ CPU004£ºÍêȫȥµô
GC¡¢¼¼ÇÉ CPU007£º½ûÓÃÏÔʽµÄ System.gc() µ÷Óᢼ¼ÇÉ CPU008£ºÊ¹ÓÃСÐͶѡ¢¼¼ÇÉ
CPU009£ºÏû³ý¡°±ê¼Ç¶ÑÕ»Òç³ö¡±ºÍ ¼¼ÇÉ CPU012£º±ÜÃâ¶Ñ´óСµ÷Õû¡£¼¼ÇÉ CPU004 ÔÚ´ó¶àÊýÇé¿öϽöÊÊÓÃÓÚ¶Ìʱ¼äÔËÐеÄÓ¦ÓóÌÐò¡£Çë×¢Ò⣬±ØÐ뽫¼¼ÇÉ
CPU008 ÓëÓ¦ÓóÌÐòµÄÄÚ´æÌØÕ÷½áºÏÆðÀ´¿¼ÂÇ£¬ÒòΪÈç¹ûÓ¦Óò»µ±£¬¿ÉÄÜ»á´øÀ´Ïà·´µÄЧ¹û¡£
¶ÔÓÚÄܹ»³ÐÊܸü³¤Ê±¼äÔÝÍ£µÄÓ¦ÓóÌÐò£¬Ó¦¸Ã¿¼ÂÇ ¼¼ÇÉ CPU003£ºÔÚµÚÒ»´Îµ÷ÓÃʱ±àÒëËùÓÐÄÚÈÝ¡£Çë×¢Ò⣬³¤Ê±¼äÔÝÍ£ÔÚ´ó¶àÊýÇé¿ö϶¼²»ÊǺÃÊÂÇ飬Òò´Ë¼´Ê¹Ó¦ÓóÌÐòÄܹ»³ÐÊÜ£¬Ò²Ó¦¸Ã¿¼ÂDz¢¾ÀÕý¸ÃÎÊÌ⣬ÒòΪÄúÎÞ·¨Í¨¹ý´íÎóÅäÖõÄ
JVM ʵÀý»ñµÃÈκκô¦¡£
CPU ÏûºÄ
Èç¹ûÄúÔÚÔËÐÐÆäÏß³ÌÊýÁ¿³¬¹ýÒѰ²×°µÄ CPU ÊýÁ¿µÄÓ¦ÓóÌÐò£¬Ôò¹Û²ìµ½×ÜÌå CPU ÀûÓÃÂʱ£³ÖÔÚ 90%
»ò¸ü¸ßÊǺÜÕý³£µÄ£¬ÈκÎÀàÐ͵ĺǫ́´¦Àí¶¼»áËðº¦ÄúµÄÓ¦ÓóÌÐòµÄÍÌÍÂÁ¿¡£ÁíÒ»·½Ã棬Èç¹ûÄúµÄÓ¦ÓóÌÐòÊÇ·þÎñÆ÷£¬²¢ÇÒÆäÏß³ÌÔÚ´ó¶àÊýʱ¼ä¶¼´¦ÓÚ˯Ãß״̬£¬Ö»ÓÐÔÚÏìÓ¦´«ÈëµÄÇëÇóʱ²Å»áÐÑÀ´£¬ÄÇôÄúÒ²ÐíÄܹ»Ê¹Óúǫ́´¦ÀíÀ´¼õС³¤Ê±¼ä
GC ÔÝÍ£Ëùµ¼ÖµÄÓ°Ïì¡£
¶ÔÓÚÊôÓÚ CPU Ãܼ¯ÐÍ´Ó¶øÏ£Íû×îС»¯ºǫ́´¦ÀíµÄÓ¦ÓóÌÐò£¬¿ÉÒÔ¿¼ÂÇ ¼¼ÇÉ CPU007£º½ûÓÃÏÔʽµÄ System.gc()
µ÷Óᢼ¼ÇÉ CPU008£ºÊ¹ÓÃСÐÍ¶ÑºÍ ¼¼ÇÉ CPU009£ºÏû³ý¡°±ê¼Ç¶ÑÕ»Òç³ö¡±¡£ÕýÈçÇ°ÃæÌáµ½¹ýµÄ£¬ÄúÓ¦¸Ã½«
¼¼ÇÉ CPU008£ºÊ¹ÓÃСÐͶÑÓëÄÚ´æÌØÕ÷½áºÏÆðÀ´¿¼ÂÇ¡£
¶ÔÓÚ·Ç CPU Ãܼ¯ÐÍÓ¦ÓóÌÐò£¬Ç¿ÁÒ½¨Ò鿼ÂÇ ¼¼ÇÉ CPU002£ºÊ¹Óò¢·¢ GC¡£Õ⽫ͨ¹ý¼õÉÙ GC ÖÜÆÚµ½´ïʱµÄ×ÜÌåÔÝͣʱ¼äÀ´»ñÒæ¡£
¶¨ÒåÁ¼ºÃµÄÒýÓþÖÓòÐÔ
Èç¹ûÓ¦ÓóÌÐòÓÐһЩ¾³£Ö´Ðеķ½·¨£¬¶øÆäËû·½·¨ÔòºÜÉÙÖ´ÐУ¬Ôò ¼¼ÇÉ CPU003£ºÔÚµÚÒ»´Îµ÷ÓÃʱ±àÒëËùÓÐÄÚÈݽ«ÊǷdz£ºÃµÄÐÔÄÜÔöÇ¿·½·¨¡£
²¢ÐжÈ
Èç¹ûÓ¦ÓóÌÐòÔËÐжà¸öÏß³ÌÒÔÍê³É¹¤×÷£¬Ôò»á´Ó¾ßÓдóÁ¿ CPU µÄϵͳÖлñÒæ¡£¶ÔÓÚ¶¯Ì¬·ÖÇø£¬Ìí¼Ó¸ü¶à CPU
»áÁ¢¼´±íÏÖ³ö¸Ä½ø£¬ÒòΪ¿ÉÒÔÁ¢¼´½« Java Ï̵߳÷¶Èµ½ÐÂÌí¼ÓµÄ CPU ÉÏ¡£¼¼ÇÉ CPU005£ºÊ¹ÓôóÁ¿Ï̡߳¢¼¼ÇÉ
CPU006£º¼õÉÙËøÕùÓÃºÍ ¼¼ÇÉ CPU011£º³¬¹ý 24 ¸ö CPU µÄϵͳÌÖÂÛÁ˿ɳ¢ÊÔµÄÆäËûÓÅ»¯¡£
µ«ÊÇÈç¹ûÓ¦ÓóÌÐòÖ»Óе¥¸öÖ´ÐÐỊ̈߳¬Ôò»áÊܵ½µ¥¸ö CPU µÄ´¦ÀíÄÜÁ¦µÄÏÞÖÆ¡£ÔÚ´ËÇé¿öÏ£¬Äú¿ÉÄÜÏ£Íû³¢ÊÔ ¼¼ÇÉ
CPU002£ºÊ¹Óò¢·¢ GC ºÍ ¼¼ÇÉ CPU010£ºµ¥ CPU ϵͳ¡£Èç¹ûÄúÒª³¢ÊÔÔÚij¸öϵͳÉÏÔËÐжà¸ö
JVM ʵÀý£¨ÀýÈ磬ÔÚ¼¯Èº»·¾³ÖУ©£¬Ôò ¼¼ÇÉ CPU010£ºµ¥ CPU ÏµÍ³ÌØ±ðÓаïÖú¡£
Ò»°ã¼¼Çɼ¯ºÏ
ÏÂÎĽ«°Ñ Java µÄÃüÁîÐвÎÊý£¨ÔÚ class/jar ÎļþÃû³ÆÖ®Ç°Ö¸¶¨£©³ÆÎª¡°¿ª¹Ø¡±¡£ÀýÈ磬ÃüÁîÐС°java
-mx2g hello¡±¾ßÓе¥¸ö¿ª¹Ø¡°-mx2g¡±¡£
¼¼ÇÉ CPU001£º¿ìËÙÆô¶¯Ó¦ÓóÌÐò
¿ÉÒÔʹÓ÷DZê×¼¿ª¹Ø -Xquickstart Ëõ¶ÌÓ¦ÓóÌÐòµÄÆô¶¯Ê±¼ä¡£´Ë¿ª¹Ø½« JIT ÓÅ»¯¼¶±ð½µÖÁ×îµÍ£¬²¢ÇÒ½öµ±ÊÊÓõķ½·¨ÔٴαäµÃ»î¶¯Ê±²ÅÖØÐÂÓ¦ÓÃÓÅ»¯¡£¶ÔÓÚÆäÖ´Ðв»ÊǼ¯ÖÐÓÚÉÙÊý·½·¨µÄÓ¦ÓóÌÐò£¬ÕâÑù×öµÄ½á¹ûÊÇÆô¶¯Ê±¼äÒª¿ìµÃ¶à¡£
Çë×¢Ò⣺ÓÉÓÚ¶à½×¶ÎµÄÓÅ»¯·½·¨£¬´Ë¿ª¹Ø¿ÉÄܶԳ¤ÆÚÔËÐеÄÓ¦ÓóÌÐò¾ßÓиºÃæÓ°Ïì¡£Çë×¢Ò⣺
¼¼ÇÉ CPU002£ºÊ¹Óò¢·¢ GC
¿ÉÒÔÖ¸¶¨¡°²¢·¢±ê¼ÇÀ¬»øÊÕ¼¯²ßÂÔ¡±(Concurrent Mark Garbage Collection
Policy)£¬ÒÔ±ã¼õÉÙ GC ÖÜÆÚÒýÈëµÄÔÝͣʱ¼äÁ¿¡£ÕâÊÇʹÓà -Xgcpolicy:optavgpause
¿ª¹ØÀ´Ö¸¶¨µÄ¡£
Çë×¢Ò⣺ÔÚijЩÇé¿öÏ£¬CPU Ãܼ¯ÐÍÓ¦ÓóÌÐò¿ÉÄÜ»áÔÚÖ¸¶¨Á˲¢·¢±ê¼ÇµÄÇé¿öϱíÏÖ³öÍÌÍÂÁ¿Ï½µ¡£
¼¼ÇÉ CPU003£ºÔÚµÚÒ»´Îµ÷ÓÃʱ±àÒëËùÓÐÄÚÈÝ£¨»òÑ¡¶¨µÄ·½·¨£©
¿ÉÒÔ½«»·¾³±äÁ¿ IBM_MIXED_MODE_THRESHOLD ÉèÖÃΪ 0£¬´Ó¶ø¹Ø±Õ»ìºÏģʽµÄ½âÊÍÆ÷
(Mixed-Mode interpreter)¡£Æä½á¹ûÊÇËùÓз½·¨¶¼½«ÔÚµÚÒ»´Îµ÷ÓÃʱ½øÐÐ JIT ±àÒë¡£½«ÏÂÃæÕâÒ»ÐÐÄÚÈÝÌí¼Óµ½»·¾³ÉèÖÃÖУ¬»òÕß¼òµ¥µØÔÚÆô¶¯
Java ǰÔËÐдËÐÐÃüÁ
export IBM_MIXED_MODE_THRESHOLD=0 |
»¹¿ÉÒÔ¶Ô·ÇÁãÖµ½øÐÐÊÔÑ飬ÒÔÈ·¶¨ÊÇ·ñÓÐij¸öÌØ¶¨µÄ MMI ãÐÖµ¿ÉÒÔ±ÈÁãÖµÌṩ¸üºÃµÄÐÔÄÜ¡£¶ÔÓÚ AIX£¬Java
1.3.1 ʹÓà 600 ×÷ΪãÐÖµ£¬¶ø Java 1.4 ÔòʹÓÃÒ»¸ö´óÓÚ 1000 µÄÖµ£¨Çë×¢Ò⣬ÕâЩֵ¿ÉÄÜ»á¸ü¸Ä£©¡£IBM
developer kits - diagnosis documentation ÔÚ¡°JIT Diagnostics¡±Ò»ÕÂÏÂÃæµÄ¡°Selecting
the MMI Threshold¡±Ð¡½ÚÖÐÌṩÁ˸ü¶àÐÅÏ¢¡£
Èç¹ûÄúֻϣÍûÓ°ÏìijЩÀ࣬¿ÉÒÔ¸ÄΪʹÓà JITC_COMPILEOPT=FORCE(0){classname}{methodname}¡£Ê¾Àý£º
export JITC_COMPILEOPT=FORCE(0){com/myapp/*}{*} |
´ËʾÀýÔÚµÚÒ»´Î¼ÓÔØÊ±±àÒë com.myapp.* °üÖеÄËùÓÐÀàµÄËùÓз½·¨¡£
export JITC_COMPILEOPT=FORCE(0){*}{uniqueName} |
´ËʾÀýÔÚµÚÒ»´Î¼ÓÔØÊ±±àÒëËùÓÐÃûΪ¡°uniqueName¡±µÄ·½·¨¡£
export JITC_COMPILEOPT=FORCE(0){com/myapp/special}{SpecialMethod} |
´ËʾÀý½öÔÚµÚÒ»´Î¼ÓÔØÊ±±àÒëÕâ¸öÌØ¶¨µÄ·½·¨¡£³ýÁË *£¨±íʾÁã¸ö»ò¶à¸ö×Ö·û£©ÒÔÍ⣬»¹¿ÉÒÔʹÓá°?¡±×÷Ϊµ¥¸ö×Ö·ûµÄͨÅä·û¡£
¿ÉÒÔʹÓÃÒÔÏÂÓï·¨Ö¸¶¨¶à¸öÀàºÍ/»ò·½·¨£º
export JITC_COMPILEOPT=FORCE(0){class1}{method1}{class2}{method2} |
È·±£ÓÃÎĵµÇå³þµØËµÃ÷ÕâÊÇÒ»¸öÓÅ»¯¶ø²»ÊÇÐÞ¸´£¡
Çë×¢Ò⣺ӦÓóÌÐòµÄÆô¶¯Ê±¼ä¿ÉÄÜÓÉÓÚ´ËÉèÖöøÑÓ³¤¡£
¼¼ÇÉ CPU004£ºÍêȫȥµô GC
¿ÉÒÔ½«Æô¶¯ºÍ×î´ó¶Ñ´óСÉèÖÃΪ·Ç³£´óµÄÖµ£¬ÒÔ±ãÔÚÔËÐÐÆÚ¼ä²»»á·¢ÉúÈκηÖÅä¹ÊÕÏ¡£Ó¦¸ÃΪÕâЩÔËÐÐÆôÓà verbosegc£¬ÒÔÈ·±£¸Ã²ßÂÔÓÐЧ£¡
Çë×¢Ò⣺µ± GC ·¢Éúʱ£¬ÆäÖÜÆÚ¿ÉÄÜ»áÏ൱³¤£¬Òò´ËÖ»ÄÜÔÚ¼«ÉÙµÄÇé¿öÏÂʹÓô˼¼ÇÉ¡£
¼¼ÇÉ CPU005£ºÊ¹ÓôóÁ¿Ïß³Ì
¶ÔÓÚÀ©Õ¹µ½¸ü´óÊýÁ¿µÄỊ̈߳¬ÄúÓ¦¸ÃʹÓà -Xss ¿ª¹ØÀ´Ö¸¶¨Ò»¸öСÓÚȱʡֵ£¨Í¨³£Îª 512 K£¬µ«ÊÇ¿ÉÄÜËæ
Java °æ±¾¶øÒ죩µÄÖµ¡£Õ⽫ʹÄú¿ÉÒÔÀ©Õ¹µ½¸ü´óÊýÁ¿µÄỊ̈߳¬Í¬Ê±¼õСӦÓóÌÐòµÄ±¾»úÄÚ´æÕ¼Óÿռ䡣
Çë×¢Ò⣺Èç¹û¶ÑÕ»´óС̫С£¬Äú¿ÉÄÜ»áÓöµ½¶ÑÕ»Òç³ö (Stack Overflow) Òì³£¡£
¼¼ÇÉ CPU006£º¼õÉÙËøÕùÓÃ
Èç¹ûÓ¦ÓóÌÐòÌåϵ½á¹¹ÔÊÐíµÄ»°£¬Äú¿ÉÒÔ³¢ÊÔÔËÐжà¸ö Java ʵÀý£¬ÒÔ¼õÉÙËøÕùÓá£ÕâÊÇͨ¹ýÔÊÐí´ËÀàÅäÖõÄÓ¦ÓóÌÐò·þÎñÆ÷À´´Ù½øµÄ£»ÀýÈ磬WebSphere
ÔÊÐíÄúÔÚͬһ̨ÎïÀí¼ÆËã»úÉÏʹÓöà¸ö½Úµã¡£
Çë×¢Ò⣺ÕâÖ»ÄÜÑÚ¸ÇÎÊÌ⣻ÄúÓ¦¸Ã¸´²éµ¼Ö¹ý¶àËøÕùÓõĴúÂ벿·Ö¡£¿ÉÒÔʹÓà tprof »ò Java ·ÖÎöÀ´¶¨Î»ÐèÒª¸´²éµÄÇøÓò¡£
¼¼ÇÉ CPU007£º½ûÓÃÏÔʽµÄ system.gc() µ÷ÓÃ
ʹÓ÷DZê×¼¿ª¹Ø -Xdisableexplicitgc£¬Äú¿ÉÒÔ¼õÉÙ¶Ôɾ³ý´úÂëÖÐµÄ System.gc()
µ÷ÓõÄÐèÒª¡£É¾³ýÕâЩµ÷Óý«°Ñ GC ¹ÜÀí¹¤×÷·µ»¹¸ø JVM¡£
Çë×¢Ò⣺Èç¹ûÐèҪͨ¹ý¹¦ÄÜÀ´ÊµÏÖ System.gc() µ÷Óã¨ÀýÈ磬ͨ¹ýÓ¦ÓóÌÐòÆÁÄ»Éϵİ´Å¥£©£¬Õ⽫ÊǸö»µÖ÷Ò⣬ÒòΪ°´Å¥½«±äµÃÎÞ·¨¹¤×÷¡£Ò²ÐíÓÐ
System.gc() µ÷ÓÿÉÒÔ´æÔÚÓÚ´úÂëÖÐµÄÆäËûºÏÀíÀíÓÉ¡£
¼¼ÇÉ CPU008£ºÊ¹ÓÃСÐͶÑ
ʹÓþö²»ÔÊÐíѹËõʱ¼ä±äµÃ²»¿ÉÈÌÊܵĶѴóС¡£Èç¹ûÓÉÓÚijÖÖÔÒò£¬Ó¦ÓóÌÐò×îÖÕµ¼Ö´óÁ¿µÄѹËõ£¬ÔòʹÓà 256
MB µÄ¶ÑËù»¨µÄѹËõʱ¼äÒª±È 1 GB µÄ¶ÑÉٵöࡣ
Çë×¢Ò⣺Èç¹ûÓÉÓÚ½ÏСµÄ¶Ñ¶ø´¥·¢¸ü¶àµÄѹËõ£¬Ôò´ËÓÅ»¯¾ÍÊÂÓëԸΥÁË¡£Ö»ÄÜÔÚÒª´´½¨´óÁ¿ÁÙʱ¶ÔÏóµÄÇé¿öÏÂʹÓô˼¼ÇÉ¡£
¼¼ÇÉ CPU009£ºÏû³ý±ê¼Ç¶ÑÕ»Òç³ö
Èç¹ûÔÚ verbosegc ÈÕÖ¾Öй۲쵽¡°±êÖ¾¶ÑÕ»Òç³ö (Mark Stack Overflow)¡±ÏûÏ¢£¬¿ÉÒÔ¼õÉÙ¶ÑÖб£³Ö»î¶¯µÄ¶ÔÏóÊýÁ¿£¬ÒÔ±ãÕâЩÏûÏ¢Ïûʧ¡£½Ïа汾µÄ
Java ¾ßÓкõöàµÄ MSO ´¦Àí¹¦ÄÜ¡£ÕâÀï°üÀ¨´Ë¼¼ÇÉÊÇÒòΪ MSO »áÑÏÖØËðº¦Ó¦ÓóÌÐòµÄÐÔÄÜ£¬±ØÐ뽫ÆäÊÓΪȱÏݶø²»ÊÇÓÅ»¯¡£
¼¼ÇÉ CPU010£ºµ¥ CPU ϵͳ
¿ÉÒÔʹÓà bindprocessor ÃüÁ Java ½ø³Ì°ó¶¨µ½Ä³¸öÌØ¶¨µÄ´¦ÀíÆ÷¡£¿ÉÒÔ¿¼ÂÇʹÓô˼¼ÇÉÒÔ±ÜÃâ¶à¸ö
JVM ʵÀýÕù¶á CPU µ÷¶È¡£Èç¹ûϵͳ²»Êǵ¥´¦ÀíÆ÷¼ÆËã»ú£¬Äú¿ÉÄÜÏ£ÍûÉèÖà -Xgcthreads0¡£
Èç¹ûÄúÊÇÔÚ²»»á½øÐÐÖØÐÂÅäÖÃÒÔ¶¯Ì¬Ìí¼Ó¸ü¶à CPU µÄµ¥ CPU µÄ LPAR ÉÏÔËÐÐÓ¦ÓóÌÐò£¬Ôò»¹¿ÉÒÔµ¼³ö
NO_LPAR_RECONFIGURATION=1£¬ÒÔÔÚijЩÇé¿öÏ»ñµÃ¸üºÃµÄÐÔÄÜ¡£
Çë×¢Ò⣺ÄúÊÇÔÚͨ¹ýÆÈʹ Java ÔÚµ¥ CPU ÅäÖÃÖÐÔËÐУ¬´Ó¶ø½ûÓÃÆä×î¼ÑµÄÐÔÄÜÌØÐÔ¡£NO_LPAR_RECONFIGURATION
»¹½«½ûÓà Java ÊÊÓ¦ DLPAR µÄ¶¯Ì¬¿ÉÅäÖÃÐÔ£¬Òò´ËÓ¦¸ÃÉ÷Óá£
¼¼ÇÉ CPU0011£º³¬¹ý 24 ¸ö CPU µÄϵͳ
¶ÔÓÚ 24 ÖÁ 32 ·ϵͳ£¬ÄúÓ¦¸ÃʹÓà -Xgcpolicy:subpool ½øÐвâÊÔ£¬ÒòΪ´Ë GC
²ßÂÔÊÇΪÁ˸ø½Ï´óÐÍÅäÖý»¸¶¸üºÃµÄÐÔÄܶøÓÅ»¯µÄ¡£
¼¼ÇÉ CPU012£º±ÜÃâ¶Ñ´óСµ÷Õû
¿ÉÒÔ±£³Ö¹Ì¶¨´óСµÄ¶Ñ£¬ÒÔ±ÜÃâÔÚ¿ÕÏпռä°Ù·Ö±ÈµÍÓÚ£¨»ò¸ßÓÚ£©Ä³¸öֵʱ»¨Ê±¼äÈ¥µ÷Õû¶ÑµÄ´óС¡£
Çë×¢Ò⣺¼´Ê¹¶ÑʹÓÃÂÊΪÆä×î¸ßˮƽµÄ 10%£¬Ó¦ÓóÌÐòµÄÄÚ´æÕ¼ÓÿռäÒ²½«±£³ÖÔÚÖ¸¶¨µÄ¶Ñ´óС¡£
×ܽá
±¾ÎĽéÉÜÁËÈçºÎʹÓà AIX ¹¤¾ß½øÐÐ Java ÐÔÄܼàÊÓ£¬²¢ÌṩÁË¿ÉÓÃÀ´ÓÅ»¯Ó¦ÓóÌÐòµÄ
CPU ʹÓõij£Óõ÷ÕûÁÐ±í¡£±¾ÏµÁÐÖеÄÏÂһƪÎÄÕ½«ÌÖÂÛ AIX É쵀 Java Ó¦ÓóÌÐòµÄÄÚ´æµ÷Õû¡£
|