MySQL/¥Á¥å¡¼¥Ë¥ó¥°

Last-modified: 2011-08-26 (¶â) 18:58:31 (154d)

¥¯¥¨¥êʬÀÏ

¥µ¡¼¥ÐʬÀÏ

ÀßÄêÃͤò³Îǧ

mysql> show variables;

Åý·×¾ðÊó¤ò¼è¤ë

  • ¥Æ¡¼¥Ö¥ë¤Î¥ì¥³¡¼¥É¿ô¡¢¥Ç¡¼¥¿¥µ¥¤¥º¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¥µ¥¤¥º¤Ê¤É¤òÄ´ºº
    select table_name, engine,
    table_rows as tbl_rows,
    avg_row_length as rlen,
    floor((data_length+index_length)/1024/1024) as allMB,
    floor((data_length)/1024/1024) as dMB,
    floor((index_length)/1024/1024) as iMB
    from information_schema.tables
    where table_schema=database()
    order by (data_length+index_length) desc;

¥¹¥í¡¼¡¦¥¯¥¨¥ê¡¼¤Î¥í¥°¤ò¥Á¥§¥Ã¥¯

Àܳ¾õ¶·¤Î³Îǧ

$ mysqladmin -p extended-status | grep -E 'Max|Threads'
Enter password:
| Max_used_connections              | 51             |
| Threads_cached                    | 4              |
| Threads_connected                 | 21             |
| Threads_created                   | 18015          |
| Threads_running                   | 11             |

¥Ç¡¼¥¿¥µ¥¤¥º¤ÈÅëºÜ¥á¥â¥ê¤ÎºÇŬ²½

  • ¡Ö¥Ç¡¼¥¿¥µ¥¤¥º¡ã¥á¥â¥êÍÆÎ̡פò¿´³Ý¤±¤ë
    • ¥Ç¥£¥¹¥¯¤È¥á¥â¥ê¤ÎÆÉ¤ß½ñ¤­Â®ÅÙ¤Ï100ËüÇܤκ¹¤¬¤¢¤ë
    • B¥Ä¥ê¡¼¥¤¥ó¥Ç¥Ã¥¯¥¹¤Îõº÷¡¢¥Æ¡¼¥Ö¥ë¥¹¥­¥ã¥ó»þ¤ËÂçÎ̤Υ·¡¼¥¯¤¬È¯À¸¡£¤³¤ì¤ò¥Ç¥£¥¹¥¯¾å¤Ç¤ä¤ë¤«¡¢¥á¥â¥ê¾å¤Ç¤ä¤ë¤«¤Ç¤«¤Ê¤ê¤Îº¹¤¬½Ð¤ë
    • MySQL¤ÏOS¤Î¥Õ¥¡¥¤¥ë¥­¥ã¥Ã¥·¥å¤òÍê¤ê¤Ë¤¹¤ëÁ°Äó¤Çºî¤é¤ì¤Æ¤¤¤ë
    • OS¤Î¥Õ¥¡¥¤¥ë¥­¥ã¥Ã¥·¥å¡¢MySQLÀìÍѤΥХåե¡¤Î¤É¤Á¤é¤Ç¤âÎɤ¤
    • ¥Ç¡¼¥¿¤ÎÁ´ÍÆÎ̤¬¥á¥â¥ê¤Ë¼ý¤Þ¤é¤Ê¤¤¾ì¹ç¤Ï¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤À¤±¤Ç¤â¥á¥â¥ê¤Ë¼ý¤Þ¤ë¤è¤¦¤Ë¤¹¤ë

¥Æ¡¼¥Ö¥ëÀ߷ס¢SQL¤Î¸«Ä¾¤·

  • MySQL¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎÀ©¸Â¤ËÃí°Õ¤¹¤ë
  • ¾ò·ï¤Ë¤è¤¯»ØÄꤹ¤ë¹àÌܤǽ¸·×¤¬É¬Íפʤâ¤Î¡Ê·ï¿ô¤Ê¤É¡Ë¤Ï¡¢¥Æ¡¼¥Ö¥ë¤Ë¥«¥é¥à¤òÄɲ䷤ơ¢¤½¤Î¥«¥é¥à¤ò¸«¤ë¤è¤¦¤Ë¤¹¤ë
  • ¥¢¥×¥ê¤ò²þ½¤¤·¡¢¥Æ¡¼¥Ö¥ë¹¹¿·»þ¤Ë¾ï¤ËÄɲä·¤¿¥«¥é¥à¤ÎÃͤò¹¹¿·¤¹¤ë¤è¤¦¤Ë¤¹¤ë

