優化Linux系統的參考技巧方法
在Windows系統中,磁盤碎片是一個常見的問題,如果不注意,系統性能可能被侵蝕。Linux使用第二擴展文件系統(ext2),它以一種完全不同的方式處理文件存儲。Linux沒有Windows系統中發現的那種問題,這使得許多人認為磁盤碎片化根本不是一個問題。但是,這是不正確的。
所有的文件系統隨着時間的推移都趨向於碎片化。Linux文件系統減少了碎片化,但是並沒有消除。由於它不經常出現,所以對於一個單用户的工作站來説,可能根本不是問題。然而在繁忙的服務器中,隨着時間的過去,文件碎片化將降低硬盤性能,硬盤性能只有從硬盤讀出或寫入數據時才能注意到。下面是優化Linux系統硬盤性能的'一些具體措施。
一、清理磁盤
這種方法看上去很簡單:清理磁盤驅動器,刪除不需要的文件,清除所有需要被保存但將不被使用的文件。如果可能的話,清除多餘的目錄,並減少子目錄的數目。這些建議似乎顯而易見,但是你會驚訝地發現,每個磁盤上確實積累了非常多的垃圾。釋放磁盤空間可以幫助系統更好地工作。
二、整理磁盤碎片
Linux系統上的磁盤碎片整理程序與Windows 98或Windows NT系統中的磁盤碎片整理程序不同。Windows 98引入FAT 32文件系統,雖然運行Windows 98不必轉換為FAT 32文件系統。Windows可以被設置為使用FAT或一個叫NTFS的增強文件系統。所有這些文件系統以本質上相同的方式處理文件存儲。
Linux最好的整理磁盤碎片的方法是做一個完全的備份,重新格式化分區,然後從備份恢復文件。當文件被存儲時,它們將被寫到連續的塊中,它們不會碎片化。這是一個大工作,可能對於像/usr之類不經常改變的程序分區是不必要的,但是它可以在一個多用户系統的/home分區產生奇蹟。它所花費的時間與Windows NT服務器磁盤碎片整理花費的時間大致上相同。
如果硬盤性能仍不令人滿意,還有許多其它的步驟可以考慮,但是任何包含升級或購買新設備的硬件解決方案可能會是昂貴的。
三、從IDE升級到SCSI
如果你的硬盤是一個IDE驅動器,可以通過升級到SCSI驅動器獲得更好的整體性能。因為IDE控制器必須訪問CPU,CPU和磁盤密集型操作可能變得非常緩慢。SCSI控制器不用通過CPU處理讀寫。當IDE驅動器在讀或寫時,用户可能會因為CPU週期被IDE驅動器佔用而抱怨系統的緩慢。
獲取更快的控制器和磁盤驅動器
標準的SCSI控制器不能比標準的IDE控制器更快地讀寫數據,但是一些非常快的“UltraWide”SCSI控制器能夠使讀寫速度有一個真正的飛躍。/
EIDE和UDMA控制器是非常快的IDE控制器。新的UDMA控制器能夠接近SCSI控制器的速度。UDMA控制器的頂級速度是猝發速度,但持續傳輸的速度明顯慢得多。IDE控制器包括UDMA,是嵌入在驅動器本身中的。不需要購買一個控制器,只要購買一個驅動器,它就包含了控制器,可以獲得UDMA性能。
磁盤驅動器經常忽視的一個方面是磁盤本身的速度。磁盤的速度以rpm為單位給出,它代表每分鐘旋轉多少次。rpm越大,磁盤速度也越快。如果你有這方面的預算,大多數服務器系統廠商可提供7500rpm甚至10000rpm SCSI磁盤。標準SCSI和IDE磁盤提供5400rpm速度。
四、使用多個控制器
IDE和SCSI磁盤可以被鏈接。IDE鏈最多包括兩個設備,標準SCSI鏈最多包括七個設備。如果在系統中有兩個或更多SCSI磁盤,很可能被鏈接到同一個控制器。這樣對大多數操作是足夠的,尤其是把計算機當作單用户的工作站時。但是如果有一個服務器,那麼就能夠通過對每個SCSI驅動器提供一個控制器改善性能。當然,好的控制器是昂貴的。
-
有關Windows 操作系統的使用技巧
Windows操作系統是個大寶庫,挖掘它的使用技巧和密訣是個永恆的話題。下面是筆者在使用中的一些經驗和體會,願與大家共享。1.防止別人使用您的計算機一法我們知道,機器啟動時要進入DOS狀態,必須在進入Win98啟動畫面前按下CTRL鍵,直到顯示“Windows98StartupMenu,然後選...
-
四則XP系統使用技巧
XP操作系統可以説是得到了許多用户的支持,是一個功能強大,界面美觀的操作系統,但是其中也有許多技巧可以簡化我們的操作或者提高系統性能。只要我們在使用過程中稍加留心就會發現。一、快速關機對於快速關機,在網上也有許多方法,同時愛好是因人而異的,這裏也不妨介紹...
-
計算機操作系統課程培訓學習體會
xxxx年11月20-22日,我們有幸參加了教育部全國高校教師操作系統培訓中心對國家精品課程《計算機操作系統課程》的課程培訓,聆聽了xxxx、xxxx兩位教授的講座,頗受啟發,收穫很多。回顧三天來的學習活動,深有感觸;回顧反省自己以往的教學生活,感慨良多。可以説本次培訓活...
-
使用python實現Linux異步epoll的代碼
代碼如下:importsocketimportselectif__name__=="__main__":s=et(_INET,_STREAM)ockopt(_SOCKET,_REUSEADDR,1)(("",20123))en(10)epoll=l()printno()printLIN|LETster(no(),LIN|LET)while1:epoll_list=()forfd,eventsinepoll_list:printfdprinteventsiffd==no...