作業系統層級和 MySQL

作業系統層級和 MySQL

我剛剛讀到 innodb_buffer_pool_size 的錯誤配置可能會導致作業系統層級的分頁。有誰知道這種情況是如何發生的以及如何防止這種情況發生?目前我使用的是 CentOS 4 和 MySQL 5.0.41

答案1

地方記憶體鎖選項在 my.cnf 中。在 CentOS5 中,SELinux 阻止將 mysqld 進程鎖定在記憶體中,我必須建立自己的模組來啟用此功能。

另一種可能性是使用大頁面,始終駐留在記憶體中。你必須記住放置ulimit -l unlimited在你的 mysqld 啟動腳本中

答案2

簡而言之,為了避免分頁,您需要保持緩衝區大小足夠小,以使其完全適合記憶體以及作業系統使用記憶體的其他所有內容。如果總內存需求大於物理內存,則會被交換。如果你沒有交換空間,某些東西就會被破壞。

答案3

如果您的電腦上啟用了交換,並且您的緩衝池比實體 RAM 更大,那麼它將導致內容交換到磁碟,以便為緩衝池釋放 RAM。透過停用交換或確保 mysql 不會佔用足夠的實體 RAM 來進行交換來防止這種情況發生。

相關內容