在開發過程中有時候需要為某個檔案快速地分配固定大小的磁碟空間,為什麼要這樣做呢?
(1)可以讓檔案盡可能的占用連續的磁碟扇區,減少後續寫入和讀取檔案時的磁碟尋道開銷;
(2)迅速占用磁碟空間,防止使用過程中所需空間不足。
為某個檔案預分配磁碟空間必須是實際的占用磁碟空間,以linux來說,使用lseek或truncate到乙個固定位置生成的「空洞檔案」是不會佔據真正的磁碟空間的。
快速的為某個檔案分配實際的磁碟空間在linux下可通過fallocate(對應的posix介面為posix_fallocate)系統呼叫來實現,當前支援ext4/xfs。
windows 下可通過setfilepointer() 和setendoffile()或者setfilevaliddata()實現。
獲得磁碟空間
procedure getdiskinfo var totalsize,freesize integer disk string 單位為兆 m varfreespace,totalspace int64 begin if pos trimright disk length disk then dis...
排查磁碟空間
排查目錄的大檔案 一利用inode 排查 涉及用到命令 du sh 報告磁碟空間使用情況 s summarize 對每個引數只顯示總和 h separate dirs 單獨報告每乙個目錄的大小,不包括子目錄的大小 代表是哪個目錄 代表所有 這裡舉乙個簡單例子,block滿了 這裡我模擬了乙個環境,在...
磁碟空間不足
繼上一次記憶體不足報警之後,沒過幾天,釘釘又收到磁碟空間不足,收到報警後,內心的想法是,肯定又是docker改造引發的問題,因為我們這邊的日誌配置檔案有做限制,總大小20g,每個檔案大小我100m,顯然目前來看有問題 可以看到,我們線上磁碟總共80g,其中目前已使用57g,使用空間為72 隨進入我們...