¥Á¥å¡¼¥Ë¥ó¥°

»ÈÍÑ¥á¥â¥ê¤ÎÄ´À°

¥Õ¥¡¥¤¥ë¥ª¡¼¥×¥ó¿ô¤ÎÄ´À°

¹âÉé²Ù¤Ê¤È¤­¤Ë°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô

$ mysqladmin -u root -p extended-status | grep Open
Enter password: 
| Open_files                        | 515        |
| Open_streams                      | 0          |
| Open_tables                       | 256        |
| Opened_tables                     | 45281      |

Open_files, Open_tables¤Î¿ô¤¬Â¿¤¤¾ì¹ç¤Ï /etc/my.cnf ¤Î°Ê²¼¤òÄ´À°¡£open_files¤ÎÃͤËÈæ¤Ù¤Ætable_cache¤ÎÃͤ¬Â礭¤¹¤®¤ë¤È¡ÖError in accept: Too many open files¡×¥¨¥é¡¼¤¬È¯À¸¤·¡¢MySQL¤¬µ¡Ç½ÉÔÁ´¤Ë´Ù¤ë¤Î¤ÇÍ×Ãí°Õ¡ª

[mysqld]
open_files=2048
table_cache=512

¾åµ­¤Î¿ô¤òÁý¤ä¤¹¤È¤­¤Ï¡Ö¥æ¡¼¥¶¤´¤È¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¿ô¡×¤Ë¤âÃí°Õ¡£É¬ÍפʤéÁý¤ä¤¹¡£

¡Ú»²¹Í¡Û

I/O¤Îʬ»¶

  • ¥Ç¡¼¥¿¥Ç¥£¥ì¥¯¥È¥ê¤Îʬ»¶
    • ¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ã¤¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò¥Þ¥¦¥ó¥È¤¹¤ë
    • ¥Ç¥£¥ì¥¯¥È¥ê¤ò¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ë¤·¡¢¥Ç¡¼¥¿¤Ï°ã¤¦¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ËÃÖ¤¯
  • MyISAM¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë(MYD)¤È¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë(MYI)¤òÃÖ¤¯¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄê¤Ç¤­¤ë

InnoDBÆÃ²½

my.cnf

MyISAM/InnoDB¶¦ÄÌ

  • max_connections
    • ¥µ¡¼¥Ð¤¬µö²Ä¤¹¤ëºÇÂçÆ±»þÀܳ¿ô
  • query_cache_size (Global)
    • ¥¯¥¨¥ê¤Î¼Â¹Ô·ë²Ì¤Î¥­¥ã¥Ã¥·¥å¡£Æ±¤¸Query¤¬¥­¥ã¥Ã¥·¥å¤Ë¤¢¤ë¾ì¹ç¤ÏSQL¤ò¼Â¹Ô¤»¤º¤Ë¥­¥ã¥Ã¥·¥å¤ÎÆâÍÆ¤òÊÖ¤¹¤Î¤Ç¡¢¥µ¥¤¥º¤ÏÂ礭¤¤Êý¤¬Îɤ¤¡£
    • ³ºÅö¤¹¤ë¥Æ¡¼¥Ö¥ë¤ÎÆâÍÆ¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¥­¥ã¥Ã¥·¥å¤â¤Ê¤¯¤Ê¤ë¤Î¤Ç¡¢¥­¥ã¥Ã¥·¥å¤Ë¤è¤ëÉÔ¶ñ¹ç¤¬À¸¤¸¤ë¤³¤È¤Ï¤Ê¤¤
  • sort_buffer_size (Thread)
    • ¥½¡¼¥È¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë¥¹¥ì¥Ã¥É¤¬¤³¤Î¥µ¥¤¥º¤Î¥Ð¥Ã¥Õ¥¡¤ò³ä¤êÅö¤Æ¤ë

