MySQL (MariaDB) gặp sự cố thường xuyên


9

Gần đây tôi đã di chuyển một máy chủ cũ chạy MySQL sang VPS mới chạy MariaDB 5.5. Tôi không chạy quá nhiều trên máy chủ (chỉ một vài trang PHP) và bộ nhớ trống dường như vẫn ổn, nhưng DB cứ bị sập - đôi khi cứ sau vài ngày, những lần khác trong vài giờ.

Tôi nhận được các lỗi sau trong nhật ký:

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

Tôi đã chơi với các cài đặt my.cnf cho InnoDB Heap, dường như không giúp được gì. Đây là phần có liên quan:

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

Tôi dường như có "nhiều" RAM miễn phí và tôi cũng có sẵn một số trao đổi:

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

Làm thế nào tôi có thể giải quyết / khắc phục sự cố này? Tôi đã truy quét các interwebz để tìm manh mối, nhưng không có gì giúp được.


1
Bộ nhớ trông như thế nào ngay trước khi nó gặp sự cố? Sự [ERROR] mysqld: Out of memorychắc chắn trông giống như một gợi ý mạnh mẽ. Bạn đã kiểm tra nhật ký hệ thống của mình để xem kernel (OOM) có quyết định giết mysql không?
Zoredache

Bạn nên ghi nhật ký các thẻ điều khiển được sử dụng và bộ nhớ được sử dụng cả trước và sau sự cố (thậm chí có thể kết xuất toplệnh mỗi khoảng thời gian) để biết điều gì có thể gây ra sự cố. Bất kỳ dịch vụ nào khác chạy trong máy chủ của bạn như mysql (mariadb)?
Ashwin kumar

1
Có một câu trả lời thực sự tuyệt vời về DBA dường như rất hữu ích: dba.stackexchange.com/questions/1927/ợi
Matt Hamann

Hãy thử Performance_schema = tắt?

Câu trả lời:


9

Tôi hy vọng nó sẽ hữu ích cho bạn.

thử

performance_schema = off

trong [mysqld]phần cấu hình của bạn.

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


Hãy thử cái này Sẽ báo cáo lại ngay sau khi tôi cung cấp dịch vụ một vài ngày để duy trì và hoạt động ổn định.
Matt Hamann

Có vẻ như đã giúp đỡ khá nhiều. Không chắc chắn đã giải quyết 100%, nhưng nó đã chạy khá tốt kể từ khi tôi điều chỉnh nó. Cảm ơn.
Matt Hamann
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.