Автор Тема: Конфигурация на MySQL? (CentOS 512MB RAM VS)  (Прочетена 5057 пъти)

yavou

  • Участници
  • ***
  • Публикации: 5
  • Distribution: CentOS
    • Профил
Здрасти, наскоро си наехме виртуален съвър с CentOS. Машината има 512 MB RAM
интересува ме дали мога някъде да намеря примерни конфигурационни файлове за MySQL Server за оптимална работа такъв обем оперативна памет. Проблема идва от там, че default настройките на MySQL в CentOS са като да си тестваш PHP скрипт от 2 страници, а не като да поддържат голям сайт.
Всяка информация по въпроса ще е от полза (справочници, примерни файлове, книги etc.)
Добавил съм и съдържанието на файла с който в момента работи сървъра, предполагам че е далеч от това което би трябвало да бъде
Цитат
[mysqld]
#skip-name-resolve
local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
long_query_time= 1
log_slow_queries=/var/lib/mysql/mysql.slow
query_cache_type = 1
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

#
# * Fine Tuning
#
key_buffer      = 128M
#more key buffer for better pref...
max_allowed_packet   = 8M
thread_stack=192k
thread_cache=192


max_connections        = 500
table_cache             = 2048
wait_timeout = 7200

#
# * Query Cache Configuration
#

#more query chache size for better pref...
skip-bdb

set-variable = innodb_buffer_pool_size=2M
set-variable = innodb_additional_mem_pool_size=500K
set-variable = innodb_log_buffer_size=500K
set-variable = innodb_thread_concurrency=2
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip-bdb


connect_timeout=10
delayed_insert_timeout=10
ft_min_word_len=4
interactive_timeout=20
join_buffer_size=2M
max_connect_errors=25
max_seeks_for_key=128M
max_tmp_tables=10
max_write_lock_count=128MB
myisam_max_sort_file=64MB
myisam_sort_buffer=1M
open_files_limit=5000
query_cache_limit=4M
query_cache=32M
range_alloc_block=4K
read_buffer=1M
read_rnd_buffer=2M
sort_buffer=2M
tmp_table=16MB
« Последна редакция: Jul 15, 2009, 23:27 от yavou »
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Конфигурация на MySQL? (CentOS 512MB RAM VS)
« Отговор #1 -: 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...)? Статистика на количеството едновременни заявки към сървъра в определени моменти от денонощието? Колко големи са самите бази данни и какво нарастване се очаква да имат? Малко издребняване, но каква е файловата система на дяла, в който се намират базите данни?... Както виждаш, оптимизациите пораждат много въпроси. Ако не пораждаха, нямаше да има такова богатство от настройки и сървърите щяха да се инсталират оптимизирани по подразбиране ;)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

yavou

  • Участници
  • ***
  • Публикации: 5
  • Distribution: CentOS
    • Профил
Re: Конфигурация на MySQL? (CentOS 512MB RAM VS)
« Отговор #2 -: Jul 16, 2009, 09:01 »
благодаря за бързия отговор, ще сменя настройката на key_buffer и ще проуча останалото   :)
това което знам в момента
-всички таблици са MyISAM
-има JOIN заявки като едната даже се наложи да я спра понеже отнемаше 3-4 минути
можеш ли да ми препоръчаш софтуер който да показва статистики на натоварването за големи периоди от време (както за MySQL така и за останалите неща). Не съм се занимавал много със сървъри до сега и това което използвам в момента са някакви (кажи-речи никакви) статистики от контролния панел и htop
« Последна редакция: Jul 16, 2009, 09:05 от yavou »
Активен

lkr

  • Напреднали
  • *****
  • Публикации: 81
    • Профил
Re: Конфигурация на MySQL? (CentOS 512MB RAM VS)
« Отговор #3 -: Jul 16, 2009, 09:28 »
Последното място където трябва да търсиш оптимизации е конфигурацията, обикновено проблемът винаги е в заявките, щом една заявка ти отнема 4 минути, то 100% нямаш индекс или пък имаш няколко и се ползва грешния ( MySQL може да ползва само по 1 индекс при селект ). Също така swap-а може да го изключиш, ако може да си го позволиш, разбира се.Използвай mytop / explain + analyze на раличните заявки за да видиш къде е проблемът, също така може да активираш записването на бавните заявки в лог.
Активен

yavou

  • Участници
  • ***
  • Публикации: 5
  • Distribution: CentOS
    • Профил
Re: Конфигурация на MySQL? (CentOS 512MB RAM VS)
« Отговор #4 -: 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;
« Последна редакция: Jul 16, 2009, 09:44 от yavou »
Активен

yavou

  • Участници
  • ***
  • Публикации: 5
  • Distribution: CentOS
    • Профил
Re: Конфигурация на MySQL? (CentOS 512MB RAM VS)
« Отговор #5 -: Jul 16, 2009, 16:45 »
ето извадка от статистика с mysqlreport
Цитат
MySQL 5.0.45-log         uptime 0 7:21:37       Thu Jul 16 15:29:54 2009