MyISAM´ØÏ¢

  • key_buffer_size (Global)
    • MyISAM¤Î¥­¡¼¤ò¥­¥ã¥Ã¥·¥å¤¹¤ë¥Ð¥Ã¥Õ¥¡¤Î¥µ¥¤¥º
    • MyISAM¤Î¤ß¤ÎMySQLÀìÍÑ¥µ¡¼¥Ð¤Ê¤éRAM¤Î1/4ÄøÅÙ³ä¤êÅö¤Æ¤ë¤ÈÎɤ¤

InnoDB´ØÏ¢

  • innodb_file_per_table
    • ¥Æ¡¼¥Ö¥ëñ°Ì¤Ë .ibd ¥Õ¥¡¥¤¥ë¤òºîÀ®
    • ɬ¤º¡ª¡ª»ØÄꤹ¤ë¤³¤È
  • innodb_buffer_pool_size (Global)
    • InnoDB ¥Æ¡¼¥Ö¥ë¤Î¥Ç¡¼¥¿¤È¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊݸ¤¹¤ë¤¿¤á¤Î¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ
    • ¼ÂºÝ¤Ë¤Ï¤³¤³¤Ç³ä¤êÅö¤Æ¤¿ÃͤÎ5¡Á10%¤°¤é¤¤Â¿¤á¤Ë¥á¥â¥ê¤ò»È¤¦¤Î¤ÇÃí°Õ¤¬É¬Í×
    • MySQL¤«¤ÄInnoDBÀìÍÑ¥µ¡¼¥Ð¤Ê¤éRAM¤Î 70-80% °Ì¤Þ¤Ç¾å¤²¤Æ¤âÎɤ¤¤È¤«¸À¤ï¤ì¤Æ¤¤¤ë¤¬¡¢¼ÂºÝ¤Ë¤ä¤ë¤ÈÍî¤Á¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ç¡¢50%¤Ëα¤á¤Æ¤ª¤¤¤¿Êý¤¬ÌµÆñ
  • innodb_log_file_size
    • ¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ß¡¢ÆÀ¤ËÂ礭¤Ê¥µ¥¤¥º¤Î¥Ç¡¼¥¿¤Î½ñ¤­¹þ¤ßÀ­Ç½¤Ë±Æ¶Á¤¹¤ë
    • Â礭¤Ê¥µ¥¤¥º¤Û¤É¥Ç¡¼¥¿¤Î¥ê¥«¥Ð¥ê»þ´Ö¤òÍפ¹¤ë
    • ¥µ¥¤¥º¤òÊѹ¹¤¹¤ë¾ì¹ç¡¢Àµ¾ïÄä»ß¸å¡¢ºîÀ®ºÑ¤ß¤Î¥í¥°¥Õ¥¡¥¤¥ë(¥Ç¥Õ¥©¥ë¥È¤Ï /var/lib/mysql/ib_logfile**)¤òºï½ü¤·¡¢mysql¥µ¡¼¥Ð¤òµ¯Æ°¤·¤Ê¤ª¤¹É¬Íפ¢¤ê

¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤ÎÄ´À°

¾É¾õ¤ÈÂкö

  • Copying to tmp table ¤¬ÉÑȯ
    • ¥Æ¡¼¥Ö¥ë¤¬MyISAM¤Î¾ì¹ç
      • myisam_sort_buffer_size (Thread) ¤òÂ礭¤¯¤¹¤ë
      • key_buffer_size (Global) ¤òÂ礭¤¯¤¹¤ë¡Ê1/6¡Á1/4¡Ë
    • ¥Æ¡¼¥Ö¥ë¤¬InnoDB¤Î¾ì¹ç
      • sort_buffer_size (Thread) ¤òÂ礭¤¯¤¹¤ë

¥Á¥å¡¼¥Ë¥ó¥°¤Î¼ê½ç

¥Æ¡¼¥Ö¥ë°µ½Ì

myisampack

  • MyISAM¤ÎMYD¥Õ¥¡¥¤¥ë¤ò°µ½Ì
  • ¸µ¥Õ¥¡¥¤¥ë¤Î50¡Á70%

¥Ä¡¼¥ë

Maatkit

mytop

MySQLTuner-perl

MySQL Activity Report

mysqlreport

Ê£¿ô¼Â¹Ô





mixi check

add to hatena