ã»ãã·ã§ã³ã远跡ããã©ã®ã€ãã³ããããŒã¿ããŒã¹ãããŒãããŠããããæ£ç¢ºã«ç€ºã
çµ±èšããã¯ã¬ããŒããåé€ããæ©èœããªããããMySQLã«ã¯å€ãã®ç³ãæããããŸããã ããŒãžã§ã³5.5以éãMySQLã¯ãã®åé¡ã解決ããå°æ¥çã«MySQLã§åæ§ã®ããŒã«ã®äœæã«ã€ãªããå¯èœæ§ã®ãããããã¿ã€ããäœæããå¿
èŠæ§ã«å°æããŸããã 仿¥ã®ç§ã®è©±ã¯ã
PERFORMANCE_SCHEMAã®ãããªåŒ·åãªïŒæ®å¿µãªããMySQLéçºè
ã®ã¿ïŒããŒã«ã«ã€ããŠã§ãã ãã®ãããmy.cnfæ§æãã¡ã€ã«ã§
performance_schema = ONãèšå®ãããã®å¶éãããŠãããæ¢ã«éåžžã«è峿·±ãæ©èœã®èª¿æ»ãéå§ããŸãã
ãŸããå°ãã®çè«
ãã®ã¹ããŒã ã§äœæ¥ããããã«ããªããåŸ
ã£ãŠããã¬ãŒããèžãããšãé¿ããããã«ãç§ã¯çè«ã«å°ãé è¶³ãããŸãã ãã®ã¹ããŒã ãã©ã®ããã«æ©èœããããæ¢ã«ç¥ã£ãŠãããããããã©ã®ããã«é©çšããããããŸã çè§£ããŠããªãå Žåãå®éã®éšåã«çŽæ¥è¡ãããšãã§ããŸãã
ãŸã第äžã«ã
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ã®äœ¿çšã«åãæ¿ããå€ãã®äººã«åœ¹ç«ã€ãšæããŸã