Помощь Поделитесь опытом настройки my.cnf для Престы?

Тема в разделе "PrestaShop", создана пользователем lightman555, 28 янв 2016.

Информация :
Приветствую гость, обрати внимание! Темы которые закреплены в разделах, в скором времени будут откреплены. Правила раздела PrestaShop

(Не актуальные темы) Каталоги:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
(Не актуальные темы) Поиск / Запросы:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
Полезная информация:Поддержка и помощь c PrestaShopУбираем ПрестаТраст, стучалки и прочую рекламуСовместные покупки модулей и шаблоновПеревод Prestashop и модулей
Модераторы: trace
  1. lightman555

    lightman555

    Регистр.:
    7 мар 2013
    Сообщения:
    240
    Симпатии:
    11
    Конфигурация сервера:
    Память: 8 GB
    Процессор: 2 ядра
    Дисковая система: 50 GB SSD

    Два магазина на престе - основной на 1.4.11

    Уникальных посетителей за сутки 600-1000
    подключен мемкешед и выделено под него 2Гига оперативки
    периодически возникает бешеная нагрузка на MySQL в виду большого числа запросов.
    анализ кеширования базу говорит, что база закеширована плохо и только 5-10% её кеша используется.
    Изучая долго интернет создал файл конфигурации для MySQL - подскажите что не так я делаю - не перемудрил ли?:

    #
    # The MySQL database server configuration file.
    #
    # You can copy this to one of:
    # - "/etc/mysql/my.cnf" to set global options,
    # - "~/.my.cnf" to set user-specific options.
    #
    # One can use all long options that the program supports.
    # Run program with --help to get a list of available options and with
    # --print-defaults to see which it would actually understand and use.
    #
    # For explanations see
    # http://dev.mysql.com/doc/mysql/en/server-system-variables.html

    # This will be passed to all mysql clients
    # It has been reported that passwords should be enclosed with ticks/quotes
    # escpecially if they contain "#" chars...
    # Remember to edit /etc/mysql/debian.cnf when changing the socket location.
    [client]
    port = 3306
    socket = /var/run/mysqld/mysqld.sock

    # Here is entries for some specific programs
    # The following values assume you have at least 32M ram

    # This was formally known as [safe_mysqld]. Both versions are currently parsed.
    [mysqld_safe]
    socket = /var/run/mysqld/mysqld.sock
    nice = 0

    [mysqld]
    #
    # * Basic Settings
    #
    user = mysql
    pid-file = /var/run/mysqld/mysqld.pid
    socket = /var/run/mysqld/mysqld.sock
    port = 3306
    basedir = /usr
    datadir = /var/lib/mysql
    tmpdir = /var/tmpfs
    lc-messages-dir = /usr/share/mysql
    skip-external-locking
    bind-address = 127.0.0.1
    #
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    #
    # * Fine Tuning
    #
    key_buffer_size = 16M
    key_buffer = 1024M
    max_join_size = 1000000
    max_allowed_packet = 256M
    thread_stack = 512K
    thread_cache_size = 50
    #table_open_cache = 6000
    # This replaces the startup script and checks MyISAM tables if needed
    # the first time they are touched
    myisam-recover = BACKUP
    #max_connections = 100
    table_cache = 60000
    thread_concurrency = 5
    #
    # * Query Cache Configuration
    #

    query_cache_limit = 2M
    query_cache_size = 256M

    table_cache = 512
    sort_buffer = 8M
    myisam_sort_buffer_size = 256M
    tmp_table_size = 256M
    max_heap_table_size = 128M

    read_buffer_size = 16M
    read_rnd_buffer_size = 4M

    sort_buffer_size = 2M
    join_buffer_size = 18M
    open_files_limit = 4096
    table_open_cache = 4096
    max_sort_length = 512

    #
    # * Logging and Replication
    #
    # Both location gets rotated by the cronjob.
    # Be aware that this log type is a performance killer.
    # As of 5.1 you can enable the log at runtime!
    #general_log_file = /var/log/mysql/mysql.log
    #general_log = 1
    #
    # Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
    #
    # Here you can see queries with especially long duration
    log_slow_queries = /var/log/mysql/mysql-slow.log
    long_query_time = 3
    #log-queries-not-using-indexes
    #
    # The following can be used as easy to replay backup logs or for replication.
    # note: if you are setting up a replication slave, see README.Debian about
    # other settings you may need to change.
    #server-id = 1
    #log_bin = /var/log/mysql/mysql-bin.log
    expire_logs_days = 10
    max_binlog_size = 100M
    #binlog_do_db = include_database_name
    #binlog_ignore_db = include_database_name
    #
    # * InnoDB
    #
    # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
    # Read the manual for more InnoDB related options. There are many!
    #
    # * Security Features
    #
    # Read the manual, too, if you want chroot!
    # chroot = /var/lib/mysql/
    #
    # For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
    #
    # ssl-ca=/etc/mysql/cacert.pem
    # ssl-cert=/etc/mysql/server-cert.pem
    # ssl-key=/etc/mysql/server-key.pem



    [mysqldump]
    quick
    quote-names
    max_allowed_packet = 256M

    [mysql]
    #no-auto-rehash # faster start of mysql but no tab completition

    [isamchk]
    key_buffer = 32M

    #
    # * IMPORTANT: Additional settings that can override those from this file!
    # The files must end with '.cnf', otherwise they'll be ignored.
    #
    !includedir /etc/mysql/conf.d/
     
  2. ors05

    ors05

    Регистр.:
    2 фев 2011
    Сообщения:
    240
    Симпатии:
    69
    Это все параметры для myisam, скорее всего у вас используется innodb, поэтому кэширование нужно настраивать для этого движка (например innodb_buffer_pool_size). А если не используется, то лучше базу перевести на него.

    Создать конфиг можно здесь https://tools.percona.com/
    Потом использовать для оптимизации этот скрипт https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
     
  3. lightman555

    lightman555

    Регистр.:
    7 мар 2013
    Сообщения:
    240
    Симпатии:
    11
    В данном случае у меня в админке конфигурация базы такая (есть и то и то:(
    Движок MySQL
    Таблица Движок
    ps_access MyISAM
    ps_accessory MyISAM
    ps_address MyISAM
    ps_address_format MyISAM
    ps_alias MyISAM
    ps_attachment MyISAM
    ps_attachment_lang MyISAM
    ps_attribute MyISAM
    ps_attribute_group MyISAM
    ps_attribute_group_lang MyISAM
    ps_attribute_impact MyISAM
    ps_attribute_lang MyISAM
    ps_bft_content MyISAM
    ps_blockarticles InnoDB
    ps_blockarticles_data InnoDB
    ps_blockcontact MyISAM
    ps_blockfaq InnoDB
    ps_blockfaq_data InnoDB
    ps_blockguestbook InnoDB
    ps_blocknews InnoDB
    ps_blocknews_data InnoDB
    ps_blockplpanel MyISAM
    ps_blockplpanel_lang MyISAM
    ps_blockshopreviews InnoDB
    ps_blog_category InnoDB
    ps_blog_category2post InnoDB
    ps_blog_category_data InnoDB
    ps_blog_comments InnoDB
    ps_blog_post InnoDB
    ps_blog_post_data InnoDB
    ps_carrier MyISAM
    ps_carrier_group MyISAM
    ps_carrier_lang MyISAM
    ps_carrier_zone MyISAM
    ps_cart MyISAM
    ps_cart_discount MyISAM
    ps_cart_product MyISAM
    ps_category MyISAM
    ps_category_group MyISAM
    ps_category_lang MyISAM
    ps_category_product MyISAM
    ps_cms MyISAM
    ps_cms_block MyISAM
    ps_cms_block_lang MyISAM
    ps_cms_block_page MyISAM
    ps_cms_category MyISAM
    ps_cms_category_lang MyISAM
    ps_cms_lang MyISAM
    ps_compare MyISAM
    ps_compare_product MyISAM
    ps_configuration MyISAM
    ps_configuration_lang MyISAM
    ps_connections MyISAM
    ps_connections_page MyISAM
    ps_connections_source MyISAM
    ps_contact MyISAM
    ps_contact_lang MyISAM
    ps_country MyISAM
    ps_country_lang MyISAM
    ps_county MyISAM
    ps_county_zip_code MyISAM
    ps_currency MyISAM
    ps_customer MyISAM
    ps_customer_group MyISAM
    ps_customer_message MyISAM
    ps_customer_thread MyISAM
    ps_customization MyISAM
    ps_customization_field MyISAM
    ps_customization_field_lang MyISAM
    ps_customized_data MyISAM
    ps_date_range MyISAM
    ps_delivery MyISAM
    ps_discount MyISAM
    ps_discount_category MyISAM
    ps_discount_lang MyISAM
    ps_discount_type MyISAM
    ps_discount_type_lang MyISAM
    ps_editorial MyISAM
    ps_editorial_lang MyISAM
    ps_employee MyISAM
    ps_faq MyISAM
    ps_faq_lang MyISAM
    ps_feature MyISAM
    ps_feature_lang MyISAM
    ps_feature_product MyISAM
    ps_feature_value MyISAM
    ps_feature_value_lang MyISAM
    ps_group MyISAM
    ps_group_lang MyISAM
    ps_group_reduction MyISAM
    ps_gsitemap_sitemap InnoDB
    ps_guest MyISAM
    ps_help_access MyISAM
    ps_hook MyISAM
    ps_hook_module MyISAM
    ps_hook_module_exceptions MyISAM
    ps_image MyISAM
    ps_image_lang MyISAM
    ps_image_type MyISAM
    ps_import_match MyISAM
    ps_lang MyISAM
    ps_layered_category MyISAM
    ps_layered_filter InnoDB
    ps_layered_filter_shop InnoDB
    ps_layered_friendly_url InnoDB
    ps_layered_indexable_attribute_group InnoDB
    ps_layered_indexable_attribute_group_lang_value InnoDB
    ps_layered_indexable_attribute_lang_value InnoDB
    ps_layered_indexable_feature InnoDB
    ps_layered_indexable_feature_lang_value InnoDB
    ps_layered_indexable_feature_value_lang_value InnoDB
    ps_layered_price_index InnoDB
    ps_layered_product_attribute InnoDB
    ps_linksmenutop MyISAM
    ps_linksmenutop_lang MyISAM
    ps_log MyISAM
    ps_mailalert_customer_oos MyISAM
    ps_manufacturer MyISAM
    ps_manufacturer_lang MyISAM
    ps_memcached_servers MyISAM
    ps_message MyISAM
    ps_message_readed MyISAM
    ps_meta MyISAM
    ps_meta_lang MyISAM
    ps_module MyISAM
    ps_module_country MyISAM
    ps_module_currency MyISAM
    ps_module_group MyISAM
    ps_operating_system MyISAM
    ps_order_detail MyISAM
    ps_order_discount MyISAM
    ps_order_history MyISAM
    ps_order_message MyISAM
    ps_order_message_lang MyISAM
    ps_order_return MyISAM
    ps_order_return_detail MyISAM
    ps_order_return_state MyISAM
    ps_order_return_state_lang MyISAM
    ps_order_slip MyISAM
    ps_order_slip_detail MyISAM
    ps_order_state MyISAM
    ps_order_state_lang MyISAM
    ps_order_tax MyISAM
    ps_orders MyISAM
    ps_pack MyISAM
    ps_page MyISAM
    ps_page_type MyISAM
    ps_page_viewed MyISAM
    ps_payment_cc MyISAM
    ps_paypal_order MyISAM
    ps_pl_easyfooter MyISAM
    ps_pl_easyfooter_lang MyISAM
    ps_prodquestions InnoDB
    ps_product MyISAM
    ps_product_attachment MyISAM
    ps_product_attribute MyISAM
    ps_product_attribute_combination MyISAM
    ps_product_attribute_image MyISAM
    ps_product_comment MyISAM
    ps_product_comment_criterion MyISAM
    ps_product_comment_criterion_category MyISAM
    ps_product_comment_criterion_lang MyISAM
    ps_product_comment_criterion_product MyISAM
    ps_product_comment_grade MyISAM
    ps_product_country_tax MyISAM
    ps_product_download MyISAM
    ps_product_group_reduction_cache MyISAM
    ps_product_lang MyISAM
    ps_product_sale MyISAM
    ps_product_tag MyISAM
    ps_profile MyISAM
    ps_profile_lang MyISAM
    ps_quick_access MyISAM
    ps_quick_access_lang MyISAM
    ps_range_price MyISAM
    ps_range_weight MyISAM
    ps_referrer MyISAM
    ps_referrer_cache MyISAM
    ps_required_field MyISAM
    ps_reviewsnippets MyISAM
    ps_scene MyISAM
    ps_scene_category MyISAM
    ps_scene_lang MyISAM
    ps_scene_products MyISAM
    ps_search_engine MyISAM
    ps_search_index MyISAM
    ps_search_word MyISAM
    ps_shiptopay MyISAM
    ps_specific_price MyISAM
    ps_specific_price_priority MyISAM
    ps_state MyISAM
    ps_stock_mvt MyISAM
    ps_stock_mvt_reason MyISAM
    ps_stock_mvt_reason_lang MyISAM
    ps_store MyISAM
    ps_subdomain MyISAM
    ps_supplier MyISAM
    ps_supplier_lang MyISAM
    ps_tab MyISAM
    ps_tab_lang MyISAM
    ps_tag MyISAM
    ps_tax MyISAM
    ps_tax_lang MyISAM
    ps_tax_rule MyISAM
    ps_tax_rules_group MyISAM
    ps_timezone MyISAM
    ps_web_browser MyISAM
    ps_webservice_account MyISAM
    ps_webservice_permission MyISAM
    ps_zone MyISAM

    -------------
    А стоит ли переводить - то есть как это скажется на скорость работы базы или на что это вообще скажется?
    И как правильно перевести?
    И опять же если переводить тогда файл конфигурации что я выложил придется существенно изменить?
    Подскажите пожалуйста как лучше поступить, а то давно уже в этом барахтаюсь а толком нигде ответа не могу найти
     
  4. ors05

    ors05

    Регистр.:
    2 фев 2011
    Сообщения:
    240
    Симпатии:
    69
    С версии 1.5 по умолчанию создаются таблицы InnoDB. Теоретически немного быстрее
    https://habrahabr.ru/post/269121/
    Конфиг все равно нужно будет переделать, по крайней мере добавить настройки для InnoDB
    Создайте новый конфиг здесь https://tools.percona.com/ и проверьте, что бы пути остались в нем старыми
     
  5. lightman555

    lightman555

    Регистр.:
    7 мар 2013
    Сообщения:
    240
    Симпатии:
    11
    То есть если я все правильно понимаю - у меня не кеширует нормально InnoDB
    и если ввести хотя бы такие параметры то ситуация должна улучшиться?
    innodb_buffer_pool_size = 512M
    innodb_additional_mem_pool_size = 16M
    innodb_flush_method = O_DIRECT
    innodb_flush_log_at_trx_commit = 2
    innodb_thread_concurrency = 8
     
  6. lightman555

    lightman555

    Регистр.:
    7 мар 2013
    Сообщения:
    240
    Симпатии:
    11
    И еще вопрос - если у меня используется мемкеш то имеет ли вообще смысл кешировать базу меняя конфигурацию в файле?

    там к сожалению все на английском и нужно регистрироваться, а я не силен в английском к сожалению
     
  7. ors05

    ors05

    Регистр.:
    2 фев 2011
    Сообщения:
    240
    Симпатии:
    69
    Попробуйте добавит в конфиг и посмотрите что получится.
    Можно переводить гугл переводчиком
     
  8. lightman555

    lightman555

    Регистр.:
    7 мар 2013
    Сообщения:
    240
    Симпатии:
    11
    а как можно оценить изменения не на глаз и понять эффективность работы кеша?
    а так же кто то говорил что для престы вроде как кеширование базы даже вредно так как стоит мемкешед?
     
  9. ors05

    ors05

    Регистр.:
    2 фев 2011
    Сообщения:
    240
    Симпатии:
    69
    При помощи Apache Benchmark
    Попробуйте с отключенным Memcache. Иногда из-за него работает медленней
     
  10. zanpo

    zanpo Постоялец

    Регистр.:
    16 мар 2014
    Сообщения:
    104
    Симпатии:
    155
    По умолчанию, innodb_thread_concurrency = 0. Это на самом деле самая лучшая установка. Это означает бесконечное параллелизм. Это позволяет двигателю хранения InnoDB, чтобы определить наилучший количество параллелизма билетов для запуска и адрес. Установка в отличное от нуля фактически может задушить InnoDB или задушить ОС если не установлен должным образом.

    Лучше использовать Движок InnoDB для всех tаблица Движок.