__ Key _________________________________________________________________
Buffer used     6.19M of 256.00M  %Used:   2.42
  Current      52.87M            %Usage:  20.65
Write hit      55.16%
Read hit       99.99%

__ Questions ___________________________________________________________
Total           1.82M    68.6/s
  DMS           1.58M    59.7/s  %Total:  87.00
  Com_        197.06k     7.4/s           10.84
  COM_QUIT     40.48k     1.5/s            2.23
  -Unknown      1.33k     0.1/s            0.07
Slow 1 s          322     0.0/s            0.02  %DMS:   0.02  Log:  ON
DMS             1.58M    59.7/s           87.00
  SELECT        1.54M    58.2/s           84.77         97.44
  UPDATE       18.79k     0.7/s            1.03          1.19
  DELETE       18.17k     0.7/s            1.00          1.15
  INSERT        3.59k     0.1/s            0.20          0.23
  REPLACE           6     0.0/s            0.00          0.00
Com_          197.06k     7.4/s           10.84
  set_option  126.57k     4.8/s            6.96
  change_db    67.91k     2.6/s            3.74
  admin_comma   1.59k     0.1/s            0.09

__ SELECT and Sort _____________________________________________________
Scan          297.94k    11.2/s %SELECT:  19.34
Range          71.30k     2.7/s            4.63
Full join       2.92k     0.1/s            0.19
Range check       247     0.0/s            0.02
Full rng join       0       0/s            0.00
Sort scan      99.30k     3.7/s
Sort range     30.32k     1.1/s
Sort mrg pass   5.63k     0.2/s

__ Table Locks _________________________________________________________
Waited             66     0.0/s  %Total:   0.00
Immediate       1.69M    63.8/s

__ Tables ______________________________________________________________
Open             1857 of 2048    %Cache:  90.67
Opened          1.86k     0.1/s

__ Connections _________________________________________________________
Max used           17 of  500      %Max:   3.40
Total          40.48k     1.5/s

__ Created Temp ________________________________________________________
Disk table     15.80k     0.6/s
Table          27.63k     1.0/s    Size:  32.0M
File           11.26k     0.4/s

__ Threads _____________________________________________________________
Running             1 of    1
Cached             16 of  192      %Hit:  99.96
Created            17     0.0/s
Slow                0       0/s

__ Aborted _____________________________________________________________
Clients            10     0.0/s
Connects            8     0.0/s

__ Bytes _______________________________________________________________
Sent            1.02G   38.5k/s
Received      197.90M    7.5k/s

__ InnoDB Buffer Pool __________________________________________________
Usage           2.00M of   2.00M  %Used: 100.00
Read hit       97.14%
Pages
  Free              0            %Total:   0.00
  Data            128                    100.00 %Drty:   0.00
  Misc              0                      0.00
  Latched           0                      0.00
Reads          11.19k     0.4/s
  From file       320     0.0/s            2.86
  Ahead Rnd         0       0/s
  Ahead Sql         0       0/s
Writes             31     0.0/s
Flushes            24     0.0/s
Wait Free           0       0/s

__ InnoDB Lock _________________________________________________________
Waits               0       0/s
Current             0
Time acquiring
  Total             0 ms
  Average           0 ms
  Max               0 ms

__ InnoDB Data, Pages, Rows ____________________________________________
Data
  Reads           330     0.0/s
  Writes           42     0.0/s
  fsync            34     0.0/s
  Pending
    Reads           0
    Writes          0
    fsync           0

Pages
  Created           0       0/s
  Read            320     0.0/s
  Written          24     0.0/s

Rows
  Deleted           3     0.0/s
  Inserted          0       0/s
  Read            296     0.0/s
  Updated           0       0/s
Активен

yavou

  • Участници
  • ***
  • Публикации: 5
  • Distribution: CentOS
    • Профил
Активен

bnight

  • Напреднали
  • *****
  • Публикации: 313
  • Distribution: Ubuntu 8.10
  • Window Manager: KDE 3.5.10
    • Профил
    • WWW
Re: Конфигурация на MySQL? (CentOS 512MB RAM VS)
« Отговор #7 -: 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

Поздрави

Активен

Registered Linux user: 473460
http://skyhost.bg - Хостинг и Домейни

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Centos и mysql
Хардуерни и софтуерни проблеми
bozho 1 1668 Последна публикация Dec 01, 2006, 16:49
от bozho
Centos 5.1
Настройка на програми
svetoslav27 4 6135 Последна публикация Mar 10, 2008, 01:06
от dedmin
256 vs 512mb SD-RAM
Идеи и мнения
ANTIADMIN 8 6448 Последна публикация Nov 13, 2008, 12:15
от v_badev
За CentOS и MySQL
Настройка на програми
kodsf2 2 2104 Последна публикация Jan 08, 2009, 22:23
от kodsf2
Проблем с инсталирането на видео картата NVIDIA GEFORSE G102M 512MB
Настройка на хардуер
skoti 11 2954 Последна публикация Jan 19, 2010, 17:11
от aaaaaa