3.1 Êý¾Ý¿âÕûÌåÏìÓ¦ÂýÎÊÌâÅŲé
1. ÅŲéÓ²¼þÐÔÄÜ
Èç¹ûÊý¾Ý¿â³¤Ê±¼ä³öÏÖÏìÓ¦ÂýµÄÎÊÌ⣬ÓпÉÄÜ»áÊÇIOÓöµ½Æ¿¾±£¬¿ÉÒÔͨ¹ý²Ù×÷ϵͳtopÃüÁî²é¿´£¬²é¿´wi%µÄʹÓôóС¡£Í¬Ê±£¬¿ÉÒÔʹÓÃio_testС³ÌÐò½øÐмòÒײâÊÔ£¬¸Ä³ÌÐòλÓÚ´ïÃΰ²×°Ä¿Â¼ÏÂtoolsĿ¼Ï£¬Ê¹Ó÷½·¨£º
./io_test 1 0 8192 /dbdata/testfiles
²ÎÊý˵Ã÷£º 1£ºÒ»¸öÏß³Ì 0£º²»Í£µØÐ´
8192£ºÃ¿´Î˳ÐòдµÄ×Ö½ÚÊý /dbdata/testfiles£ºÄ¿µÄÎļþ ·µ»Ø½á¹ûÈçÏÂ:
db01:/dmdb/dm/tools # ./io_test 1 0 8192 /dbdata/test20131213 delete file failed! [Thread_0] running...... count start...... count end......
file offset in 10 s: 280.492188 MB [start at 0X118BE000, end at 0X2313C000] Ò»°ãÕóÁÐÉÏ10ÃëÖÓ»áд200MBÒÔÉÏ£¬µ«ÊÇIP sanµÄ´æ´¢´ó¸ÅÔÚ100MBµ½200MBÖ®¼ä¡£
2.ÅŲéÊý¾Ý¿âÎÊÌâ
rootÓû§µÇ¼µ½Êý¾Ý¿â·þÎñÆ÷ÉÏ£¬²é¿´dmserver½ø³ÌµÄCPU£¬Ò»°ãÇé¿öÏ£¬ÓÐÒ»ÌõÖ´ÐкÄʱ³¤µÄSQL£¬CPUʹÓÃÂÊ»áÉÏÉý100%£¨·þÎñÆ÷¶àºË£¬ÉÏÏÞCPU¸öÊý*100%£©£¬Èç¹ûCPUʹÓÃÂʺܸß˵Ã÷´æÔÚÖ´ÐÐËÙ¶ÈÂýµÄSQL¡£
²éѯִÐÐÐÔÄܲîµÄÓï¾ä£º
ʹÓÃSYSDBAµÇ¼µ½Êý¾Ý¿âÖУ¬Ö´ÐÐÈçÏÂSQL²éѯִÐÐЧÂʲîµÄSQL£º Select cpu_time_call,login_name,app_name,sql_text from v$session where cpu_time_call>0; ÆäÖУº
Cpu_time_call£ºµ±Ç°Á¬½ÓÕýÔÚÖ´ÐеÄSQLÒѾִÐеÄʱ¼ä£¬µ¥Î»£ººÁÃë Login_name£º¸ÃÁ¬½ÓµÄµÇ¼Ãû App_name£ºµ±Ç°Á¬½ÓµÄ³ÌÐòÃû³Æ Sql_text£ºµ±Ç°Á¬½ÓÕýÔÚÖ´ÐеÄSQL
¸ù¾Ý²éѯ³öµÄ½á¹û¼¯£¬È·¶¨³öÖ´ÐÐËÙ¶ÈÂýµÄSQL¡£
3.2²¿·ÖSQLÓï¾äÖ´ÐÐЧÂʲî
Êý¾Ý¿âÖгöÏÖ²¿·ÖÓï¾äÖ´ÐÐЧÂÊÂýµÄÎÊÌ⣬ÐèÒªÕë¶Ô¾ßÌåµÄSQLÓï¾ä½øÐÐÓÅ»¯£¬ÕÒ³öÖ´ÐÐЧÂÊÂýµÄÓï¾äµÄ·½·¨Í¬ÉÏÃæµÄ·½·¨£¬²é¿´v$session¶¯Ì¬ÊÓͼÖÐcpu_time_callºÄʱ³¤µÄÓï¾ä¡£
ÓÐʱ£¬»¹»á³öÏÖÊý¾Ý¿âÖÐSQLÓï¾äÖ´ÐÐÕý³££¬µ«ÊDz¿·Ö±íÎÞ·¨È«±í²éѯµÄÎÊÌâ¡£¸ÃÎÊÌ⣬һ°ãÊÇÓÉÓÚÏà¹ØµÄ±í¿ÉÄÜ´æÔÚûÓÐÌá½»µÄÊÂÎñ£¬µ¼ÖÂÈ«±í²éѯÎÞ·¨·µ»Ø½á¹û¡£Õë¶Ô´ËÀàÎÊÌâ¿ÉÒÔͨ¹ýÈçÏµķ½·¨½øÐвéѯ£º
selecta.saddr,a.cpu_time_call,a.app_name,a.sql_text fromsystem.sysdba.v$sessiona,system.sysdba.v$lock b wherea.trx_id=b.trx_id;
·´¸´Ö´ÐÐÉÏÊöÓï¾ä£¬Èç¹û½á¹û¼¯ÖÐÏàͬÄÚÈݳ¤Ê±¼ä´æÔÚ£¬¾Í¿ÉÄÜÏà¹ØµÄÊý¾Ý±í³öÏÖÁËδÌá½»µÄÊÂÎñ¡£Èç¹ûÎÞ·¨²éµ½Î´Ìá½»µÄ³ÌÐò£¬¿ÉÒÔÑ¡ÔñʹÓÃdm_close_connect´æ´¢¹ý³ÌÖ÷¶¯¶Ï¿ªÊý¾Ý¿âÁ¬½Ó£¬Ê¹Ó÷½·¨£º
Select dm_close_connect(¡®SADDR¡¯);
ÆäÖеIJÎÊýSADDRÈ¡×ÔÉÏÊö²éѯ³öÀ´µÄSADDR×ֶΡ£
Ò»ÈýÇøÍ¬²½ÎÊÌâÅŲé
Ò»ÈýÇøÍ¬²½¹¦ÄÜÖУ¬Ò»Çødmserver·þÎñ»á½«½ÓÊÕµ½µÄÏà¹Ø²Ù×÷ÏȼǼÈ뻺
´æÎļþÖУ¬»º´æÎļþ´æ´¢ÔÚ/dbbak/asyn_sendÖУ¬ÈýÇøasyn_server½ø³Ì½ÓÊÕÒ»Çø·¢Ë͵ÄÎļþ£¬ÈýÇø»º´æÎļþ´æ·ÅÔÚ/dbbak/asyn_recvÖС£µ±·¢ÏÖÒ»ÈýÇøÍ¬²½²»Õý³£Ê±£¬Í¨¹ýÈçÏµķ½·¨¼ì²é£º
1£® ²é¿´Ò»Çø/dbbak/asyn_sendĿ¼Îļþ¸öÊý£¬Õý³£Çé¿öÏÂÖ»»á´æÔÚÒ»¸ölogÎÄ
¼þ
2£® ÔÚÒ»ÇøµÇ¼µ½Êý¾Ý¿âÖУ¬Ö´ÐÐÈçÏÂSQL£¬²é¿´Ò»ÈýÇøÍ¬²½ËÙ¶È£º
hd1103:/dmdb/dm/bin # LANG=zh_CN hd1103:/dmdb/dm/bin # ./isql SYSDBA/SYSDBA isql V6.0.2.79-Build(2012.12.18) login success SQL>SELECT ASYN_GET_FLOW(10); SELECT ASYN_GET_FLOW(10); ASYN_GET_FLOW(10) 1 ÔÚ10ÃëÄÚ¶ÁÁË7742464×Ö½Ú£¬Æ½¾ùÿÃë756K, ÔÚ10ÃëÄÚдÁË7741440×Ö½Ú£¬Æ½¾ùÿÃë756K 1 rows got
·µ»ØµÄ½á¹ûÖУ¬¶ÁµÄËÙ¶ÈÊÇÏòÈýÇø´«ÊäµÄËÙ¶È£¬Ð´µÄËÙ¶ÈÊÇÔÚ±¾µØ»º´æµÄËÙ
¶È£¬ÀíÂÛÉ϶ÁµÄËÙ¶ÈÓ¦¸Ã´óÓڵǼдµÄËÙ¶È¡£
1. ²é¿´Ò»ÇøÊý¾Ý¿âϵͳÈÕÖ¾/dmdb/dm/log/dm_201305.log£¨ÒÔÄêÔ½á⣩£¬Èç¹û³öÏÖÐÅÏ¢£º
can not connect asyn server(30.10.39.15:12343) ˵Ã÷¸ôÀë×°Öò»Í¨£¬ÐèÒª¼ì²éÍøÂç¡£
2. Ò²¿ÉÒÔÔÚÈýÇø²é¿´Í¬²½ËÙ¶È£¬ÔÚ/dmdb/dm/binĿ¼ÏÂÖ´ÐÐ ./asyn_serverenable_show_net_flow
Ö´ÐÐÍê±Ïºó£¬ÔÚ/dmdb/dm/asyn_log/asyn_server_20130513.logĿ¼Öлá¼Ç¼ÈçÏÂÐÅÏ¢:
hd3016:/dmdb/dm/asyn_log # tail -f asyn_server_20130513.log 2013-05-13 20:02:37 1159063872 10ÃëÖÓ´«ÊäÁË695¸öÊý¾Ý°ü£¬¹²2389K(2.333750M)µÄÊý¾Ý£¬Æ½¾ùÿÃë238.9760K(0.233375M) 2013-05-13 20:02:47 1159063872 10ÃëÖÓ´«ÊäÁË837¸öÊý¾Ý°ü£¬¹²7770K(7.588285M)µÄÊý¾Ý£¬Æ½¾ùÿÃë777.0404K(0.758829M)