簡體   English   中英

ext4文件系統中的內存中預分配范圍是什么

[英]What is in-memory preallocation range in ext4 file system

我正在閱讀一篇名為Ext4塊和inode分配器改進的論文 ,作者在其中提到

與Ext3保留類似,Ext4為每個文件維護一個內存中的預分配范圍,並使用該范圍來解決由並發分配引起的碎片問題。

但是我找不到有關內存中預分配范圍的任何詳細信息。

根據我對本文的理解,當塊分配器將塊分配給LARGE文件時,它將首先嘗試分配內存中預分配空間所引用的塊。 如果空間不足,則將查看每塊組伙伴緩存 但是我不明白ext4如何維護預分配空間,它如何計算下一次分配要預分配的空間大小?

ext4如何維護預分配空間

根據ext4的文檔 ,預分配空間在兩個地方維護:

  1. 每個索引節點。
  2. 每個地區/ CPU組

    對於小型文件 (正在執行分配或后期分配),將選擇每個位置組的文件預分配塊,對於大型文件,將引用inode的文件。

如何計算下一次分配要預分配的空間大小?

從ext4文檔中:

在通過伙伴緩存分配塊之前,我們對請求塊進行規范化。 這樣可以確保我們要求更多的塊。 我們將分配后獲得的額外塊添加到相應的預分配列表中。

在喜歡的頭文件中很好地解釋了分配算法的更多細節(例如,如何完成分配請求的規范化)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM