Оптимизация конфигурации Mysql - медленное время отклика ввода-вывода для 12 ГБ ОЗУ 2 x 2,4 ГГц для сервера
Серверу требуется более 20 секунд (время ожидания / медленное время ответа ввода-вывода) для ответа на HTTP-запрос, даже если установлены memcached и APC. Я считаю, что это как-то связано с MYSQL, так как на сайте много запросов INSERT.
Любая помощь будет принята с благодарностью. Заранее спасибо.
avg-cpu: %user %nice %system %iowait %steal %idle
6.38 0.03 1.05 0.40 0.00 92.14
avg-cpu: %user %nice %system %iowait %steal %idle
10.37 0.00 1.61 3.14 0.00 84.87
avg-cpu: %user %nice %system %iowait %steal %idle
9.40 0.00 1.41 1.53 0.00 87.67
avg-cpu: %user %nice %system %iowait %steal %idle
10.02 0.00 1.42 1.09 0.00 87.46
avg-cpu: %user %nice %system %iowait %steal %idle
9.32 0.00 1.31 0.78 0.00 88.59
avg-cpu: %user %nice %system %iowait %steal %idle
10.62 0.00 1.57 2.37 0.00 85.44
Спецификации выделенного сервера:
2 x Intel Xeon-Westmere 5620-Quadcore [2.4GHz] processors
6 x Hynix DDR3 2GB DDR3 x8 [2GB] (total of 12GB)
2 x Western Digital WD Caviar RE4 WD5003ABYX [500GB]
MySQL version: 5.1.56-log MySQL Community Server (GPL)
Current database size: 4.2 GiB ~25,350,659rows
Вот текущая конфигурация my.cnf:
[mysqld]
set-variable = max_connections=1024
log-slow-queries
safe-show-database
back_log = 80
max_connect_errors = 9999999
table_cache = 5000
binlog_cache_size = 1M
max_heap_table_size = 128M
sort_buffer_size = 500K
join_buffer_size = 500K
thread_cache_size = 100
#thread_concurrency = 16
query_cache_size = 512M
query_cache_limit = 8M
query_cache_min_res_unit = 2K
thread_stack = 192K
tmp_table_size = 384M
default_table_type = INNODB
long_query_time = 2
log-slow-queries=/var/log/mysql.slow.queries.log
innodb_additional_mem_pool_size = 80M
innodb_buffer_pool_size = 9G
innodb_file_io_threads = 4
innodb_thread_concurrency = 33
innodb_log_buffer_size = 20M
innodb_log_file_size = 800M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 1
read_rnd_buffer_size=2M
thread_concurrency=33
3 ответа
Проверьте, как долго работают ваши PHP-скрипты mtime(true)
, Если они работают медленно, установите "контрольные точки" в ваших сценариях, чтобы определить, какая часть сценариев замедляет скорость ответа.
Вы можете установить mytop на свой компьютер, чтобы отслеживать выполнение запросов при настройке производительности. Ваша проблема может быть не из-за вашего сервера MySQL...
Вы можете найти ответы на этот вопрос полезными. Чтобы улучшить производительность mysql, мне очень помогло мое производственное приложение. Дайте это попробовать.