ÒÔÏµĻ·¾³¾ß±¸Ò»¶¨µÄ´ú±íÐÔ£¬¿ÉÒÔ˵ÊÇÖÐСÆóÒµÒ»°ãÅäÖú͹¤×÷»·¾³¡£Ï£Íûͨ¹ý±¾ÎÄÄÜÈôó¼ÒÀí½âLinuxÏÂMySQLÊý¾Ý¿âÐÔÄܵ÷ÓÅ·½·¨¡£51CTOÏòÄúÍÆ¼ö¡¶MySQLÊý¾Ý¿âÈëÃÅÓ뾫ͨ½Ì³Ì¡·¡£
Ó²¼þ×¼±¸»·¾³£º
Ó²ÅÌ£º 16¿é SAS 15K RAID5 ´ø512MCache
CPU£º AMD 4ºËÁ½¿Å
Äڴ棺 16G
Èí¼þ»·¾³£º
²Ù×÷ϵͳ£º RedHat AS4.6 2.6.9-67.ELsmp MySQL: 5.0
ÏÂÃæ·Ö±ð¸ù¾Ý²»Í¬³¡¾°½øÐÐÐÔÄܵ÷ÓÅ£º
ʹÓó¡¾°A£º д²Ù×÷£¨²åÈë/²éѯ/ɾ³ý£©Ãܼ¯£¬¶øÇÒÊý¾ÝÈÝÁ¿Ô¶Ô¶³¬Ó²¼þ×¼±¸»·¾³£º
Ó²ÅÌ£º 16¿é SAS 15K RAID5 ´ø512MCache
CPU£º AMD 4ºËÁ½¿Å
Äڴ棺 16G
Èí¼þ»·¾³
²Ù×÷ϵͳ£º RedHat AS4.6 2.6.9-67.ELsmp
MySQL: 5.0
ÏÂÃæ·Ö±ð¸ù¾Ý²»Í¬³¡¾°½øÐÐÐÔÄܵ÷ÓÅ£º
ʹÓó¡¾°A£º
д²Ù×÷£¨²åÈë/²éѯ/ɾ³ý£©Ãܼ¯£¬¶øÇÒÊý¾ÝÈÝÁ¿Ô¶Ô¶³¬¹ýÄÚ´æµÄ´óС£¨×îСÊÇ200GÒÔÉÏ£¬ÉõÖÁ¸ü´óµ½1.5TÒÔÉÏ£©£¬ ÿÃëÐèÒªÒÔǧΪµ¥Î»µÄÊÂÎñ²Ù×÷
Êý¾Ý¿É¿¿ÐÔÒªÇ󲻸ߣ¬ÔÊÐí¶ª¼¸Ìõ¼Ç¼£¨Ó²¼þ³ö¹ÊÕÏʱ£©
ÓÅ»¯·½Ê½£º
ÔÚÕâÖÖÇé¿öÏ£¬Êý¾Ý¿âµÄCache»ù±¾ÉÏÃüÖÐÂÊÊǷdz£µÍµÄ£¬¶ÔÊý¾Ý¿âµÄ²Ù×÷»ù±¾ÉϾÍÊǶԴÅÅ̽øÐвÙ×÷£¬ Òò´Ë²àÖØµãÓ¦¸ÃÊǶԴÅÅÌÏà¹ØÓÅ»¯¡£
Ê×ÏÈÊÇ¿¼ÂÇÊý¾Ý¿â´æ´¢ÒýÇæ£¬ÓÉÓÚÉæ¼°²åÈë/ɾ³ý/²éѯµÈ²Ù×÷£¬¶øÇÒÒªÖ§³ÖÊÂÎñ£¬Òò´Ë¿¼ÂÇʹÓÃInnoDB´æ´¢ÒýÇæ£¬²»¿¼ÂÇMyIsamÔÒòÊǸô洢ÒýÇæÊÇ±í¼¶Ëø£¬ÓÐÊý¾Ýɾ³ýʱ»á·Ç³£Âý¡£
ÉèÖúÏÊʵÄMySQL ²ÎÊý£¬ÓÉÓÚÓÐ16GÄڴ棬Òò´Ë²ÎÊýÉèÖÃÈçÏÂ
innodb_buffer_pool_size=8G innodb_additional_mem_pool_size = 800M, innodb_log_buffer_size = 4M innodb_log_file_size = 500M innodb_log_files_in_group = 4 log-bin
ÒòΪʹÓÃÖ÷±¸¸´ÖÆ£¬Òò´ËÐèÒª´ò¿ªLog-Bin£¬ÕâÀï¾ÍÉæ¼°Ò»¸ösync-binµÄ¸ÅÄȱʡÇé¿öÏ£¬sync-bin ÔÚMySQLÖÐÊǹرյ쬵«´æÔÚÒ»¸ö·çÏÕ£¬ÒòΪдÈÕ־ûÓÐˢе½Ó²ÅÌÖÐÈ¥µÄ»°£¬ÈÕÖ¾ÊÇдÔÚ²Ù×÷ϵͳµÄÎļþϵͳÀïµÄCacheÖУ¬ÕâÑùÈô»úÆ÷¶Ïµç£¬ÄÇôÈÕÖ¾ÐÅÏ¢½«²¿·Ö¶ªÊ§¡£ÎªÁ˼õÉÙÊý¾Ý¶ªÊ§£¬ÎÒÃDzâÊÔÁËsync-bin=1,sync-bin=5ºÍsync-bin=20£¬ÈýÖÖÇé¿ö£¬sync-bin=1µÄÇé¿öÏ£¬¶ªÊ§Êý¾Ý×¸ÅÂÊÊǶªÒ»¸öÊÂÎñµÄÊý¾Ý£¬µ«ÐÔÄܷdz£²î£»ÉèÖÃsync-bin=5µÄÇé¿öÏ£¬ÐÔÄÜ¿ÉÒÔÌá¸ß1±¶×óÓÒ£»ÉèÖÃsync-bin=20ʱ£¬ÐÔÄܱÈsync-bin=5ÓÖ¿ÉÒÔÌá¸ß1±¶£¬ÉèÖôóÓÚ20µÄÖµ£¬»ù±¾ÉÏÏà²î²»´ó£¬ÐÔÄÜÌá¸ß²»Á˶àÉÙ£¬×20¸öÊÂÎñÊý¾Ý¶ªÊ§ÊÇÔÚÎÒÃǵÄÔÊÐí·¶Î§Ö®ÄÚ£¬Òò´ËÉèÖÃ20ÊǸöºÏÀíµÄÖµ£¬Õâ¸öÖµ¾ßÌåÈ¡¾öÓÚÄãµÄϵͳÄܹ»×ÔÊÐí¶ªÉÙµÄÊÂÎñÊý¾Ý¡£
ÈôÄãµÄϵͳ¶ÔÊý¾Ý¶ªÊ§²»ÓÚ¿¼ÂÇ£¬¿ÉÒԹرÕsync-bin,ÕâʱÊý¾Ýˢе½Ó²ÅÌÍêȫȡ¾öÓÚ²Ù×÷ϵͳµÄÅäÖã¬Ïà¹ØµÄÅäÖòÎÊýÓÐÈçÏ£º
/proc/sys/vm/dirty_ratio Õâ ¸ö²ÎÊý¿ØÖÆÒ»¸ö½ø³ÌÔÚÎļþϵͳÖеÄÎļþϵͳд»º³åÇøµÄ´óС£¬µ¥Î»Êǰٷֱȣ¬±íʾϵͳÄÚ´æµÄ°Ù·Ö±È£¬±íʾµ±Ò»¸ö½ø³ÌÖÐд»º³åʹÓõ½ÏµÍ³ÄÚ´æ¶àÉÙµÄʱºò£¬ÔÙÓÐ ´ÅÅÌд²Ù×÷ʱ¿ªÊ¼Ïò´ÅÅÌд³öÊý¾Ý¡£Ôö´óÖ®»áʹÓøü¶àϵͳÄÚ´æÓÃÓÚ´ÅÅÌд»º³å£¬Ò²¿ÉÒÔ¼«´óÌá¸ßϵͳµÄдÐÔÄÜ¡£µ«ÊÇ£¬µ±ÄãÐèÒª³ÖÐø¡¢ºã¶¨µÄдÈ볡ºÏʱ£¬Ó¦¸Ã½µ µÍÆäÊýÖµ£¬Ò»°ãȱʡÊÇ 40¡£¸üз½·¨
echo 30 >/proc/sys/vm/dirty_ratio (»òÔòÐÞ¸Ä/etc/sysctl.confÎļþ£¬Ôö¼Ósys.vm.dirty_ratio=30 ÖØÆð»úÆ÷)
/proc/sys/vm/dirty_background_ratio Õâ¸ö²ÎÊý¿ØÖÆÎļþϵͳµÄpdflush½ø³Ì£¬ÔÚºÎʱˢдÅÅÌ¡£µ¥Î»Êǰٷֱȣ¬±íʾϵͳ×ÜÄÚ´æµÄ°Ù·Ö±È£¬Òâ˼Êǵ±´ÅÅ̵ÄÔàÊý¾Ý»º³åµ½ÏµÍ³ÄÚ´æ¶àÉÙµÄʱºò£¬pdflush¿ªÊ¼°ÑÔàÊý¾Ýˢе½´ÅÅÌ¡£Ôö´ó»áʹÓøü¶àϵͳÄÚ´æÓÃÓÚ´ÅÅÌд»º³å£¬Ò²¿ÉÒÔ¼«´óÌá¸ßϵͳµÄдÐÔÄÜ¡£µ«ÊÇ£¬µ±ÄãÐèÒª³ÖÐø¡¢ºã¶¨µÄдÈ볡ºÏʱ£¬Ó¦¸Ã½µµÍÆäÊýÖµ£¬Ò»°ãȱʡÊÇ10¡£
/proc/sys/vm/dirty_writeback_centisecs Pdflushдºǫ́½ø³Ìÿ¸ô¶à¾Ã±»»½ÐѲ¢Ö´ÐаÑÔàÊý¾Ýд³öµ½Ó²ÅÌ¡£µ¥Î»ÊÇ 1/100 Ã롣ȱʡÊýÖµÊÇ500£¬Ò²¾ÍÊÇ 5 Ãë¡£Èç¹ûÄãµÄϵͳÊdzÖÐøµØÐ´È붯×÷£¬ÄÇôʵ¼ÊÉÏ»¹ÊǽµµÍÕâ¸öÊýÖµ±È½ÏºÃ£¬ÕâÑù¿ÉÒ԰Ѽâ·åµÄд²Ù×÷Ï÷ƽ³É¶à´Îд²Ù×÷¡£ÉèÖ÷½·¨ÈçÏ£º
echo 200 >/proc/sys/vm/dirty_writeback_centisecs /proc/sys/vm/dirty_expire_centisecs
Õâ¸ö²ÎÊýÉùÃ÷LinuxÄÚºËд»º³åÇøÀïÃæµÄÔàÊý¾Ý¶à¡°¾É¡±ÁËÖ®ºó£¬pdflush½ø³Ì¾Í¿ªÊ¼¿¼ÂÇдµ½´ÅÅÌÖÐÈ¥¡£µ¥Î»ÊÇ 1/100Ã롣ȱʡÊÇ 30000£¬Ò²¾ÍÊÇ 30 ÃëµÄÊý¾Ý¾ÍËã¾ÉÁË£¬½«»áˢдÅÅÌ¡£¶ÔÓÚÌØ±ðÖØÔØµÄд²Ù×÷À´Ëµ£¬Õâ¸öÖµÊʵ±ËõСҲÊǺõ쬵«Ò²²»ÄÜËõС̫¶à£¬ÒòΪËõС̫¶àÒ²»áµ¼ÖÂIOÌá¸ßÌ«¿ì¡£½¨ÒéÉèÖÃΪ 1500£¬Ò²¾ÍÊÇ15ÃëËã¾É¡£
echo 1500 >/proc/sys/vm/ dirty_expire_centisecs Òò´ËÈôûÓе÷ÕûÕâЩ²ÎÊý£¬È«²¿ÒÔȱʡֵ£¬¶øÇҹرÕsync-binµÄ»°£¬ÄÇô×î¶à¶ªÊ§µÄÊý¾ÝÊÇ£º
5ÃëÖÖ£¨dirty_writeback_centisecs£©Ö®Äڵģ¬Ð¡ÓÚ1.6GµÄÊý¾Ý£¨dirty_background_ratio£¬16G/10=1.6G£©
µ±È»£¬Êµ¼ÊÉÏ5ÃëÖ®ÄÚ²»Ì«¿ÉÄÜд1.6GµÄÊý¾Ý£¬Òò´Ë×¾ÍÊÇ5ÃëÖÓÖ®ÄÚµÄÊý¾Ý¶ªÊ§¡£Òò´ËÈôÒª¹Ø±Õsync-bin£¬ÓÖ²»Ï붪ʧ̫¶àÊý¾ÝµÄ»°£¬¿ÉÒÔͨ¹ýµ÷Õûdirty_writeback_centisecsÕâ¸ö²ÎÊý£¬Èçµ÷Õûµ½200£¨2Ã룩£¬ÕâÑù×î¶à¾Í¶ª2ÃëÖÓµÄÊý¾Ý¡£ÓÖ¿ÉÒÔÌá¸ßÊý¾ÝµÄдÄÜÁ¦¡£
MySQLÀﻹÓÐÒ»¸ö²ÎÊý¿ÉÒÔµ÷Õû£¬Ìá¸ßÊý¾Ý¿âµÄдÄÜÁ¦£¬ÄǾÍÊÇ
innodb_flush_log_at_trx_commit Õâ¸ö²ÎÊýĬÈÏÊÇ1£¬¼´Ã¿´ÎÊÂÎñCommitʱ£¬¶¼Ë¢ÐÂÈÕÖ¾£¬ÒÔÃâÊý¾Ý¶ªÊ§¡£ÒòΪÎÒÃǵÄϵͳÔÊÐí¶ªÊ§ÉÙÁ¿Êý¾Ý£¬Òò´Ë¿ÉÒÔ°Ñinnodb_flush_log_at_trx_commitÉèÖÃΪ2£¬ÔÊÐí¶ªÊ§Ò»¸öÊÂÎñµÄÊý¾Ý£¬¾²âÊÔ£¬·¢ÏÖ2¿ÉÒÔÌá¸ß25%×óÓÒµÄÐÔÄÜ¡£
ÁíÍâ¶ÔÓÚÎļþϵͳµÄmount·½Ê½£¬noatime·½Ê½Ò²¿ÉÒÔÌá¸ß²¿·ÖÐÔÄÜ£¨Êý¾Ý¿âרÓõķþÎñÆ÷£¬Ò»°ãÊÇnoatime£©
µ±Êý¾ÝÓÐɾ³ý¸üвÙ×÷ºó£¬Ê±¼ä³¤ºóÒ»°ãÓÐË鯬£¬µ¼ÖÂË÷Òý¿Õ¼ä²»½ô´Õ£¬Õ¼Óøü¶àµÄÓ²Å̿ռ䣬Òò´Ë»áµ¼Ö²éѯ±àÂ룬½â¾ö°ì·¨ÊǶ¨ÆÚÖ´ÐÐÏÂÃæµÄÓï¾ä£º
ALTER TABLE tbl_name ENGINE=INNODB ÁíÍâÈôsqlÓï¾äÖÐÓÐsort ºÍgroup byÖ®Àà,ÐèÒªÔö´ósort_buffer_size
Õâ¸ö²ÎÊý ÊÇÿ¿Í»§¶ËÁ¬½ÓµÄ,µ±ÓÐsort/group²éѯʱ,»á·ÖÅäsort_buffer_size´óСµÄÄÚ´æ,Òò´ËÈôÁ¬½ÓºÜ¶à,ÔòҪСÐÄ;ºÏÊʵÄÖµ¿ÉÒԲ鿴 SHOW GLOBAL STATUSÀïÃæSort_merge_passesµÄÐÅÏ¢ÒÔ¼°Created_tmp_tablesÖ®ÀàÐÅÏ¢¡£