Mysql

優化:增加innodb_pool_size有用嗎?

  • January 26, 2020

我們執行一個具有 8vCPU 和 64GB 記憶體的 AWS RDS 實例。所有表都使用 InnoDB 引擎。

我將 innodb_pool_size 的預設設置保留為記憶體的一半。

我看到的是使用了將近 30Gb 的記憶體並且沒有讀取 I/O 操作(除了一些尖峰)。

可釋放記憶體可釋放記憶體

讀取 IO讀取 IO

我看過一些很棒的部落格文章,關於調整 MySQL的答案(比如這個How large should be mysql innodb_buffer_pool_size? )。

將 innodb_pool_size 增加到記憶體的 3/4 是否有益?因為我沒有看到讀取 IO。

另外,但我不知道這是否相關:什麼可以解釋幾分鐘內巨大的儲存量下降?我們不儲存大型對象、BLOB 等。

免費儲存免費儲存

很好,您沒有看到很多讀取,如果可用記憶體允許,理想情況下它應該為零。

當 InnoDB 需要一個頁面時,它會檢查緩衝池。如果頁面在緩衝池中 - 完成。如果沒有 - InnoDB 將從磁碟讀取它並將其記憶體在緩衝池中。因此,如果數據集適合緩衝池,最終將不會從磁碟讀取。

如果您已經沒有讀取,則進一步增加緩衝池不會提高性能。

儲存下降 - 我不知道 RDS 是一個黑匣子,誰知道那裡發生了什麼。

引用自:https://dba.stackexchange.com/questions/257848