Титла: Конфигурация на MySQL? (CentOS 512MB RAM VS) Публикувано от: yavou в Jul 15, 2009, 23:24 Здрасти, наскоро си наехме виртуален съвър с CentOS. Машината има 512 MB RAM
интересува ме дали мога някъде да намеря примерни конфигурационни файлове за MySQL Server за оптимална работа такъв обем оперативна памет. Проблема идва от там, че default настройките на MySQL в CentOS са като да си тестваш PHP скрипт от 2 страници, а не като да поддържат голям сайт. Всяка информация по въпроса ще е от полза (справочници, примерни файлове, книги etc.) Добавил съм и съдържанието на файла с който в момента работи сървъра, предполагам че е далеч от това което би трябвало да бъде Цитат [mysqld] Титла: Re: Конфигурация на MySQL? (CentOS 512MB RAM VS) Публикувано от: neter в Jul 16, 2009, 00:51 Трудно е да се даде отговор на този въпрос при толкова оскъдна информация. Когато става дума за оптимизации, трябва да се вземат предвид колкото се може повече обстоятелства. RAM паметта е едно от тези обстоятелства, но далеч не е единственото. Напоследък забелязвам оптимално буфериране на ключовете при key_buffer равно на около 50% от RAM паметта, така че ти препоръчвам да го зададеш 256MB. Останалите обстоятелства биха дали отговори за останалите настройки. Какво количество swap памет използва тази машина? Каква е склонността на системата за използване на swap памет? Става дума както за общо работещи процеси, заемащи паметта, така и за стойността на склонността, която се указва в /proc/sys/vm/swappiness (може да го промениш, ако искаш). Какви са останалите параметри на машината (подробно)? Имаш ли монтирано /dev/shm устройство, което да се използва за временна памет? Можеш да го видиш с команда "df". Какви заявки се отправят най-много към MySQL (повече от една-две)? И какви са най-тежките? Какви резултати се връщат при тези заявки? Какво е положението с JOIN заявките? Търсим най-нужната употреба, спрямо която конфигурацията да бъде изградена така, че да удовлетворява най-добре най-нужните случаи. Какви типове таблици използваш (MyISAM, InnoDB, BDB, Memory...)? Статистика на количеството едновременни заявки към сървъра в определени моменти от денонощието? Колко големи са самите бази данни и какво нарастване се очаква да имат? Малко издребняване, но каква е файловата система на дяла, в който се намират базите данни?... Както виждаш, оптимизациите пораждат много въпроси. Ако не пораждаха, нямаше да има такова богатство от настройки и сървърите щяха да се инсталират оптимизирани по подразбиране ;)
Титла: Re: Конфигурация на MySQL? (CentOS 512MB RAM VS) Публикувано от: yavou в Jul 16, 2009, 09:01 благодаря за бързия отговор, ще сменя настройката на key_buffer и ще проуча останалото :)
това което знам в момента -всички таблици са MyISAM -има JOIN заявки като едната даже се наложи да я спра понеже отнемаше 3-4 минути можеш ли да ми препоръчаш софтуер който да показва статистики на натоварването за големи периоди от време (както за MySQL така и за останалите неща). Не съм се занимавал много със сървъри до сега и това което използвам в момента са някакви (кажи-речи никакви) статистики от контролния панел и htop Титла: Re: Конфигурация на MySQL? (CentOS 512MB RAM VS) Публикувано от: lkr в Jul 16, 2009, 09:28 Последното място където трябва да търсиш оптимизации е конфигурацията, обикновено проблемът винаги е в заявките, щом една заявка ти отнема 4 минути, то 100% нямаш индекс или пък имаш няколко и се ползва грешния ( MySQL може да ползва само по 1 индекс при селект ). Също така swap-а може да го изключиш, ако може да си го позволиш, разбира се.Използвай mytop / explain + analyze на раличните заявки за да видиш къде е проблемът, също така може да активираш записването на бавните заявки в лог.
Титла: Re: Конфигурация на MySQL? (CentOS 512MB RAM VS) Публикувано от: yavou в Jul 16, 2009, 09:41 lkr, при старият сървър на който бяхме (shared hosting) нямаше проблеми с забиване на сайта заради заявки. Определено е нещо от конфигурацията. Вярно че стария имаше 1гб рам но пък на него бяха накачулени 250 домейна така че... ???
още повече, тоя сайт съм пробвал въпросната заявка и на друг сървър където заявката се изпълнява за 0.0х секунди а не за стотици. Именно с оптимизации по конфигурацията на MySQL натовараването падна от 3.3 - 3.5 на към 0.5 до 1 и нещо Ето я и заявката: Цитат insert into jos_puarcade_leaderboarddetail ( id, userid, username, points ) select 1 ,s2.userid, u.username, sum( 20 - ( select COUNT(DISTINCT s.userid) from jos_puarcade s, jos_puarcade_games g2 where s.userid != 0 and s.userid != u.id and s.gameid = g2.id and s.gameid = s2.gameid and (( s.score > s2.score and g2.reverse_score = 0 ) or ( s.score < s2.score and g2.reverse_score = 1 )) )) as points from jos_puarcade s2, jos_users u where s2.userid != 0 and s2.userid = u.id group by s2.userid, u.username having points > 0 order by points DESC limit 0 , 20; Титла: Re: Конфигурация на MySQL? (CentOS 512MB RAM VS) Публикувано от: yavou в Jul 16, 2009, 16:45 ето извадка от статистика с mysqlreport
Цитат MySQL 5.0.45-log uptime 0 7:21:37 Thu Jul 16 15:29:54 2009 Титла: Re: Конфигурация на MySQL? (CentOS 512MB RAM VS) Публикувано от: yavou в Jul 18, 2009, 23:17 намерихме решение >> http://www.agnivo.com/tech/vps-mysql-and-apache-optimization-guide-27.html
Титла: Re: Конфигурация на MySQL? (CentOS 512MB RAM VS) Публикувано от: bnight в Jul 24, 2009, 20:25 статията е много хубава но крайно не приложима в реална среда. Тъй като всеки VPS си е строго индивидуален отделно примерно CPANEL пази конфигурационият файл за apache по много особен начин.
Но за Mysql аз знам един много добър и ефективен начин за оптимизация: Mysql Tunner - http://wiki.mysqltuner.com/MySQLTuner много хубав и лесен за ползване скрипт на perl пускаш го с root-a за системата и виждаш оптималните стойности който да впишеш в my.cnf файл-а. ето и линк към самият скрипт http://mysqltuner.com/mysqltuner.pl Поздрави |