Назад | Перейти на главную страницу

MySQL (MariaDB) часто дает сбой

Недавно я перенес старый сервер с MySQL на новый VPS с MariaDB 5.5. У меня не так много работы на сервере (всего несколько сайтов PHP), и со свободной памятью все в порядке, но БД продолжает давать сбой - иногда каждые несколько дней, иногда в течение нескольких часов.

Я получаю в логах следующие ошибки:

131231  1:43:04 [ERROR] mysqld: Out of memory (Needed 128917504 bytes)
131231  1:43:04 [ERROR] mysqld: Out of memory (Needed 96681984 bytes)
131231  1:43:04 [ERROR] mysqld: Out of memory (Needed 72499200 bytes)
131231  1:43:04 [ERROR] mysqld: Out of memory (Needed 54362112 bytes)
131231  1:43:04 InnoDB: The InnoDB memory heap is disabled
131231  1:43:04 InnoDB: Mutexes and rw_locks use GCC atomic builtins
131231  1:43:04 InnoDB: Compressed tables use zlib 1.2.3.4
131231  1:43:04 InnoDB: Using Linux native AIO
131231  1:43:04 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137756672 bytes) failed; errno 12
131231  1:43:04 InnoDB: Completed initialization of buffer pool
131231  1:43:04 InnoDB: Fatal error: cannot allocate memory for the buffer pool
131231  1:43:04 [ERROR] Plugin 'InnoDB' init function returned error.
131231  1:43:04 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
131231  1:43:04 [Note] Plugin 'FEEDBACK' is disabled.
131231  1:43:04 [ERROR] Unknown/unsupported storage engine: InnoDB
131231  1:43:04 [ERROR] Aborting

131231  1:43:04 [Note] /usr/sbin/mysqld: Shutdown complete

Я играл с настройками my.cnf для InnoDB Heap, но это, похоже, не помогает. Вот соответствующая часть:

innodb_buffer_pool_size = 128M
innodb_log_buffer_size  = 8M
innodb_file_per_table   = 1
innodb_open_files       = 400
innodb_io_capacity      = 400
innodb_flush_method     = O_DIRECT

Кажется, у меня "много" свободной оперативной памяти, и у меня есть еще и своп:

root@phoenix:~# free -m
             total       used       free     shared    buffers     cached
Mem:           994        923         71          0         19        417
-/+ buffers/cache:        486        508
Swap:         1023        131        892

Как я могу решить эту проблему? Я поискал в Интернете подсказки, но ничего не помогло.

Надеюсь, это будет вам полезно.

пытаться

performance_schema = off

в [mysqld] раздел вашей конфигурации.

https://mariadb.com/resources/blog/starting-mysql-on-low-memory-virtual-machines/