performance-tuning-the-mysql-server-in-spooler-server

Page 1

‫‪Performance Tuning the MySQL Server in Spooler Server - 2009 July‬‬

‫‪Performance Tuning the MySQL Server in‬‬ ‫‪Spooler Server‬‬ ‫ﺑﻪ ﻣﻨﻈﻮر اﺳﺘﻔﺎده ﺑﻬﯿﻨﻪ ﺗﺮ از ﺣﺎﻓﻈﻪ ﻓﯿﺰﯾﮑﯽ در ‪ MySQL‬و ﺑﺎﻻﺗﺮ ﺑﺮدن ﺳﺮﻋﺖ ﺗﺮاﮐﻨﺶ ﻫﺎ ‪ ،‬ﺑﺎﯾﺪ ‪ MySQL‬را ﺑﺎ ‪RAM‬‬ ‫ﻫﻤﺎﻫﻨﮓ ﮐﺮد ‪ .‬ﺑﺮاي رﺳﯿﺪن ﺑﻪ اﯾﻦ ﻫﺪف ﻣﯿﺘﻮاﻧﯿﻢ از روش ﻫﺎي زﯾﺮ اﻗﺪام ﮐﻨﯿﻢ ‪:‬‬ ‫ﭘﺲ از ﻧﺼﺐ ‪ MySQL‬ﺻﻔﺤﻪ اي ﺑﺎز ﻣﯿﺸﻮد ﺑﺎ ﻧﺎم ‪ MySQL Server Instance Configuration Wizard‬ﮐﻪ ازﯾﻦ‬ ‫ﺻﻔﺤﻪ ﺑﻪ ﻣﻨﻈﻮر اﻧﺠﺎم ﺗﻨﻈﯿﻤﺎت اوﻟﯿﻪ در ‪ MySQL‬اﺳﺘﻔﺎده ﻣﯿﺸﻮد ) ﺻﻔﺤﻪ ﻣﻮرد ﻧﻈﺮ از ﻣﺴﯿﺮ زﯾﺮ ﻧﯿﺰ ﻗﺎﯾﻞ دﺳﺘﺮﺳﯽ اﺳﺖ(‬ ‫‪Start-> All Program -> MySQL -> MySQL Server X -> MySQL Server Instance Config Wizard‬‬

‫ﺻﻔﺤﻪ اول و دوم را ‪ Next‬ﮐﺮده و در ﺻﻔﺤﻪ ﺳﻮم ﮔﺰﯾﻨﻪ ‪ Detailed Configuration‬را ااﻧﺘﺨﺎب ﻣﯿﮑﻨﯿﻢ‪:‬‬

‫‪Mahdi.Faraji@Live.com‬‬

‫ﺻﻔﺤﻪ| ‪1‬‬


‫‪Performance Tuning the MySQL Server in Spooler Server - 2009 July‬‬

‫در ﺻﻔﺤﻪ ﺑﻌﺪ )‪ 3 (Server Type‬ﺣﺎﻟﺖ دارﯾﻢ ﮐﻪ ﺑﻪ ﺷﺮح زﯾﺮ ﻫﺴﺘﻨﺪ ‪:‬‬ ‫‪ : Developer Machine – 1‬در اﯾﻦ ﺣﺎﻟﺖ ‪ ،‬ﺗﻨﻈﯿﻤﺎت ﺣﺎﻓﻈﻪ ﺑﻪ ﺻﻮرت ‪ Small‬ﻣﯿﺒﺎﺷﺪ ‪ ،‬ﯾﻌﻨﯽ ﻣﻘﺪار ﮐﻤﯽ ﺣﺎﻓﻈﻪ‬ ‫در اﺧﺘﯿﺎر ‪ MySQL‬ﻗﺮار ﻣﯿﮕﯿﺮد و ﺑﻪ ﻫﻤﯿﻦ دﻟﯿﻞ اﯾﻦ روش ﻣﺪ ﻧﻈﺮ ﻧﻤﯿﺒﺎﺷﺪ‪.‬‬ ‫‪ : Server Machine – 2‬در اﯾﻦ ﺣﺎﻟﺖ‪ ،‬ﺗﻨﻈﯿﻤﺎت ﺣﺎﻓﻈﻪ ﺑﻪ ﺻﻮرت ‪ Medium‬اﻋﻤﺎل ﻣﯿﮕﺮرد و ﺣﺎﻓﻈﻪ ﺑﯿﺸﺘﺮي در‬ ‫اﺧﺘﯿﺎر ‪ MySQL‬ﻗﺮار ﻣﯿﮕﯿﺮد‪ .‬اﯾﻦ روش ﺑﯿﺸﺘﺮ ﻣﻨﺎﺳﺐ ﺣﺎﻟﺖ ﻫﺎﯾﯽ اﺳﺖ ﮐﻪ ‪ MySQL‬ﺑﺮ روي ﯾﮏ ﺳﺮور ﺑﺎ ﭼﻨﺪﯾﻦ ﮐﺎرﺑﺮد‬ ‫ﻧﺼﺐ ﺷﺪه اﺳﺖ‪ .‬در ﭼﻨﯿﻦ ﻣﻮاردي ﮐﻪ اط ﺳﺮور اﺳﺘﻔﺎده ﻫﺎي دﯾﮕﺮي ﻧﯿﺰ ﻣﯿﺸﻮد ﺑﺎﯾﺪ ازﯾﻦ ﮔﺰﯾﻨﻪ اﺳﺘﻔﺎده ﮐﺮد‪.‬‬ ‫‪ : Dedicate MySQL Server Machine – 3‬در اﯾﻦ ﺣﺎﻟﺖ ‪ ،‬ﻓﺮض ﺑﺮ اﯾﻦ اﺳﺖ ﮐﻪ اﯾﻦ ﺳﺮور ﻓﻘﻂ ﻣﺨﺼﻮص ﺑﻪ‬ ‫‪ MySQL‬اﺳﺖ و ﻫﯿﭻ ﺳﺮوﯾﺲ دﯾﮕﺮي ﺑﺮ روي آن ﻓﻌﺎﻟﯿﺖ ﻧﻤﯿﮑﻨﺪ‪ ،‬در ﻧﺘﯿﺠﻪ ﻓﻀﺎي زﯾﺎدي از ﺣﺎﻓﻈﻪ را ﺑﻪ ‪MySQL‬‬ ‫اﺧﺘﺼﺎص ﻣﯿﺪﻫﺪ‪ .‬اﯾﻦ روش ﻣﻨﺎﺳﺐ ﺗﺮﯾﻦ روش ﺑﺮاي ‪ Tune‬ﮐﺮدن ‪ MySQL‬در ﺳﺮورﻫﺎي ‪ SPOOLER‬اﺳﺖ‪ .‬و ﻣﺪ ﻧﻈﺮ‬ ‫ﻣﺎ ﻣﯿﺒﺎﺷﺪ ‪ ,‬اﻟﺒﺘﻪ ﻣﻘﺎدﯾﺮ ﺗﻌﺮﯾﻒ ﺷﺪه در اﯾﻦ ﺣﺎﻟﺖ ﺑﺎز ﻫﻢ ﻗﺎﺑﻞ ارﺗﻘﺎء ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﻪ آﻧﻬﺎ اﺷﺎره ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬

‫ﺗﻤﺎﻣﯽ ﺻﻔﺤﺎت ﺑﻌﺪي را ‪ Next‬ﻣﯿﮑﻨﯿﻢ ﺗﺎ ﺑﻪ ﺻﻔﺤﻪ آﺧﺮ ﯾﻌﻨﯽ ‪ Ready to Execute‬ﺑﺮﺳﯿﻢ‪ .‬در اﯾﻦ ﺻﻔﺤﻪ ﺑﺮ روي‬ ‫‪ Execute‬ﮐﻠﯿﮏ ﻣﯿﮑﻨﯿﻢ و ﺻﺒﺮ ﻣﯿﮑﻨﯿﻢ ﺗﺎ ﺗﻨﻈﯿﻤﺎت اﻋﻤﺎل ﮔﺮدد‪.‬‬

‫‪Mahdi.Faraji@Live.com‬‬

‫ﺻﻔﺤﻪ| ‪2‬‬


Performance Tuning the MySQL Server in Spooler Server - 2009 July

.‫ را ﮐﻠﯿﮏ ﻣﯿﮑﻨﯿﻢ‬Finish ‫در آﺧﺮ دﮐﻤﻪ‬

‫ ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ اﯾﻦ ﻗﺴﻤﺖ‬. ‫ وارد ﺷﻮﯾﻢ‬MySQL Administrator ‫ﺑﺮاي ﻣﺸﺎﻫﺪات ﺗﻐﯿﯿﺮا اﻋﻤﺎل ﺷﺪه ﺑﺎﯾﺪ ﺑﻪ‬ : ‫ﻣﯿﺘﻮاﻧﯿﺪ از ﻣﺴﯿﺮ زﯾﺮ اﻗﺪام ﮐﻨﯿﺪ‬ Start-> All Program -> MySQL -> MySQL Server X -> MySQL Administrator

3 |‫ﺻﻔﺤﻪ‬

Mahdi.Faraji@Live.com


Performance Tuning the MySQL Server in Spooler Server - 2009 July

.‫ وارد ﻣﯿﺸﻮﯾﻢ‬Administrator ‫ ﺑﻪ ﻣﺤﯿﻂ‬Password ‫ و‬User ، Host ‫ﭘﺲ از وارد ﮐﺮدن‬

.‫ را اﻧﺘﺨﺎب ﻣﯿﮑﻨﯿﻢ‬Startup Variables ‫در ﺳﻤﺖ ﭼﭗ ﺻﻔﺤﻪ ﮔﺰﯾﻨﻪء‬

4 |‫ﺻﻔﺤﻪ‬

Mahdi.Faraji@Live.com


‫‪Performance Tuning the MySQL Server in Spooler Server - 2009 July‬‬

‫در ﺳﺮﺑﺮگ ‪ ، General Parameters‬ﮔﺰﯾﻨﻪ ‪ Key Buffer‬ﺑﺮاي ﻣﺎ ﺑﺴﯿﺎر ﻣﻬﻢ اﺳﺖ‪:‬‬

‫‪‬‬

‫‪ : Key Buffer – 1‬اﯾﻦ ﮔﺰﯾﻨﻪ ﺳﺎﯾﺰ ﺑﺎﻓﺮ اﺧﺘﺼﺎص داد ه ﺷﺪه ﺑﻪ ﺑﻠﻮك ﻫﺎي اﯾﻨﺪﮐﺲ ﺷﺪه را ﺗﻌﯿﯿﻦ ﻣﯿﮑﻨﯿﺪ ﺑﺮاي ﻫﻨﺪﻟﯿﻨﮓ ﺑﻬﺘﺮ‬ ‫اﯾﻨﺪﮐﺲ ﻫﺎ ﻣﯿﺘﻮان اﯾﻦ ﮔﺰﯾﻨﻪ را اﻓﺰاﯾﺶ داد‪ .‬ﻣﻘﺪار اﯾﻦ ﮔﺰﯾﻨﻪ ﺑﺎ ﺗﻘﺴﯿﻢ ‪ Buffer Pool Size‬ﺑﻪ ﻋﺪد ‪ 1.9‬ﺣﺎﺻﻞ ﻣﯿﮕﺮدد‪.‬‬ ‫‪Key Buffer = Buffer Pool Size / 1.9‬‬

‫ﺣﺎﮐﺜﺮ ﻣﻘﺪار اﯾﻦ ﮔﺰﯾﻨﻪ ﺗﻘﺮﯾﺒﺎ ‪ %40‬از ﻓﻀﺎي ‪ RAM‬ﺳﺨﺖ اﻓﺰاري ﻣﯿﺒﺎﺷﺪ‪.‬‬ ‫‪ : Sort Buffer Size – 2 ‬ﻫﺮ ‪ Thread‬ﺑﻪ ﻣﻨﻈﻮر ‪ Sort‬ﮐﺮدن ﺑﺎﻓﺮي ﮐﻪ ﺑﻪ آن اﺧﺘﺼﺎي داده ﺷﺪه اﺳﺖ ﺑﻪ‬ ‫اﯾﻦ ﻓﻀﺎ ﻧﯿﺎز دارد‪ .‬ﺑﻬﺘﺮ اﺳﺖ ﮐﻪ اﯾﻦ ﻣﻘﺪار ﺑﻪ ﺻﻮرت ﭘﯿﺸﻔﺮض ﺑﺎﻗﯽ ﺑﻤﺎﻧﺪ ﮐﻪ ﻣﻌﻤﻮﻻ ﻋﺪد ‪ 256K‬ﺑﺮ روي آن‬ ‫ﺳﺖ ﺷﺪه اﺳﺖ‪.‬‬ ‫در ﺳﺮﺑﺮگ ‪ InnoDB Parameters‬ﻧﯿﺰ ﭼﻨﺪ ﮔﺰﯾﻨﻪ ﺑﺮاي ﻣﺎ ﻣﻬﻢ ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﻪ ﺷﺮح زﯾﺮﻧﺪ ‪:‬‬

‫‪Mahdi.Faraji@Live.com‬‬

‫ﺻﻔﺤﻪ| ‪5‬‬


‫‪Performance Tuning the MySQL Server in Spooler Server - 2009 July‬‬

‫‪ :Buffer Pool Size ‬اﯾﻦ ﮔﺰﯾﻨﻪ ﻓﻀﺎي ﺗﺨﺼﯿﺺ داده ﺷﺪه ﺑﻪ ﻣﻨﻈﻮر ﻋﻤﻠﯿﺎت ‪ I/O‬در دﺳﺘﺮﺳﯽ ﺑﻪ ﻣﺤﺘﻮﯾﺎت‬ ‫ﺟﺪاول ﻣﯿﺒﺎﺷﺪ‪ .‬در ﺳﺮورﻫﺎي ‪ ) Dedicate‬ﮐﻪ ﻣﺪ ﻧﻈﺮ ﻣﺎ ﻣﯿﺒﺎﺷﺪ( ﻣﯿﺘﻮان اﯾﻦ ﮔﺰﯾﻨﻪ را ﺗﺎ ‪ %80‬ﻓﻀﺎي ‪RAM‬‬ ‫ﺳﺨﺖ اﻓﺰاري اﻓﺰاﯾﺶ داد‪ .‬ﺗﻨﻈﯿﻢ اﯾﻦ ﮔﺰﯾﻨﻪ ﺑﺮ روي ﻣﻘﺪاري ﺑﯿﺶ از ﻣﻘﺪار ﻣﺠﺎز ﺑﺎﻋﺚ ﻣﯿﮕﺮرد ﮐﻪ ‪ MySQL‬ﺑﻪ‬ ‫ﺻﻮرت اﺗﻮﻣﺎﺗﯿﮏ ‪ Stop‬ﺷﻮد و ﯾﺎ در ﻣﻮاردي ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ ﻫﻨﮓ ﮐﻨﺪ و ﻣﺠﺒﻮر ﺑﻪ راه اﻧﺪازي ﻣﺠﺪد ﺳﺮور ﺷﻮﯾﻢ‪.‬‬ ‫‪ :Add. Mem Pool Size ‬از اﯾﻦ ﮔﺰﯾﻨﻪ ﺑﺮاي ذﺧﯿﺮهء ﺳﺎﺧﺘﺎرﻫﺎي داﺧﻠﯽ اﻃﻼﻋﺎت اﺳﺘﻔﺎده ﻣﯿﺸﻮد‪ .‬ﺣﺪاﻗﻞ‬ ‫ﻣﻘﺪار ﭘﯿﺸﻔﺮض اﯾﻦ ﮔﺰﯾﻨﻪ ‪ 2M‬اﺳﺖ اﻣﺎ در ﺻﻮرﺗﯽ ﮐﻪ ﺗﻌﺪاد ‪ Table‬ﻫﺎي ﻣﺎ زﯾﺎد ﺑﺎﺷﺪ‪ ،‬ﺑﺮاي ﮐﺎراﯾﯽ ﺑﻬﺘﺮ‬ ‫ﻣﯿﺘﻮان آﻧﺮا اﻓﺰاﯾﺶ داد‪ .‬اﮔﺮ ‪ InnoDB‬در اﯾﻦ ﮔﺰﯾﻨﻪ ﺧﻮب ﺗﻨﻈﯿﻢ ﻧﺸﺪه ﺑﺎﺷﺪ و ﺑﺎ ﮐﻤﺒﻮد ﻣﻮاﺟﻪ ﮔﺮد‪ ،‬اﯾﻦ ﻗﺴﻤﺖ‬ ‫ﺑﻪ ﺻﻮرت اﺗﻮاﺗﯿﮏ ﻣﻘﺪار ﻣﻮرد ﻧﯿﺎز ﺣﺎﻓﻈﻪ را از ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ ﮐﺴﺐ ﻣﯿﮑﻨﺪ و ﭘﯿﻐﺎم ﺧﻄﺎﯾﯽ را در ‪MySQL Log‬‬ ‫درج ﻣﯿﻨﻤﺎﯾﺪ‪ .‬ﻣﻘﺪار ﻣﻔﯿﺪ اﯾﻦ ﮔﺰﯾﻨﻪ ﺑﺎ ﺗﻘﺴﯿﻢ ‪ Buffer Pool Size‬ﺑﺮ ﻋﺪد ‪ 47‬ﺑﺪﺳﺖ ﻣﯿﺎﯾﺪ‪.‬‬ ‫‪ :Log Buffer Size ‬اﯾﻦ ﮔﺰﯾﻨﻪ ﻣﯿﺰان ﻓﻀﺎي ﭘﯿﺸﻔﺮض در ﺑﺎﻓﺮ ﮐﺮدن ﺗﺮاﮐﻨﺶ ﻫﺎ را ﻧﺸﺎن ﻣﯿﺪﻫﺪ‪ .‬ﻫﺮ ﭼﻪ ﻓﻀﺎي‬ ‫ﺑﯿﺸﺘﺮي را اﺧﺘﺼﺎص ﺑﺪﻫﯿﻢ‪،‬ﺗﺮاﮐﻨﺶ ﻫﺎي ﺑﯿﺸﺘﺮ و ﺑﺰرﮔﺘﺮي را ﻣﯿﺘﻮاﻧﯿﻢ اﻧﺠﺎم دﻫﯿﻢ ﺑﺪون اﯾﻨﮑﻪ ﺗﺎ ﻗﺒﻞ از ﭘﺎﯾﺎن‬ ‫ﺗﺮاﮐﻨﺶ ‪ ،‬ﻻزم ﺑﻪ ﻓﺎﯾﻞ ‪ Log‬ﺟﺪﯾﺪي ﺑﺎﺷﺪ‪.‬‬ ‫‪ :Flush Log at ‬در اﯾﻦ ﻗﺴﻤﺖ ﻣﯿﺘﻮاﻧﯿﻢ ﺗﻌﯿﯿﻦ ﮐﻨﯿﻢ ﮐﻪ ﻣﻘﺪار ﻓﻀﺎي اﺧﺘﺼﺎص داده ﺷﺪه ﺑﻪ ﻓﺎﯾﻞ ‪Log‬‬ ‫‪ Buffer‬در ﭼﻪ زﻣﺎﻧﯽ و ﺑﻪ ﭼﻪ ﻧﺤﻮي ﭘﺎك ﺷﺪه و ﻣﺤﺘﻮاﯾﺖ آن ﺧﺎﻟﯽ ﺷﻮد‪ .‬ﺑﻬﺘﺮ اﺳﺖ ﮐﻪ از ﮔﺰﯾﻨﻪ ‪ 3‬ﯾﻌﻨﯽ‬ ‫‪ Write to log and flush every second‬اﺳﺘﻔﺎده ﮐﺮد ‪ ،‬ﺗﺎ ﭘﺲ از ﻫﺮ ﺗﺮاﮐﻨﺶ ﻣﻮﻓﻖ‪ ،‬ﺑﺎﻓﺮ ﺗﺨﻠﯿﻪ ﺷﻮد‪.‬‬

‫در ﭘﺎﯾﺎن ﺗﻮﺟﻪ ﺑﻪ اﯾﻦ ﻧﮑﺘﻪ ﺿﺮوري اﺳﺖ ﮐﻪ ‪ ،‬در ﺻﻮرﺗﯽ ﮐﻪ ﺑﻪ ﻫﺮ دﻟﯿﻠﯽ ‪ MySQL‬را ‪ Stop‬ﮐﺮدﯾﺪ و دﯾﮕﺮ ‪Start‬‬ ‫ﻧﺸﺪ ﻓﻘﻂ ﮐﺎﻓﯽ اﺳﺖ ﮐﻪ دوﺑﺎره ‪ MySQL Server Instance Config Wizard‬را اﺟﺮا ﮐﺮده و ﺗﻨﻈﯿﻤﺎت ﭘﯿﻔﺮض را اﻋﻤﺎل‬ ‫ﻧﻤﺎﯾﯿﺪ ﺗﺎ ﻓﺎﯾﻞ ‪ My.ini‬دوﺑﺎره ﺑﺎزﺳﺎزي ﺷﺪه و ‪ Start‬ﺷﻮد‪.‬‬ ‫ﭘﺎﯾﺎن‬ ‫‪Mahdi.Faraji@Live.com‬‬

‫ﺻﻔﺤﻪ| ‪6‬‬


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.