Предложения Mysqltuner и изменения в my.cnf

Несколько дней безуспешно задавал этот вопрос по 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)
13
задан markratledge 20 September 2010 в 17:32
поделиться