Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Падает MySQL (mysqld_safe mysqld restarted) без других логов / 13 сообщений из 13, страница 1 из 1
23.04.2015, 22:24:28
    #38943989
inpost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает MySQL (mysqld_safe mysqld restarted) без других логов
Здравствуйте.
Временами в логам появляются ошибки:
Код: plaintext
1.
2.
SELECT * FROM `gift` WHERE `man_id` = 173232
150419 19:02:34 [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave. Statement: INSERT INTO `requests_bu`
SELECT * FROM `requests` WHERE `id_man` = 173232

Эту проблему можно исправить, собственно, мелочь же. Основная причина - падение мускула с ошибкой. Падения происходят с интервалом от 12 часов до 48 часов.
Бывает, что прошлых логов уже как час-два нет, но всё равно неожиданно рестартит:
Код: plaintext
mysqld_safe mysqld restarted

Общие показатели работоспособности сервера хорошие, лишние ресурсы имеются. Запросы работают быстро, сайт не тормозит, всё устраивает. Как найти причину, почему неожиданно он перезагружаться стал? Наугад выделять дополнительные ресурсы тоже не хочется, сами понимаете. Прошлая попытка увеличить кеш InnoDB привёл к тому, что мускул стал рестартиться каждые 6 часов.
Вот так выглядит База Данных:
...
Рейтинг: 0 / 0
24.04.2015, 02:36:57
    #38944054
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает MySQL (mysqld_safe mysqld restarted) без других логов
inpost,

посмотрите что логах прямо ДО рестарта.
Логов там нескол'ко (посмотрите в документации какие-где),
причем не тол'ко самого мускл-а но и системы.

П.С> наверно с памят'ю что-то, у вас милионы записей.
Был какой-то полу-баг-полу-фича что в линуксе мускл
оптимистично резервировал бол'ше памяти чем ест' физически.
Ну и падал удивленый что резерв оказался фиктивным.
...
Рейтинг: 0 / 0
24.04.2015, 07:30:04
    #38944114
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает MySQL (mysqld_safe mysqld restarted) без других логов
inpost,

А в системных логах что?
Своп, случаем, не отключен?
...
Рейтинг: 0 / 0
04.05.2015, 17:08:43
    #38951178
inpost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает MySQL (mysqld_safe mysqld restarted) без других логов
Killer-OOM убивал процесс. В логах всё же нашел.
...
Рейтинг: 0 / 0
04.05.2015, 19:13:56
    #38951214
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает MySQL (mysqld_safe mysqld restarted) без других логов
inpostKiller-OOM убивал процесс. В логах всё же нашел.


угу, Киллер-ООМ, имено его я и видел -- что-то там с
резервированием памяти. лечится выставлением
флага пессимистичного управления памятью.
...
Рейтинг: 0 / 0
05.05.2015, 14:48:57
    #38951822
inpost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает MySQL (mysqld_safe mysqld restarted) без других логов
Было на сервере памяти 30гигов, я докупил и выделил поболее, 64GB (таблицы всего 40, гугл помог найти несколько запросов, которые спрогнозировали, что надо 55-60гигов, вот полный конфиг:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
[mysqld]
memlock
max_allowed_packet=128M
#skip-networking
low-priority-updates
skip-external-locking
key_buffer = 512M
table_cache = 32768
thread_cache_size=4
interactive_timeout=360
wait_timeout=120
max_connections=250
thread_concurrency=6
query_cache_limit=4G
query_cache_size=4G
myisam-recover=BACKUP,FORCE
tmp_table_size=14G
tmpdir=/tmp1
max_heap_table_size=14G
local-infile=0
concurrent_insert=2
innodb_flush_method=O_DIRECT
skip-innodb_doublewrite
innodb_thread_concurrency=100
innodb_flush_log_at_trx_commit=2
innodb_flush_method=O_DIRECT

innodb_log_file_size=512M
innodb_buffer_pool_size=64G
innodb_use_sys_malloc = 0
innodb_log_buffer_size=32M
#innodb_data_file_path=ibdata1:10M:autoextend
#innodb_file_per_table=1
#log-slow-queries=/var/log/slow-query.log
log-queries-not-using-indexes
#long_query_time = 3
skip-name-resolve
log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
sql-mode=



Гляньте, пожалуйста. MySQL 5.5, Free-BSD сервер. Памяти всего на сервере 96GB, где-то 65-70 можно выделить на MySQL. Может я конфиг неправильно заполнил? Помогите, пожалуйста. Падения продолжаются, не знаю что и делать...
...
Рейтинг: 0 / 0
05.05.2015, 15:34:39
    #38951876
inpost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает MySQL (mysqld_safe mysqld restarted) без других логов
авторлечится выставлением флага пессимистичного управления памятью.
А как это делается?
...
Рейтинг: 0 / 0
05.05.2015, 15:48:58
    #38951893
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает MySQL (mysqld_safe mysqld restarted) без других логов
Бегло...
inpost
Код: sql
1.
2.
query_cache_limit=4G
query_cache_size=4G

Зачем так много? Если не знаете сколько надо, то оставьте на уровне 128-256 Мбайт. Больше можно делать только если вы четко понимаете во что это выльется.
inpost
Код: sql
1.
2.
3.
innodb_flush_log_at_trx_commit=2
...
innodb_flush_log_at_trx_commit=1

Вы уж определитесь...
Думаю, строка с единичкой лишняя.


inpost
Код: sql
1.
2.
3.
query_cache_size=4G
max_heap_table_size=14G
innodb_buffer_pool_size=64G

Это только в крупных блоках 82 ГБ. А еще сколько мелких и пользовательских до 250 штук.
query_cache_size сокращайте до 128 Мб, а innodb_buffer_pool_size до 40 ГБ.
inpost
Код: sql
1.
key_buffer = 512M

Если MyISAM не используете, то можно смело сокращать до нескольких МБ.
inpost
Код: sql
1.
thread_concurrency=6

Зачем это? Не то что бы вредно, но бесполезно.


inpost
Код: sql
1.
memlock

А это зачем? Вы заставляете MySQL съесть всю и почти всю память, не даете ему использовать своп и удивляетесь, что он мрет?

После всех исправлений я бы еще предложил Large Page включить при таком большом количестве оперативки.
...
Рейтинг: 0 / 0
05.05.2015, 15:51:32
    #38951897
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает MySQL (mysqld_safe mysqld restarted) без других логов
miksoftПосле всех исправлений я бы еще предложил Large Page включить при таком большом количестве оперативки.Сорри, не знаю, применимо ли это к FreeBSD. Это, мягко говоря, не основная ОС для MySQL.
...
Рейтинг: 0 / 0
05.05.2015, 16:03:37
    #38951913
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает MySQL (mysqld_safe mysqld restarted) без других логов
inpost,

Кстати, не помню в других топиках уже советовали mysqltuner.pl ?
Интересно, что он покажет. Только не бросайтесь сразу его рекомендации выполнять.
...
Рейтинг: 0 / 0
07.05.2015, 04:19:47
    #38953180
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает MySQL (mysqld_safe mysqld restarted) без других логов
inpostавторлечится выставлением флага пессимистичного управления памятью.
А как это делается?


штоб я так помнил!
сейчас гуглю.... пока нашел
[root@app-01 cron.d]# cat twindb-oom
# Prevent MySQL process to be killed by oom-killer
*/5 * * * * root mysql_pid=`pidof mysqld`; if ! test -z "$mysql_pid"; then if [ "`cat /proc/$mysql_pid/oom_adj`" -ne -17 ]; then echo -17 > /proc/$mysql_pid/oom_adj; fi ; fi

-17 -- чтоб он никогда не убивал, но тогда система может крашнутся
-16 -- киллер убьет мысялД последним.
0 -- дефолтное значение.
16 -- будет убивать первым.
Возможны любые целые значения от -17 до 16

На самом деле пока вижу в гугле несколько
вариантов причины -- например баг при репликации (исправили вроде).

В моем старом случае был что толи МыСЯл толи ЦентОС
имеет параметер как резервировать память.
при каком-то оптимистическом значении
мускл резервирует а потом пользуется БЕЗ проверки
действительно ли она свободна.
как-то я пофиксил это дело... сейчас еше поишу....
...
Рейтинг: 0 / 0
07.05.2015, 04:28:41
    #38953181
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает MySQL (mysqld_safe mysqld restarted) без других логов
ок, нашел:

В этот фаил:

/etc/sysctl.conf

надо вставить две линии:

vm.overcommit_memory = 2
vm.overcommit_ratio = 80

Пишут что линукс любит резервировать память по запросу
а не по факту наличия свободного места в памяти.
...
Рейтинг: 0 / 0
07.05.2015, 04:31:44
    #38953183
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Падает MySQL (mysqld_safe mysqld restarted) без других логов
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Падает MySQL (mysqld_safe mysqld restarted) без других логов / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]