首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MariaDB 資料庫

MariaDB 記一次 OOM 崩潰排查:innodb_buffer_pool_size 與 Swap 關係

     編輯:MariaDB 資料庫

故障現象

博客間歇性報「Error Establishing a Database Connection」,重啟主機暫時恢復。日誌關鍵錯誤:

InnoDB: Fatal error: cannot allocate memory for the buffer pool
[ERROR] Plugin 'InnoDB' init function returned error
[ERROR] Unknown/unsupported storage engine: InnoDB

根因分析

  • VPS 僅 1 GB 內存,free -m 顯示 Swap 為 0
  • InnoDB 默認 innodb_buffer_pool_size=128M,啟動時申請大塊連續內存失敗

解決方案

  1. 調小緩衝池:編輯 /etc/my.cnf
    [mysqld]
    innodb_buffer_pool_size=64M
    
  2. 重啟服務:systemctl restart mariadb
  3. 驗證:日誌顯示 Initializing buffer pool, size = 64.0M ... Completed,free -m 顯示 Swap 1023M 可用。

經驗總結

  • 低內存機器務必設置 Swap (SSD 性能影響可接受)
  • 關鍵參數 innodb_buffer_pool_size 應 ≤ 物理內存 50-70%
  • 遇到崩潰優先 tail /var/log/mariadb/mariadb.log 定位具體錯誤碼
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved