ãŸããå°ãã®çè«
ãã®ã¹ããŒã ã§äœæ¥ããããã«ããªããåŸ ã£ãŠããã¬ãŒããèžãããšãé¿ããããã«ãç§ã¯çè«ã«å°ãé è¶³ãããŸãã ãã®ã¹ããŒã ãã©ã®ããã«æ©èœããããæ¢ã«ç¥ã£ãŠãããããããã©ã®ããã«é©çšããããããŸã çè§£ããŠããªãå Žåãå®éã®éšåã«çŽæ¥è¡ãããšãã§ããŸãã
ãŸã第äžã«ã PERFORMANCE_SCHEMAã¯éçã§ãã ããã¯ç§ãã¡ã«ãšã£ãŠäœãæå³ããã®ã§ããããïŒ ãããŠããªããããèµ·ãã£ãã®ã§ããïŒ MySQLã¯ãã¹ããå°ãåŠç¿ããŠããã INFORMATION_SCHEMA ãç¹ã«INFORMATION_SCHEMA.PROCESSLISTãã¥ãŒã§äœæ¥ããåŸãã·ã¹ãã ãã¥ãŒã§ã®äœæ¥æ¹æ³ã倿ŽããŸããã SHOW PROCESSLISTã³ãã³ãïŒãªã©ïŒã䜿çšãããšããµãŒããŒïŒ56299 ã ïŒ61186ãããªãŒãºããå ŽåããããŸãã ãã®èª€è§£ã®çç±ã¯ãã°ïŒ42930ã«ããããã®ã³ãã³ããå®è¡ãããšLOCK_thread_countããã¯ãèšå®ãããããšãæç¢ºã«ç€ºãããŠããŸãã ããã¯ãMySQLãã§ããªããšããäºå®ã«ã€ãªãããŸããæ°ããã»ãã·ã§ã³ã®æ¥ç¶ãæéåãã®åæãæ°ãããã€ããªãã°ã®äœæãªã©ã ãã®ãã¥ãŒããã¯ã¹ãããã¯ããããšã¯ããšã³ãžã³å šäœã«ãšã£ãŠéèŠã§ãã ããã¯ãã¹ã¬ããã«ããåçã¡ã¢ãªå²ãåœãŠã®å¯èœæ§ã®ããã«è¡ãããŸããã ãã®ãããããæç¹ã§ãã»ãã·ã§ã³ãã©ã¡ãŒã¿ãèŠæ±ãããšãã«ããã¥ãŒã¯è§£æŸãããã¡ã¢ãªé åã«ã¢ã¯ã»ã¹ããããšã©ãŒãåãåãããµãŒããŒå šäœããã£ã±ãã«ããŸãã ãœãŒã¹ã³ãŒãPERFORMANCE_SCHEMAã¯ãmallocã¿ã€ãã®ã¡ã¢ãªã®åçå²ãåœãŠã«ã³ãã³ãã䜿çšããŸããã ã¡ã¢ãªã®å²ãåœãŠã¯ããµãŒããŒã®èµ·åæã«äžåºŠã ãå®è¡ãããŸãã ãããã£ãŠããã®ã¹ããŒã ã®ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒãå®è¡æã«å€æŽããããšã¯ã§ããŸããã äžæ¹ã§ãããã¯ããã¯ãªãã§ãã®åè·¯ãåäœãããããšãå¯èœã«ãã仿¹ã§ã¯ããã®æ§æã«ããã€ãã®åé¡ãããããã®ããã€ãã¯PERFORMANCE_SCHEMA ENGINEã«å«ãŸããããŒã«ã«ãã£ãŠãã€ãã¹ãããŸã ã èµ·ååŸããµãŒããŒãåèµ·åããã«ãã®ãšã³ãžã³ãå®å šã«ç¡å¹ã«ããããšã¯ã§ããŸããã
第äºã«ã ãã®æ©èœã¯ããŒã¿ããŒã¹å šäœãç£èŠãããããåœç¶ããã€ãã®ãªãœãŒã¹ãæ¶è²»ããŸãã æ¶è²»ããããªãœãŒã¹ã®éã¯ãèŠæ±ãå®è¡ããããšã§è¡šç€ºã§ããåç·ã®æ§æã«ãã£ãŠç°ãªããŸãã
'performanceïŒ 'ãªã©ã®å€æ°ã衚瀺ããŸãã + ------------------------------------------------- -+ --------- + | 倿°å| 䟡å€| + ------------------------------------------------- -+ --------- + | performance_schema | ãªã³| | performance_schema_max_cond_instances | 1000 | | performance_schema_max_file_instances | 10000 | | performance_schema_max_mutex_instances | 1,000,000 | | performance_schema_max_rwlock_instances | 1,000,000 | | performance_schema_max_table_instances | 50000 | | performance_schema_max_thread_instances | 1000 | | performance_schema_max_file_handles | 32768 | | performance_schema_max_table_handles | 100,000 | | performance_schema_events_waits_history_long_size | 10000 | | performance_schema_events_waits_history_size | 10 | | performance_schema_max_cond_classes | 80 | | performance_schema_max_file_classes | 50 | | performance_schema_max_mutex_classes | 200 | | performance_schema_max_rwlock_classes | 30 | | performance_schema_max_thread_classes | 50 | + ------------------------------------------------- -+ --------- +
æåã®ãã©ã¡ãŒã¿ãŒ- ã€ã³ã¹ã¿ã³ã¹ãæãéèŠã§ãããã®ååãªæ°ã«ãããããŒã¿ããŒã¹ã§çºçãããã¹ãŠãå®å šã«ç£èŠã§ããŸãã ãã ããããã§ã®äž»ãªããšã¯ç¡çããªãããšã§ããããã¯ã mutex + rwlockã®ãã¢ãbuffer_poolã® 16ãããã€ããããã¯ããšã«äœæãããããã§ã ã ã€ãŸããããŒã¿ããŒã¹ã«ååãªéã®RAMãå²ãåœãŠãããŠãããšããªãœãŒã¹ã®æ¶è²»éãæ¶è²»ããããããã®ãã©ã¡ãŒã¿ãŒãå°ããèšå®ãããããšããã¹ãŠã®ã·ã¹ãã ããã»ã¹ãç£èŠã§ããªããªããŸãã ããªããããããæ£ããèšå®ããããšãçè§£ããæ¹æ³ç§ã¯å°ãäœãèšãã§ãããã
ãã³ãã«ã®ãã©ã¡ãŒã¿ãŒã«ãããšãååãããã¹ãŠãæããã ãšæããŸãã ããã¯ãç£èŠã§ããéããŠããããŒãã«ãšãã¡ã€ã«ã®æå€§æ°ã§ãã
ãµã€ãºãã©ã¡ãŒã¿ã®ãµã€ãºã¯ãããŒã¿ããŒã¹ã®è² è·ã«ãã£ãŠç°ãªããŸãã ããªãã¯èªåã§ãããæŸãå¿ èŠããããŸãã ããšãã°ãã¯ãšãªãéå§ãããšãã«ããã®çµ±èšãevents_waits_history_longã§ç¢ºèªããæéããªãå Žåããã®ãã©ã¡ãŒã¿ãå¢ããããšãæ€èšããå¿ èŠããããŸãã
ã¯ã©ã¹ãã©ã¡ãŒã¿ã¯ãç£èŠå¯Ÿè±¡ãªããžã§ã¯ãã®ã¿ã€ãã®æå€§æ°ã瀺ããããçè«äžã¯ããŸãéèŠã§ã¯ãããŸããã ããã§ã¯ããã©ã°ã€ã³éçºè ã«èª¬æããå¿ èŠããããŸãã ç£èŠã«äœããã®çš®é¡ã®ãã¥ãŒããã¯ã¹ãå«ããå¿ èŠããããšèããå Žåãéåžžã¯ãã®çªå·ã瀺ããŸãã ããšãã°ã InnoBDãšã³ãžã³ã«ã¯ãã®ãããªã¯ã©ã¹ã35åãããããŸããã
ãããã®ãã©ã¡ãŒã¿ãèšå®ãããšãã«è²ªæ¬²ã§ããå¿ èŠã¯ãªãããšã«æ³šæããããšãéèŠã§ããè¿ãã«èšå®ãããšãé åã®ç©ºã®èŠçŽ ãæ€çŽ¢ãããšã PERFORMANCE_SCHEMAãéåžžã«é ããªããŸãã çè«çã«ã¯è«ççã§ãã90ïŒ ã®ç©ºã®é åã§ç©ºã®èŠçŽ ãèŠã€ããããšã¯ã90ïŒ ã®ç©ºã®é åã§ãããèŠã€ãããããç°¡åã ããã§ãã
ãã®ããã PERFORMANCE_SCHEMAããªã³ã«ãããšããªãœãŒã¹ãæ¶è²»ãå§ããŸãïŒæã«ã¯éåžžã«å°é£ã«ãªããŸãïŒã ããšãã°ãç£æ¥ããŒã¿ããŒã¹ã®1ã€ã®çµæã§ãã
ãšã³ãžã³performance_schemaã¹ããŒã¿ã¹ã衚瀺ããŸãã + -------------------- + ---------------------------- ---------------------------- + ----------- + | ã¿ã€ã| åå| ã¹ããŒã¿ã¹| + -------------------- + ---------------------------- ---------------------------- + ----------- + ... | performance_schema | events_waits_history.memory | 1,200,000 | ... | performance_schema | events_waits_history_long.memory | 1,200,000 | ... | performance_schema | mutex_instances.memory | 136000000 | ... | performance_schema | rwlock_instances.memory | 200000000 | ... | performance_schema | file_instances.memory | 6240000 | ... | performance_schema | events_waits_summary_by_thread_by_event_name.memory | 17280000 | ... | performance_schema | ïŒpfs_table_shareïŒ.memory | 24,400,000 | ... | performance_schema | performance_schema.memory | 394468704 | + -------------------- + ---------------------------- ---------------------------- + ----------- +
400Mbã®ç©ºãRAMãããå Žåã¯ããªã³ã«ããŸãïŒ
ã¡ã¢ãªæ¶è²»ã«å ããŠããã®ã¹ããŒã ã¯ã¯ãšãªå®è¡ã®é床ãäœäžãããŸãã äžéšã®æšå®ã«ãããšããã¹ãŠã®ãµãã¹ã¯ã©ã€ããŒïŒä»¥äžã§èª¬æããŸãïŒã§ã¯ãããã©ãŒãã³ã¹ã®äœäžã¯èªã¿åãã§çŽ25ïŒ ãæžã蟌ã¿ã§19ïŒ ã«éããŸãããèªã¿åãã®ã¢ã¯ãã£ããã£ã8ïŒ ç£èŠããã«åã«performance_schema = ONã«èšå®ããŸã ã ãããŠãããªãã¯ãã®ããã«ããããªãã«ããããšã¯ã§ããªããšããäºå®ãèæ ®ããŠ-泚æããŠãã ããã
3ã€ç®ã®æ³šæç¹ã¯ãç£èŠã®å質ã§ãã äžèšã§æžããããã«ãå€§èŠæš¡ãªããŒã¿ããŒã¹ã䜿çšããŠããå Žåãããã©ã«ãã§èšå®ãããŠããããã€ãã®ãã©ã¡ãŒã¿ãŒã¯é©åã§ã¯ãªãå¯èœæ§ããããŸãã ã³ãã³ããå®è¡ããããšã§ããã®è¿·æãªèª€è§£ã«ã€ããŠåŠã¶ããšãã§ããŸã
ãperformanceïŒ ããªã©ã®ã¹ããŒã¿ã¹ã衚瀺ããŸãã + ------------------------------------------ + ------ -+ | 倿°å| 䟡å€| + ------------------------------------------ + ------ -+ | Performance_schema_cond_classes_lost | 0 | ... | Performance_schema_thread_instances_lost | 0 | + ------------------------------------------ + ------ -+
ã«ãŠã³ã¿ãŒã®ããããããŒããã倧ããå€ããšãå Žåã察å¿ãããã©ã¡ãŒã¿ãŒãå¢ããå¿ èŠããããŸãã
4çªç®ã ç£èŠå¯Ÿè±¡ãæ£ç¢ºã«çè§£ããã©ã®ãã©ã¡ãŒã¿ããããæ åœããŠããã®ããæ¢ã«çè§£ããŠããå Žåãã·ã¹ãã ã®ãªãœãŒã¹ã®äžéšãç¯çŽã§ããŸãã ãã®è¡šãæŽæ°ããŠãã ããã
select * from setup_consumers; + ---------------------------------------------- +- ------- + | NAME | æå¹| + ---------------------------------------------- +- ------- + | events_waits_current | ã¯ã| | events_waits_history | ã¯ã| | events_waits_history_long | ã¯ã| ... | file_summary_by_event_name | ã¯ã| | file_summary_by_instance | ã¯ã| + ---------------------------------------------- +- ------- +
ãŸãã¯ãã
setup_instrumentsãã*ãéžæããŸãã + ------------------------------------------------- ----------- + --------- + ------- + | NAME | æå¹| æé| + ------------------------------------------------- ----------- + --------- + ------- + | wait / synch / mutex / sql / PAGE ::ããã¯| ã¯ã| ã¯ã| | wait / synch / mutex / sql / TC_LOG_MMAP :: LOCK_sync | ã¯ã| ã¯ã| ... | wait / io / file / innodb / innodb_temp_file | ã¯ã| ã¯ã| + ------------------------------------------------- ----------- + --------- + ------- +
5çªç®ã æ§æãã©ã¡ãŒã¿ãŒãç §äŒããŸãã¯ä»ã®æé©åã倿Žããçµæãè©äŸ¡ãããå ŽåããµãŒããŒãåå§åããå¿ èŠã¯ãããŸããã PERFORMANCE_SCHEMAã®ãã¹ãŠã®ãµããªãŒããŒãã«ãåçŽã«ã©ã³ã¯ä»ãããŠãæ°ããçµæãååŸããŠ1æéåŸ æ©ããçµ±èšãèç©ããŠãçŸåšã®ããŒãã«ãšå±¥æŽããŒãã«ããã¹ãŠã¯ãªã¢ã§ããŸãã
æåŸã«æ³šç®ãããããšã§ãã ããã©ãŒãã³ã¹ãåæãããšããå€ãã®å Žåããã¹ãŠã®ã€ãã³ãã«å¯ŸããæåŸ ããäžéšã®æœè±¡çãªåäœã ãã§ãªããçãçããšããå ·äœçãªç§åäœã§ç¢ºèªãããããšããããŸãã ç°¡åã§ãã
setup_timersãã*ãéžæããŸãã + ------ + ------------ + | NAME | TIMER_NAME | + ------ + ------------ + | åŸ ã£ãŠ| ãµã€ã¯ã«| + ------ + ------------ +
1ã€ã®æ³šæç¹ããããŸãã ããã»ããµãµã€ã¯ã«ã§äœæ¥ããŠããå Žåãå¯èœãªéãæ£ç¢ºãªå€ãåŸãããŸããç§ã«åãæ¿ãããšãããªãã®ãšã©ãŒãçºçããŸãããã®ãšã©ãŒã®å€ã¯åãã·ã³ã«åºæã§ãããããŒãã«ããæ€åºã§ããŸãã
* from performance_timersããéžæããŸãã + ------------- + ----------------- + ----------------- -+ ---------------- + | TIMER_NAME | TIMER_FREQUENCY | TIMER_RESOLUTION | TIMER_OVERHEAD | + ------------- + ----------------- + ----------------- -+ ---------------- + | ãµã€ã¯ã«| 2395388059 | 1 | 72 | | ããã»ã³ã³ã| 1,000,000,000 | 1000 | 513 | | ãã¯ãã³ã³ã| 1,000,000 | 1 | 207 | | ããªã»ã³ã³ã| 1038 | 1 | 225 | | ãã£ãã¯| 101 | 1 | 531 | + ------------- + ----------------- + ----------------- -+ ---------------- +
ç·Žç¿ããããµã€ã¯ã«ãããç§ã«å€æããããã®ãã®ãããªïŒã500ïŒãªãŒããŒãããã¯ããã¹ãã®åèšæéã®çŽ5ïŒ ãæµªè²»ãããšèšãããšãã§ããŸãã ãããããããã®ãªãŒããŒãããã12ïŒ ä»¥äžãå ããè»ãèŠãŸããã ãã®ããããªã¢ã«ã¿ã€ã ã§çµæãè§£éãããšãã¯æ³šæããŠãã ããã
ããã§ãã»ããã¢ãããæŽçããŸããã ããã§ã¯ãè² è·ã«é¢ããããŒã¿ãèŠãããšãã§ããå Žæããå§ããŸããããæãéèŠãªã®ã¯ã©ã®ããã«ã§ããã
ããŒãã«ã衚瀺ããŸãã + ---------------------------------------------- + | Tables_in_performance_schema | + ---------------------------------------------- + ... | events_waits_current | | events_waits_history | | events_waits_history_long | | events_waits_summary_by_instance | | events_waits_summary_by_thread_by_event_name | | events_waits_summary_global_by_event_name | ... | file_summary_by_event_name | | file_summary_by_instance | ... | ã¹ã¬ãã| + ---------------------------------------------- +
ã¹ã¬ãã-INFORMATION_SCHEMA.PROCESLISTã«ãŸã ååšããããã»ã¹ãžã®ãªã³ã¯ãå«ãŸããŸããããã»ã¹ã忢ããå Žåãã¹ã¬ããã¯ãã°ããã®éãã®ãŸãŸã«ãªããŸãã®ã§ãåå ããå Žåã¯å€éšæ¥ç¶ã䜿çšããŠãã ããã
events_waits_current ïŒ history ã hisotry_long ïŒ-ææ°ã®åŸ æ©ã€ãã³ããå«ãŸããããŒãã«ã®ãµã€ãºã¯ãã©ã¡ãŒã¿ãŒã«ãã£ãŠèšå®ãããŸãã ããã¯ããœãŒã¹è¡ãžã®ãªã³ã¯ãå«ãŸããŠãããããçè§£ã§ããªãããã¯ã«çŽé¢ããŠãã人ããã³ãŒãã®ã©ã®ã»ã¯ã·ã§ã³ãé ããªã£ãŠããã®ããçè§£ããããšããŠãã人ã«ãšã£ãŠæãå¿ èŠãªããŒãã«ã§ãã
events_waits_summary-ç é¢ã®å¹³åæ°æž©ãååŸã§ããæ å ±ãå«ãŸããŠããŸãã DBAã«ãšã£ãŠæãè峿·±ãããŒãã«ã
file_summary-å ¥ååºåã®çµ±èšãæãããããªããŒãã«ãååŸã§ããŸãã ããã§ãããŒã¿ããŒã¹ã®äœææã«innodb_file_per_table = 1ãèšå®ããªãã£ãå Žåãããã§InnoDBãšã³ãžã³ã«é©ãããã®ã衚瀺ã§ããªãããšãçè§£ããå¿ èŠããããŸãã
ãã¹ãŠã®ã€ãã³ãããŒãã«ã«ã¯ãå ¥åºåã«é¢ãããã¹ãŠã®æ å ±ãå«ãŸããŸãã file_summaryã§ããçè§£ããããæ¹æ³ã§è€è£œãããå¯èœæ§ãé«ãããã ãwait / io / file /ïŒ ããªã©ã®event_nameãèŠæ±ããç¡èŠããããšããå§ãããŸãã
ç§ãã¡ã¯çè«ãçµããããã§ããå®è·µã«ç§»ããŸãããã ãªãããããã¹ãŠå¿ èŠãªã®ãããã®ã¹ããŒã ããã©ã®ãããªæçšæ§ãåŸãããã®ãã
ç·Žç¿ãã
ããããªãã çŸæç¹ã§ã¯ããã®ã¹ããŒã ããå¿ èŠãªæ å ±ãæœåºããããšã¯ã§ããŸãããäž»ãªã¢ãããŒãã«ã€ããŠèª¬æããŸãã
æãããããªããŒãã«
select substring_indexïŒfile_nameã '/'ã-1ïŒfile_nameãevent_nameãcount_readãcount_write from file_summary_by_instance where COUNT_READ + COUNT_WRITE> 0 order by COUNT_READ + COUNT_WRITE desc limit 30; + ------------------------------------- + ----------- --------------------------- + ------------ + --------- ---- + | ãã¡ã€ã«å| event_name | count_read | count_write | + ------------------------------------- + ----------- --------------------------- + ------------ + --------- ---- + | proc.MYD | wait / io / file / myisam / dfile | 102716781 | 0 | | ib_logfile1 | wait / io / file / innodb / innodb_log_file | 0 | 1,008,958 | | innodb1 | wait / io / file / innodb / innodb_data_file | 43106 | 958070 | | event.MYD | wait / io / file / myisam / dfile | 633053 | 126470 | | ïŒsql149f_301db7_b.frm | wait / io / file / sql / FRM | 180012 | 0 | ... | event.MYI | wait / io / file / myisam / kfile | 0 | 126466 | | ïŒsql149f_337a12_3.frm | wait / io / file / sql / FRM | 71372 | 0 | ... | job_eventsïŒPïŒjob_events_201108.ibd | wait / io / file / innodb / innodb_data_file | 8 | 34662 | ... | olap_transactions_hourly_amount.frm | wait / io / file / sql / FRM | 3637 | 8264 | + ------------------------------------- + ----------- --------------------------- + ------------ + --------- ---- +
次ã®ããšã«æ³šæããŠãã ããã
proc.MYD-ããã·ãŒãžã£ã³ãŒããå«ããã£ã¬ã¯ããªã§ãäœãæžã蟌ãŸããããããèªã¿ãŸãã ããã·ãŒãžã£ããã£ãã·ã¥ãããæ¥ç¶ããŒã«ããªã³ã«ãªãããã«ãã©ã€ããŒãèšå®ãã䟡å€ããããŸãã
ib_logfile1-ã㊠ãããã§ç§ãã¡ã¯ç¡åã§ããããã¯ãŸã InnoDBã§ãã
innodb1 - innodb_file_per_table = 1ãèšå®ããåã«InnoDBããŒãã«ãäœæããããMySQL 5.6ã§åœŒãããã«æžããŠããããšã®è©³çްãªèª¬æãåŸ ã£ãŠããŸãã
event.MYD ã event.MYI-ãŸãã ç§ã¯ãã§ã«ãã®è£œåã®å質ã«ã€ããŠè©±ããŸããã
tmp /ïŒsql149f_301db7_b.frmããã³ãããã«é¡äŒŒãããã®-誰ããç©æ¥µçã«äžæããŒãã«ã䜿çšããŠãã-ã€ãã³ãã§ããè©³çŽ°ãªæ å ±ãæ¢ãå¿ èŠããããŸãã ã€ãã³ãã®å Žåã¯ã ããã»ã¹ãªã¹ãã«åå ã§ããŸããéããããã°ãããããèµ€åã§ãã£ããã§ããŸãã
job_eventsïŒPïŒjob_events_201108.ibdã¯ãinnodbã®æãããããªããŒãã«ã®1ã€ã§ãã ç§ãã¡ã¯ããããæžããŠããŸãããäœãèªãŸãªãã§ã建ç¯ã«ã€ããŠèããŠã¿ã䟡å€ã¯ãããŸãã
olap_transactions_hourly_amount.par-ããã§ã¯ããã¹ãŠãæ£çŽã«æããŸããããŒãã£ã·ã§ã³ã倿Žãããã³ã«ãèªã¿åãã¬ãã«ã¯èšé²ã¬ãã«ã«ã»ãŒå¯Ÿå¿ããŸãã
ããã¯åãªãåæã®äžäŸã§ã;ãã¡ãããããŒãã«ã®æ°ã¯å°ãªããããããŸããããããªããšç®¡çè ã¯åããŒãã«ã§äœãè¡ãããŠããããç¥ãå¿ èŠããããŸãã
æãããããªããã¯
event_nameãsourceãsumïŒtimer_waitïŒtimer_waitãevents_waits_history_longããéžæããŸããevent_nameã¯ãwait / io / fileïŒ ãã°ã«ãŒããšã¯ç°ãªããevent_nameã§ã°ã«ãŒãåããŸãããœãŒã¹ã®é åºã¯3 desc limit 30ã§ãã + ------------------------------------------------- ----- + -------------------- + --------------- + | event_name | ãœãŒã¹| timer_wait | + ------------------------------------------------- ----- + -------------------- + --------------- + | åŸ æ©/åæ/ cond / sql / COND_queue_state | event_queue.cc:765 | 1998358450083 | | åŸ æ©/åæ/ rwlock / myisam / MYISAM_SHARE :: key_root_lock | mi_rnext.cïŒ43 | 82397115 | ... | wait / synch / mutex / sql / LOCK_plugin | sql_plugin.cc:744 | 607986 | + ------------------------------------------------- ----- + -------------------- + --------------- +
ïŒãã®è¡šã®æ å ±ã¯ã©ã€ãããŒã¿ããŒã¹ã§éåžžã«è¿ éã«æŽæ°ãããããã events_waits_summary_by_thread_by_event_nameã䜿çšããŠç é¢ã®å¹³åæ°æž©ãæ£ç¢ºã«èšç®ããããšããå§ãããŸããç¹å®ã®ã³ãŒãè¡ã¯ãããŸããããæ å ±ã¯ãã客芳çã§ãã
1äœãš2äœã®ã®ã£ããã¯æãã§ãã ãœãŒã¹ã«è¡ããŸãã
ifïŒïŒthd-> killedïŒ { ifïŒïŒabstimeïŒ mysql_cond_waitïŒïŒCOND_queue_stateãïŒLOCK_event_queueïŒ; ä»ã« mysql_cond_timedwaitïŒïŒCOND_queue_stateãïŒLOCK_event_queueãabstimeïŒ; //ãããç§ãã¡ã®è¡ã§ã }
ãŸããããã¯å€§äžå€«ã®ããã§ããããã¯ãã ã®ã¹ãªããã§ãã ãã ããMySQLã®ãœãŒã¹ã³ãŒããæ·±ãæãäžããããšã¯æ±ºããŠcampè¡ã§ã¯ãããŸããã ãããªãã§ãããããã¯ãçºçããå Žåã¯ããã¥ãŒããã¯ã¹ã«èµ·å ããæãäžè¬çãªåé¡ã®æŠèŠã説æããŸãã
MySQLã®æè¿ã®ããŒãžã§ã³ã§ã¯ãææ Œãããæ©èœinnobd_adaptive_hash_indexãç»å ŽããŸãã ã ãåç¥ã®ããã«ãBããªãŒæäœã§ã®æ€çŽ¢ã¯æé©ã§ã¯ãããŸããã ãããã£ãŠãããŒãã«ãå°ãããã€ã³ããã¯ã¹ãRAMã«åãŸãå ŽåãMySQLã¯ãã®ãããã¡ãŒã«ããã·ã¥ãããã®åœ¢åŒã§ãã®ã€ã³ããã¯ã¹ã®ã³ããŒãäœæããŸãã ãããã£ãŠãæ€çŽ¢ã¯å¯èœãªéãé«éã«ãªããŸãã ãã ãããã®ãœãªã¥ãŒã·ã§ã³ã«ã¯1ã€ã®èœãšã穎ããããŸãã ãã®ãã£ãã·ã¥ã«ã¯ãåæãã¥ãŒããã¯ã¹ã1ã€ãããããŸããã ãã®ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ãžã®ã¢ã¯ã»ã¹ã¯ãããŒãã«ãŸãã¯ã€ã³ããã¯ã¹ã®èªã¿åããšæžã蟌ã¿ã®äž¡æ¹ã§å®è¡ããããããç«¶åãããã©ã³ã¶ã¯ã·ã§ã³ã倧éã«ããããã®ãã¥ãŒããã¯ã¹ããããã«ãªããšãã¯ãšãªã®äžéšã«è¡šç€ºãããŸãã
| wait/synch/rwlock/innodb/btr_search_latch | btr0sea.c:XXX | 183897 |
ãã®å Žåããã®ãªãã·ã§ã³ãç¡å¹ã«ããããšãæ€èšããå¿ èŠããããŸãã
InnoDBã¯ãã¹ã¬ããã®ä»£ããã«ã¢ãããã¯æäœã䜿çšããŠããã¥ãŒããã¯ã¹ãšèªã¿åã/æžã蟌ã¿ããã¯ãå®è£ ããŸãã ãã®ãããªå®è£ ã¯ãçŸåšãã«ãããã»ããµã·ã¹ãã ã«æé©ãšèŠãªãããŠããŸãã ç§ãçè§£ããŠããéããããã¯ã®ä»£ããã«ãããã€ãã®ã«ãŠã³ã¿ãŒãããã§å¢å ããŸãã æäžéšã§wait / synch / mutex / innodb / rw_lock_mutexãŸãã¯wait / synch / mutex / innodb / thr_local_mutexã®ãããªåŸ æ©ã¿ã€ãã«æ°ä»ããå ŽåããœãŒã¹ã«ç§»åããŠãããã®æåŸ ã®è¡ã#ifdef INNODB_RW_LOCKS_USE_ATOMICSã»ã¯ã·ã§ã³ã®äžã«ãããã©ããã確èªããã®ãé¢åã§ã¯ãããŸããåæã®ã³ã³ãã€ã©ã§ããã ïŒelse / * INNODB_RW_LOCKS_USE_ATOMICS * /ã«ç§»åããããããã®ãã¯ãããžãŒã®é åããã¹ãŠäœ¿çšããããšã¯ãããŸããã
ææ°ã®InnoDBãã©ã°ã€ã³ã®1ã€ã§ãç¹å¥ãªmutex wait / synch / mutex / innodb / flush_list_mutexãå°å ¥ãããŸãã ã ãåç¥ã®ããã«ã倿ŽåŸã®ãã¹ãŠã®ããŒãã£ãããã¯ã¯ãã°ããã®éRAMã§ãã³ã°ãããã°ããããŠãããã£ã¹ã¯ã«ãã©ãã·ã¥ãããŸãã 以åã¯ããããã¡ããŒã«ã®ãã¥ãŒããã¯ã¹ã䜿çšããŠãªã»ãããåæããŠããŸããããããã¯å€±æããæ±ºå®ã§ããããã®ããã»ã¹çšã«å¥ã®ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ãäœæãããŸããã ããã«ãããæ¡åŒµæ§ãåäžãããã£ã¹ã¯ãžã®æžã蟌ã¿ããã»ã¹ã远跡ã§ããŸãã
倿°ã®ãã¥ãŒããã¯ã¹ã®æåŸ å€wait / synch / rwlock / innodb / checkpoint_lockã衚瀺ãããå Žåããã°ãã¡ã€ã«ã®ãµã€ãºãå¢ãããã innodb_max_dirty_pages_pctãã©ã¡ãŒã¿ãŒã®å€ãäœãããå¿ èŠããããŸãã ãã§ãã¯ãã€ã³ãããã»ã¹ã®æ»ææ§ãäœãããŠãã ããã
ããããæã人æ°ãããã®ã¯wait / synch / mutex / innodb / buf_pool_mutexã§ãã ãã®ãã¥ãŒããã¯ã¹ã¯ãããŒã¿ããããã¡ããŒã«ã«ããŒããã圹å²ãæãããŸãã ãã®ãã¥ãŒããã¯ã¹ããããã§ãã³ã°ããå Žåã2ã€ã®ãªãã·ã§ã³ããããŸããå¯èœãªéãå°ãªãããŒã¿ãRAMã«ããŒããããããã«ããŒã¿ããŒã¹ã¢ãŒããã¯ãã£ã倿Žãããã XtraDBã«åãæ¿ããŸãã ãã®ãã©ã°ã€ã³ãInnoBDããã倧ããªããŒã¿ããŒã¹ã§ã¯ããã«å¹ççã«åäœãããããªããŒãžã§ã³ãèããããšããããŸãããç§ã¯èªåã§ãã§ãã¯ããŸããã§ããã
ãã¹ãŠãæªããšåçŽã«èšãããã¯ããããŸãããã ããããã§ããªããå©ããããšãã§ããŸããã ããšãã°ã kernel_mutexã®ãããªããã¯ã¯ãå€ãã®ãã©ã³ã¶ã¯ã·ã§ã³ãæã€äººã«ãšã£ãŠéåžžã«èŠçã§ããåãã©ã³ã¶ã¯ã·ã§ã³ãäœæãããšããçŸåšã®ãã©ã³ã¶ã¯ã·ã§ã³ã®ãªã¹ãå šäœãã¡ã¢ãªé åã«ã³ããŒããå¿ èŠãããããã§ãã ãªã¹ããããªã倧ããå Žåãããã¯ïŒä»ã®ããã»ã¹ã§ã¯ãã€ã¿ã«ïŒãé·æéä¿æãããŸãã
ç§ã®ç·Žç¿ãããinnodbãã©ã°ã€ã³ã®ãã¥ãŒããã¯ã¹ã¯æããã説æãããŠãããšèšããŸãã
æ®ãã«ã€ããŠã¯ãã»ãšãã©ã®å ŽåããœãŒã¹ãèªãå¿ èŠããããŸãã
ãŸãããã®ã¹ããŒã ã䜿çšãããšãã€ã³ã¹ã¿ã³ã¹å šäœã®ããªãŒãºäžã«ããã¯ã远跡ã§ããŸãã ããããããã¯ãŸã£ããç°ãªã話ã§ãã
ãããã«
ãã¡ããããã®ã¡ã«ããºã ã¯ãOracleã§éåžžã«æãããŠãããã¬ãŒã¹ãstatsããã¯ã®ãã¯ãŒã«çœ®ãæãããã®ã§ã¯ãããŸããããä»ã§ã¯ããã«äœãããããŸãã ããŒã¿ããŒã¹ãããªãŒãºããã©ãããå§ããã°ãããããããªãå Žåã¯ã PERFORMANCE_SCHEMAããå§ããŸãã ç¹ã«Oracleã¯ãŸã ååšããããªãªãŒã¹5.6.Xã§ã¯ããã¹ãŠã®ããŒãã«ãšã€ã³ããã¯ã¹ã®äœ¿çšã«é¢ããçµ±èšã衚瀺ãã2ã€ã®ãããããããããã©ãŒãã³ã¹ãçŽæãããŠãããããç¹ã«ããã«ã¯å€ãã®æçšãªæ å ±ãåžžã«ãããŸãïŒç§ã¯ãã§ã«ããã«äžããããŠãããã®ããã§ãã¯ã¢ãŠãããç§ã«ãããå人çã«æ å ±ã¯éåžžã«æçšã§ããããã«èŠãããããæ¬ èœããŠããããŸãã¯éã«æªäœ¿çšã®ã€ã³ããã¯ã¹ãæ€çŽ¢ããã®ã¯çŽ æŽãããããšã§ãã ãŸããç§ãã¡ã¯æåŸ ããŠåŸ ã£ãŠããŸãã
Z.Y. ç¹å®ã®ãã¥ãŒããã¯ã¹åé¡ã®è§£æ±ºã«çŽé¢ããŠããå Žåã¯ãã³ã¡ã³ãã§å ±æããããšãå¿ããªãã§ãã ãããçŸæç¹ã§ã¯ããã¥ãŒããã¯ã¹ã«é¢ããå®å šãªæ å ±ã¯ãªãããã PERFORMANCE_SCHEMAã®äœ¿çšã«åãæ¿ããå€ãã®äººã«åœ¹ç«ã€ãšæããŸã