#1 07.04.09 20:25
[MySQL] Got error 126 и большие таблицы
Многоуважаемый All!
У меня уже мозги набекрень... никак не могу вычислить проблему... имеются большие таблицы (порядка 8,5 миллионов записей) и на этих таблицах постоянно возникает проблема с файлами ключей... отрабатывает REPAIR TABLE, работает некоторое время, потом опять сваливается... есть подозрение, что это нагрузка как-то влияет... таблицы имеют тип myisam...
Подскажите плз в каком направлении копать...
P.S. файл my.cnf, памяти на серваке 4Гб, MySQL 5.1.32
Код::
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql max_connections=400 max_user_connections=400 key_buffer=1G join_buffer_size=512M table_cache=1024 max_allowed_packet = 1M sort_buffer = 128M record_buffer = 32M query_cache_limit = 8M # max_join_size = 10500000 max_sort_length = 20 myisam_sort_buffer_size = 512M thread_cache = 64 # Try number of CPU’s*2 for thread_concurrency thread_concurrency = 8 query_cache_size = 80M query_cache_type = 1 tmp_table_size = 32M max_heap_table_size = 32M log-bin=/var/log/mysql/mysql-bin innodb_flush_log_at_trx_commit=1 sync_binlog=1 slow_query_log=1 log_queries_not_using_indexes=1 slow_query_log_file=/var/log/mysql/slow-queries.log
P.P.S. забыл добавить... когда было памяти всего 1Гб, особых проблем не возникало... добавили до 4 Гб - сразу начались проблемы... думал, что проблема с памятью физически, но тестирование проблем не выявило...
Исправлено Jaguar (08.04.09 01:19)
Offline
#3 08.04.09 21:37
Re: [MySQL] Got error 126 и большие таблицы
Диман, я у же проапгредил мускуль, т.к. без этого получалась 127 ошибка, которую пофиксили после какой-то там версии... 5.1.32 - это почти последний билд... я понимаю, что myisam не лучший вариант, но при 1Гб все работало, а после добавления памяти прет каждый день
Offline
#8 10.04.09 10:40
Re: [MySQL] Got error 126 и большие таблицы
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
max_connections=400
max_user_connections=400
key_buffer=2G
join_buffer_size=1024M
table_cache=1024
max_allowed_packet = 1M
sort_buffer = 512M
record_buffer = 64M
query_cache_limit = 16M
# max_join_size = 10500000
max_sort_length = 20
myisam_sort_buffer_size = 1024M
thread_cache = 64
# Try number of CPU’s*2 for thread_concurrency
thread_concurrency = 8
query_cache_size = 128M
query_cache_type = 1
tmp_table_size = 128M
max_heap_table_size = 128M
log-bin=/var/log/mysql/mysql-bin
innodb_flush_log_at_trx_commit=1
sync_binlog=1
slow_query_log=1
log_queries_not_using_indexes=1
slow_query_log_file=/var/log/mysql/slow-queries.log
например так
Исправлено Wic (10.04.09 10:43)
Offline
#9 10.04.09 14:43
Re: [MySQL] Got error 126 и большие таблицы
1. с такими настройками уже пробовал... толку ноль... к тому же при таких настройках большого кол-ва соединений не выдержать...
2. key_buffer не советуется поднимать более 25% RAM, т.к. иначе это проблема уже приложения
P.S. пришли к выводу, что проблема в самом движке MyISAM... сейчас делаю конвертирование table engine в InnoDB... но, вот все же хочеться понять, что же происходит такое, что приводит к крашу файлов ключей постоянно...
Offline
#10 10.04.09 19:13
#11 11.04.09 11:41
#12 12.04.09 14:21
#13 12.04.09 14:50
#14 12.04.09 15:35
Re: [MySQL] Got error 126 и большие таблицы
Matrim написал(а):
места в temp директории точно хватает? :)
300Гб :)
Дональдак, да как-то уже все равно... а спецы - один спец уже посмотрел в живую на сервак... вердикт - переход на InnoDB, но причин поломки так и не назвал... только разговоры про какие-то мифические пределы MyISAM
Offline
#15 13.04.09 19:28
#16 13.04.09 20:08
Re: [MySQL] Got error 126 и большие таблицы
Wic, мы тут вспомнили что еще произошло в то время, как начались краши... были созданы новые таблицы в InnoDB... другими словами, вся база изначально работала на MyISAM, потом создали 9 таблиц InnoDB + добавили памяти... перевод больших таблиц на InnoDB помог только в отношении этих таблиц, но стали так же падать (хаотично) другие таблицы, которые остались на MyISAM... т.ч. напрашивается вывод о коллизии при совместном использовании разных движков (в частности InnoDB + MyISAM)... в некоторых местах читал, что это не рекомендуется... собственно, вероятность 99%, что причина именно в этом...
Offline
#17 13.04.09 21:14
#18 13.04.09 21:20
Re: [MySQL] Got error 126 и большие таблицы
Wic, пока не знаю... все зависит от желания клиента... на самом деле это опасно щас реализовывать... дело в том, что текущее приложение не рассчитано на транзакционные движки... как это скажется на логике и/или производительности никто не скажет... системе осталось дотянуть несколько месяцев, т.к. ведется разработка новой системы с использованием постгрес... этой надо дотянуть до августа...
Offline

