萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> 在Linux中如何提高文件系統的使用效率

在Linux中如何提高文件系統的使用效率

class="23225">

  文件系統是整個UNIX系統中與用戶關系最密切,用戶操作最頻繁的部分,隨著系統運行時間的延續,文件系統的使用效率也跟著下降,這主要表現為:硬盤空間的減少,垃圾信息的增加,尋址時間的增加等。本文將介紹幾種提高文件系統使用效率的方法,和大家共享,歡迎更正和補充。

  首先,我們應該對UNIX文件系統的結構有一個了解。文件系統是UNIX系統中的文件,目錄,以及對這些文件和目錄進行管理的數據結構的總稱。UNIX文件系統包括引導塊、超級塊、i節點區、文件存儲區、進程對換區等幾部分。引導塊占用第0號物理塊,不屬於文件系統管轄,如果系統中有多個文件系統,只有根文件系統才有引導程序放在引導塊中,其余文件系統都不使用引導塊;超級塊占用第1號物理塊,是文件系統的控制塊,超級塊包括:文件系統的大小、空閒塊數目、空閒塊索引表、空閒i節點數目、空閒i節點索引表、封鎖標記等。超級塊是系統為文件分配存儲空間、回收存儲空間的依據。而i節點是對文件進行控制和管理的一種數據結構。一個文件對應一個i節點,每個i節點都有一個唯一的i節點號,i節點由64個字節組成,保存了文件的屬性和類型、存放文件內容的物理塊地址、最近一次的存取時間、最近一次的修改時間、創建此文件的時間。要注意哦:i節點中並不包括文件名,文件名和文件占用的i節點的i節點號放在目錄文件的目錄項中。文件存儲區是存放文件內容的區域,文件存儲區中各數據塊的使用情況在超級塊中由記錄,系統利用超級塊中的記錄完成對數據塊的分配和回收。在文件系統的末尾還可能有進程對換區,這裡保留了對換到內存中的進程的映象,它不屬於文件系統管轄。相信通過上面的這段文字,兄弟們應該對文件系統有一個大致的了解了。

  為提高UNIX系統的運行效率,文件系統應該保持一定的空閒空間,理論上,空閒空間至少應占文件系統總空間的15%,當空閒空間小於總空間的15%時,UNIX系統操作將明顯變慢!因此系統管理員應該了解文件系統空閒時間和i節點的使用情況,保證系統的高效運行。系統管理員可以使用df命令了解空閒空間和i節點的使用情況。使用“df -v 文件系統”命令,可以顯示文件系統的使用情況:該文件系統數據塊的總數、已使用數據塊的數量、空閒數據塊的數量、使用的數據快占總數據塊的百分比。如果想顯示文件系統的i節點總數、空閒i節點的數目、已使用i節點數目以及已使用i節點占總i節點的百分比,可使用-i選項。比如在Solaris下,可執行:df -o i(注意哦:i前沒有“-”)。

  當文件系統中的空閒空間減少,以至於使文件系統的效率降低時,可采用以下措施:

  1.刪除臨時目錄下的文件

  臨時目錄下存放的都是臨時文件,臨時文件是在程序執行期間根據需要創建的,但沒有被及時刪除。系統中的臨時目錄一般有/var/tmp、/tmp和/usr/tmp。管理員可以手工刪除他們,也可以建立一個作業調度,使清理工作自動進行。比如在/usr/spool/cron/crontabs/root中加入以下代碼:

  

  30 2 * * * find /var/tmp –atime 7 –exec rm{} ; >/dev/null;
  30 2 * * * find /usr/tmp –atime 7 –exec rm{} ; >/dev/null;
  30 2 * * * find /tmp –atime 7 –exec rm{} ; >/dev/null

  2.刪除core文件

  當系統中一些進程由於收到一些信號而非正常結束時,系統便建立一個core文件,記錄進程當時的一些信息,包括進程狀態、數據以及硬件寄存器的值等。在這些core文件沒有用的時候,可以考慮刪除它們。core文件的刪除,應該首先確認要刪除的core文件是否還有使用價值,可通過file core命令查看是由哪些進程產生的,在確認對調試程序沒用的時候再進行刪除,也可以通過下面的命令來刪除10天內未存取過的core文件:find / -name core –atime +10 –exec rm –f {}

  3.清除系統日志文件
  日志文件包含了有關系統運行情況的信息和用戶訪問系統的情況,系統在運行過程中,會不斷地把新的信息添加到日志文件中,因此日志文件會急劇增多,系統中主要的日志文件有:

  /usr/adm/acct 記帳日志文件;

  /usr/adm/messages 系統信息日志文件;

  /usr/adm/sulog 命令使用日志文件;

  /usr/adm/vold.log 卷管理日志文件;

  /usr/spool/uucp/LOGFILE uucp的記錄;

  /usr/spool/uucp/.Log/.Old/* 舊的uucp日志文件;

  /usr/spool/lp/logs/requests 打印請求記錄;

  /var/log/syslog 系統日志文件。

  上述有的日志文件對分析系統出現的故障有幫助,因此在清除時要慎重。

  4.壓縮不常使用的文件

  對平時不經常使用的文件可以進行壓縮,以便節省空間,壓縮與解壓縮的命令有:compress和uncompress;gzip和gunzip等命令。

  5.減少小文件的使用

  文件系統中的i節點數目是一定的,系統中如果小文件太多,會浪費很多的i節點,這樣可能會導致系統中雖然還有磁盤空間,但無法創建新文件的情況。可以把多個小文件合並成一個大文件以節省i節點,也可以刪除系統中不再需要的文件。

  6.增加文件系統i節點的數目

  從文件系統的結構看,一個文件占用一個i節點和若干個數據塊。當i節點用完時,可考慮在硬盤上重新建立文件系統,指定比較大的i節點數目。這時首先要備份原文件系統,然後卸載該文件系統,使用mkfs重新建立文件系統,指定更大的i節點數目,該命令的格式為:

  #mkfs 設備文件數目:新的i節點數目關於i節點數,管理員應該根據實際情況,綜合考慮存儲設備的物理大小和文件系統中文件的平均大小等因素來定,個人認為,並不是越多越好。在新建文件系統後,可通過df –o i命令,參考原來文件系統的節點數,來定義新的i節點數。 把新的文件系統安裝到系統中,最後利用備份恢復文件系統的內容。

copyright © 萬盛學電腦網 all rights reserved