linux high memory機制引發的問題

linux high memory

32bit操作系統:

linux將邏輯地址空間分爲兩部分:0-3G是用戶地址空間,3-4G是內核地址空間。所以linux內核只能夠訪問物理地址空間大小爲1G,也就是物理地址0-1G。爲了能夠訪問所有的物理地址空間,linux提出了high memory機制:從內核地址空間劃分出一部分作爲high memory,該區域的邏輯地址可以動態的去映射到其他的物理地址。

引發的問題

VFS inode shrinker 回收了當前仍在使用的page cache的inode,也會從內存卸載掉大量的active page cache。

  1. inode cache:打開文件的inode會暫存在low memory(內核地址可以直接映射的物理地址),因爲很可能會再次被訪問。
  2. page cache:讀取的文件數據會暫存在high memory中,但是受到high memory的邏輯地址空間的限制,shrinker採用lru算法保證不會超出限制。

參考文獻

1. LWN articles: An end to high memory?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章