Оптимальные значения для MySQL my.cnf

Тема в разделе "Администрирование серверов", создана пользователем bork75, 18 май 2011.

Модераторы: mefish, stooper
  1. bork75

    bork75 Д☼брая собака )

    Регистр.:
    21 июн 2008
    Сообщения:
    1.449
    Симпатии:
    716
    По умолчанию стояли такие значения:

    # The MySQL server
    [mysqld]
    port = 3306
    socket = /var/lib/mysql/mysql.sock
    skip-locking
    key_buffer_size = 16K
    max_allowed_packet = 64M
    table_open_cache = 4
    sort_buffer_size = 64K
    read_buffer_size = 256K
    read_rnd_buffer_size = 256K
    net_buffer_length = 2K
    thread_stack = 128K
    default-character-set=cp1251


    добавил, что бы кешировал:

    query_cache_type = 1
    query_cache_size = 128M
    query_cache_limit = 2M

    Какие будут оптимальные значения для машины:
    Intel Core i3 3.06 GHz CPU, 3Gb RAM, 2 x 500Gb HDD

    нужно что-то ещё из этого?

    table_cache =
    record_buffer =
    max_connections =
    thread_cache_size =

    у меня этих параметров вообще нет
     
  2. nafanyaa

    nafanyaa

    Регистр.:
    23 авг 2006
    Сообщения:
    286
    Симпатии:
    170
    (если их нет в конфиге, используются значения по умолчанию) добавьте

    тип MyISAM или InnoDB?
    исползуемый движок/ки? (что хорошо для wp, может быть плохо для битрикс))
    посещаемость?
    значения по умолчанию для такой машинки маленькие...

    все индивидуально, эмпирически я вычисляю приблизительный размер:
    key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections=90% всей памяти плюс-минус глядя по обстоятельствам.

    Query Cache
    используется не всегда и не для всех типов запросов. Если размер результата запроса превышает query_cache_limit=#MB , то он не кешируется

    поигратся со значениями, день пускай поработает, посмотреть запросы.
    тесты производительности mysqltuner.pl и tuning-primer.sh (найти думаю не проблема) в помощь.

    ну и ка бы не оптимизировались настройки, не менее важно оптимизировать запросы

    http://blog.kron0s.com/top-20-mysql-best-practices
    http://www.mysql.ru/docs/tnastroyka.html

    для диагностики также хорошо помогает с анализом Jet Profiler for MySQL

    • Используйте индексы
    • Не индексируйте всё подряд )

    подробное описание переменных
    http://vds-admin.ru/mysql/sistemnye-peremennye-mysql-servera-fail-mycnf

    повторюсь - нет универсальных переменных под конфигурацию, все индивидуально, метод тыка в этом случае работает (только если предварительно хорошо изучить теорию), ну и плюс даст если прикрутить прокси-сервер для статики nginx, ну и позаботится о кешировании eaccelerator, memcached ..


    пысы: не забываем про бекапы ..
    Наймите/попросите специалиста
     
    budulay и bork75 нравится это.
  3. bork75

    bork75 Д☼брая собака )

    Регистр.:
    21 июн 2008
    Сообщения:
    1.449
    Симпатии:
    716
    Пытаюсь разогнать Joomla.
    Сайт новый без посещалки.

    Есть один сайт на joomla на обычном виртуальном хостинге (sweb) и там сайт просто летает, по сравнению с моим на выделенном сервере.

    Начал с того, что установил такие же настройки в php.ini - никак не повлияло.
    Мускл на той виртуалке кэшируется, у меня был отключен, поэтому решил мускл оптимизировать.

    Пока решил взять параметры из /usr/share/mysql/my-huge.cnf
    Страницы стали генерироваться дольше.

    Может кто потестит этот свеб? Узнать в чём у них там секрет.
     
  4. chibit

    chibit Life sucks.

    Регистр.:
    4 дек 2007
    Сообщения:
    420
    Симпатии:
    285
    Возьми для начала вот этот конфиг (если innodb используется:( http://www.bigdbahead.com/?p=115
    А вообще - http://www.cip-labs.net/2011/04/20/mysql-server-optimization/ объяснение с примерными значениями всех параметров. Лучшее, что встречал.

    А дальше - запускаешь каждые несколько часов (лучше 24 часа) mysqltuner.pl и смотришь какие рекомендации он тебе выплюнет и увеличиваешь - уменьшаешь значение в конфиге.
    Конечно, если посещения нет совсем, то толку от этих рекомендаций мало.

    А вообще - берешь список параметров из любого примера my.cnf и гуглишь каждый на описание и оптимальное значение.
     
    bork75 нравится это.
  5. porsche2

    porsche2

    Регистр.:
    18 ноя 2007
    Сообщения:
    667
    Симпатии:
    210
    Была похожая тема. Если структура запросов CMS известна, то параметры подобрать не составит труда, а если не заморачиваясь, то самое простое - использовать один из вышеперечисленных tuner скриптов и нагрузить сайт ab или loadimpact.com.

    Если используется memcached, то query_cache не очень нужен, а tuner при тесте покажет бред.

    можно попробовать
    low-priority-updates
    key_buffer_size = ??? (~20% оперативики)
    net_buffer_length = 20K (в идале размер самого большого пакета, на неожиданные случаи есть max_allowed_packet, но незачем лишний раз его дергать)
    max_allowed_packet = 1M (вполне достаточно в 95% случаев в идеале это размер самого большого BLOB/TEXT поля, а 64М - это перебор)
    sort_buffer_size = 256K
    read_buffer_size = 128K
    read_rnd_buffer_size = 128K
    max_connections=200 (в данном случае не важно, при ошибке "too many connections" нужно будет увеличить, по умолчанию равен 100)
    back-log= ??? (это длина очереди к БД, можно взять с потолка или по числу полных лет админа, в случае очень большой посещаемости и отсутсвии кеширования страниц увеличить число лет админа)
    table_cache = ??? (максимальное число коннектов умноженное на количество задействованных таблиц)
    thread_stack = 192K или 256K т.к. хз чего могут придумать
    query-cache-type = 1
    query_cache_size = 32M

    Если не хватит, то увеличиваем все ???_buffer_size, а если нет индексов (что вряд ли) то добавляем еще join_buffer
     
    bork75 нравится это.
  6. chibit

    chibit Life sucks.

    Регистр.:
    4 дек 2007
    Сообщения:
    420
    Симпатии:
    285
    http://habrahabr.ru/blogs/mysql/108418/
    Вот разбор всех параметров конфига mysql.
     
    bork75 нравится это.
  7. zerg

    zerg

    Регистр.:
    5 май 2006
    Сообщения:
    262
    Симпатии:
    343
    bork75 нравится это.
  8. bork75

    bork75 Д☼брая собака )

    Регистр.:
    21 июн 2008
    Сообщения:
    1.449
    Симпатии:
    716
    tuning-primer.sh советует включить кэширование БД

    Как добовляю кэширование:
    query_cache_type = 1
    query_cache_size = 128M
    query_cache_limit = 2M

    Сайт, вроде побыстрее шевелится, но съедается вся оперативка.
    С 2.3 Cb, за несколько часов расход памяти доходит до максимума 3 Cb и сервер подтормаживать начинает.

    В чём может быть дело?
     
  9. ahouse

    ahouse

    Регистр.:
    8 авг 2010
    Сообщения:
    162
    Симпатии:
    5
    ну и неплохо бы в UTF8 все содержать
     
  10. ukrmedshpora

    ukrmedshpora Постоялец

    Регистр.:
    11 апр 2007
    Сообщения:
    145
    Симпатии:
    37
    имхо, если сайт на одном языке - то смысла в UTF нет - он ведь намного больше места занимает, чем СР1251!