對於伺服器資料存儲管理與 quota 使用的重要性,我們必須深刻了解多人共同使用硬碟空間可能帶來的挑戰。在 Linux 系統中,多人多工的環境下,共享硬碟空間是常見的情況。然而,若其中少數幾個使用者佔用過多硬碟空間,將不可避免地影響其他使用者的權益,這也是我們需要 quota 的原因之一。管理員應該適當的限制硬碟的容量給使用者,促使系統資源的公平分配,提升伺服器效能與多人共用環境下的整體穩定性。
本文旨在介紹如何有效地管理存儲空間,我們將學習如何查看與清理儲存空間,透過 find 指令尋找大檔案、使用 du -sh 列出資料夾內的佔用容量,以及利用 xfs quota 查詢個人/群組帳號的使用狀況。此外,我們也會探討如何避免儲存空間超過使用量,透過限制每次模擬產生的檔案大小,以及在模擬過程中避免儲存不必要的波型,從而達到更有效的資源管理。讓我們開始深入了解這些重要的概念和技術,為維護伺服器運作效能作出貢獻。
透過本篇文章你會學到...
如何知道自己的容量限制
查看與清理儲存空間
避免儲存空間超過使用量
超過使用量該怎麼辦
透過"quota -us"指令,查看個人帳號使用量。
透過"quota -gs"指令,查看群組空間使用量。
透過"find ~/ -type f -size +1G -exec ls -l {} \;"指令
找出當前家目錄當中超過1G的檔案
透過"rm -rf $file_path "將大檔案刪除。
延伸閱讀: https://blog.miniasp.com/post/2010/08/27/Linux-find-command-tips-and-notice
透過"du -sh ./* | sort -rh | head -10"指令
找出當前資料夾內最大的10個檔案
延伸閱讀: https://www.yiibai.com/linux/du.html
透過指令"limit filesize 10G"
限制每個程式最大產生的檔案大小為10G,
超過則會自動結束程式,在跑post-sim 時可輸入此指令來避免不小心超出。
透過指令"unlimit filesize"即可還原
透過指令"limit"
查看目前是否有設定的限制
注意此指令只對開啟的對話窗有效,並非永久設定。在bash 環境則是使用"ulimit -f 10G"。
補充,在bash 環境則是使用"ulimit -f 10G"。
帳號預設是使用csch,因此用上面的即可
延伸閱讀: https://www.cnblogs.com/augusite/p/10718396.html
在跑Gate Level simulation 或 Post-Layout simulation產生的 tr0 或 fsdb檔案通常都很大(超過10G),很多使用者都會不小心超過使用限額。
以下提供兩個方法讓同學有辦法避免上述問題。
注意跑模擬的測資數量or時間範圍。
VCS/irun數位模擬: 01_RTL 驗證100萬個測資,03_GATE 選較重要的 1萬個進行驗證
在PATTERN.v 當中採用測試數量此方式進行宣告
`ifdef RTL
`define PATTERN_NUM 1000000
`endif
`ifdef GATE
`define PATTERN_NUM 10000
`endif
Hspice電路模擬 : Spice 檔案 .tran 時間範圍
先決定模擬總時間要跑多久來設定[run_time]再去設定最小的精細刻度[resolution]
[resolution]越小模擬出來的值越準確,但相對地,等待模擬時間也越久,產生的檔案也越大。
若同學們有使用到.ic的指令的話,要記得在.tran的後面加上uic,
這樣HSpice才會使用設定的初始值去跑模擬。反之,則不用加uic。
.tran [resolution] [run_time] [uic]/[]
.tran 1p 10ns uic
參考資料: HSPICE 入門教學 | HSPICE 介紹
儲存必要輸出之模樣結果
VCS/irun數位模擬:
若要驗證 03_GATE(Gate Level 驗證) 或 06_POST (APR Post sim 驗證) 時,可以先將產生波形的指令注解,先觀察是否能通過
假使無法通過再加入產生波形指令進行debug,避免產生巨大的波形檔案
在TESTBED.v 當中找到產生波型的指令,將其注解:
$fsdbDumpfile("SMC_SYN.fsdb");
$fsdbDumpvars(0,"+mda");
也可以透過 fsdbDumpfile 限制波形產生最大的大小
fsdbDumpfile可以指定檔案名稱和最大的檔案大小,可以透過變數的方式指定。
$fsdbDumpfile("top.fsdb",32); // 32 Megabytes
也可以透過 fsdbDumpvar 限制波形dump 的層數,例如僅top 層電路:
僅dump top 層
$fsdbDumpvars(1, top.dut, "+mda");
僅dump IO 層
$fsdbDumpvars(0,"+IO_Only");
僅dump Register 值
$fsdbDumpvars(0,"+Reg_Only");
syntax
$fsdbDumpvars(
[depth, | "level=",depth_var,]
[instance, | "instance=", instance_var]
[, "option"| ,"option, option_var"]
);
option
+all dumps all signals including memory, MDA, packed array, structure, union, power-related, and packed structure
+mda dumps all memory and MDA signals in all scopes specified
+IO_Only only IO port signals are dumped
+Reg_Only only reg type signals are dumped
depth
0 all signals in all scopes
1 all signals in current scope
n all signals in the current scope and all scopes n-1 levels
參考資料: fsdbDump用法
Hspice電路模擬 :
為縮減所產生的模擬檔,Hspice 檔案內鍵入 .option post=2 probe print 設定以儲存必要輸出之模樣結果 (最多兩層的結果)。
.OPTION
POST=n Saves results for viewing by an interactive waveform viewer. Default is 0.
PROBE=n Limits post-analysis output to only variables specified in .PROBE and .PRINT statements. Default is 0.
並利用.probe 與.print 指令,選取必要輸出的模擬結果,以減少模擬輸出結果檔案大小。
.print test='V(VS)/abs(I(mm1))'
.probe test='V(VS)/abs(I(mm1))'
.print結果會在.list檔內( .lis) .probe結果以waveform (.tr0)呈現
.print: Prints numeric analysis results in the output listing file (and post-processor data if .OPTION POST is used).
.probe: Outputs data to post-processor output files but not to the output listing (used with .OPTION PROBE to limit output).
參考資料: HSPICE: Quick Reference | HSPICE: User Guide, Simulation and Analysis | HSPICE: Reference Manual
I/O error : Disk quotat exceeded
根據使用規範:
以下行為初犯提醒,累犯停權兩星期: 超過使用家目錄空間限制,以致帳號鎖定無法使用
當你出現超過quota 且不能用的情形,第一次管理員會幫你解鎖,第二次你將會被停權兩星期,兩星期後帳號才會被開通
請寄信給管理員處理開通事宜 lhlai@ieee.org