Mat*_*ann 9 mysql innodb memory mariadb
我最近将运行 MySQL 的旧服务器迁移到运行 MariaDB 5.5 的新 VPS。我没有在服务器上运行太多(只有几个 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
Run Code Online (Sandbox Code Playgroud)
我玩过 InnoDB 堆的 my.cnf 设置,这似乎没有帮助。这是相关部分:
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
Run Code Online (Sandbox Code Playgroud)
我似乎有“充足”的可用内存,而且我也有一些可用的交换:
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
Run Code Online (Sandbox Code Playgroud)
我该如何解决/解决这个问题?我已经在interwebz上搜索了线索,但没有任何帮助。
小智 9
我希望它会对你有所帮助。
尝试
performance_schema = off
在[mysqld]
您的配置部分。
https://mariadb.com/resources/blog/starting-mysql-on-low-memory-virtual-machines/
归档时间: |
|
查看次数: |
21380 次 |
最近记录: |