Несколько дней безуспешно задавал этот вопрос по Serverfault.
Я запустил mysqltuner.pl на VPS и получил кучу вопросов по поводу предложений по переменные для изменения. Я уверен, что это общие вопросы со сложными ответами.
Я недостаточно осведомлен, чтобы писать запросы и проверять их на сервере, но я просто пытаюсь повысить производительность сервера, на котором работает пять сайтов WordPress с> 200 000 просмотров страниц в месяц.
Я оптимизировал базу данных с помощью phpmyadmin (и делаю это регулярно), но тюнер все еще говорит есть фрагментированные таблицы. И поскольку это WordPress, я не могу изменять запросы в основном коде.
Но насколько мне следует увеличить такие переменные, как query_cache_size и innodb_buffer_pool_size? А как насчет других переменных innodb?
Некоторые из предложенных переменных не существуют в my.cnf, например table_cache, и отмечены в отчете тюнера и т. Д. Могу ли я добавить их в my.cnf?
(И почему этот блок дублируется в my.cnf? Могу ли я удалить дубликат?)
set-variable = innodb_buffer_pool_size = 2M Мы оптимизировали базу данных с помощью phpmyadmin (и делайте это регулярно), но тюнер по-прежнему говорит, что есть фрагментированные таблицы. И поскольку это WordPress, я не могу изменять запросы в основном коде.
Но насколько мне следует увеличить такие переменные, как query_cache_size и innodb_buffer_pool_size? А как насчет других переменных innodb?
Некоторые из предложенных переменных не существуют в my.cnf, например table_cache, и отмечены в отчете тюнера и т. Д. Могу ли я добавить их в my.cnf?
(И почему этот блок дублируется в my.cnf? Могу ли я удалить дубликат?)
set-variable = innodb_buffer_pool_size = 2M Мы оптимизировали базу данных с помощью phpmyadmin (и делайте это регулярно), но тюнер по-прежнему говорит, что есть фрагментированные таблицы. И поскольку это WordPress, я не могу изменять запросы в основном коде.
Но насколько мне следует увеличить такие переменные, как query_cache_size и innodb_buffer_pool_size? А как насчет других переменных innodb?
Некоторые из предложенных переменных не существуют в my.cnf, например table_cache, и отмечены в отчете тюнера и т. Д. Могу ли я добавить их в my.cnf?
(И почему этот блок дублируется в my.cnf? Могу ли я удалить дубликат?)
set-variable = innodb_buffer_pool_size = 2M
Но насколько мне следует увеличить такие переменные, как query_cache_size и innodb_buffer_pool_size? А как насчет других переменных innodb?
Некоторые из предложенных переменных не существуют в my.cnf, например table_cache, и отмечены в отчете тюнера и т. Д. Могу ли я добавить их в my.cnf?
(И почему этот блок дублируется в my.cnf? Могу ли я удалить дубликат?)
set-variable = innodb_buffer_pool_size = 2M
Но насколько мне следует увеличить такие переменные, как query_cache_size и innodb_buffer_pool_size? А как насчет других переменных innodb?
Некоторые из предложенных переменных не существуют в my.cnf, например table_cache, и отмечены в отчете тюнера и т. Д. Могу ли я добавить их в my.cnf?
(И почему этот блок дублируется в my.cnf? Могу ли я удалить дубликат?)
set-variable = innodb_buffer_pool_size = 2M set-variable = innodb_additional_mem_pool_size = 500 КБ установить переменную = innodb_log_buffer_size = 500 КБ установить переменную = innodb_thread_concurrency = 2
Ниже my.cnf и вывод mysqltuner:
Содержимое my.cnf:
query-cache-type = 1 query-cache-size = 8M set-variable=local-infile=0 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql old_passwords=1 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 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
Вывод mysqltuner:
------- General Statistics -------------------------------------------------- [--] Skipped version check for MySQLTuner script [OK] Currently running supported MySQL version 5.0.45 [!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM -------- Storage Engine Statistics ------------------------------------------- [--] Status: -Archive -BDB -Federated +InnoDB -ISAM -NDBCluster [--] Data in MyISAM tables: 133M (Tables: 637) [--] Data in InnoDB tables: 10M (Tables: 344) [--] Data in MEMORY tables: 126K (Tables: 2) [!!] Total fragmented tables: 69 -------- Security Recommendations ------------------------------------------- [OK] All database users have passwords assigned -------- Performance Metrics ------------------------------------------------- [--] Up for: 1d 6h 24m 13s (2M q [22.135 qps], 116K conn, TX: 4B, RX: 530M) [--] Reads / Writes: 97% / 3% [--] Total buffers: 35.0M global + 2.7M per thread (100 max threads) [OK] Maximum possible memory usage: 303.7M (8% of installed RAM) [OK] Slow queries: 0% (4/2M) [OK] Highest usage of available connections: 53% (53/100) [OK] Key buffer size / total MyISAM indexes: 8.0M/46.1M [OK] Key buffer hit rate: 99.6% (749M cached / 2M reads) [OK] Query cache efficiency: 32.2% (685K cached / 2M selects) [!!] Query cache prunes per day: 948863 [OK] Sorts requiring temporary tables: 0% (0 temp sorts / 660K sorts) [!!] Temporary tables created on disk: 46% (400K on disk / 869K total) [!!] Thread cache is disabled [!!] Table cache hit rate: 0% (64 open / 24K opened) [OK] Open file limit used: 10% (109/1K) [OK] Table locks acquired immediately: 99% (2M immediate / 2M locks) [!!] InnoDB data size / buffer pool: 10.6M/2.0M -------- Recommendations ----------------------------------------------------- General recommendations: Run OPTIMIZE TABLE to defragment tables for better performance Enable the slow query log to troubleshoot bad queries When making adjustments, make tmp_table_size/max_heap_table_size equal Reduce your SELECT DISTINCT queries without LIMIT clauses Set thread_cache_size to 4 as a starting value Increase table_cache gradually to avoid file descriptor limits Variables to adjust: query_cache_size (> 8M) tmp_table_size (> 32M) max_heap_table_size (> 16M) thread_cache_size (start at 4) table_cache (> 64) innodb_buffer_pool_size (>= 10M)