萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> FreeBSD 介紹

FreeBSD 系統效能調校全攻略:磁碟分區、檔案系統、Sysctl 與磁碟條帶化

FreeBSD 效能調校涵蓋磁碟佈局、檔案系統參數、核心參數與儲存架構等多層面。本文整理關鍵調校重點:

一、磁碟分區與交換空間策略

  • 外軌優先:硬碟外軌傳輸較快,將較小、存取頻繁的分區(根目錄、/var/tmp、swap)置於外軌,大型分區(/usr、/home)置於內軌。
  • 建議分區大小:根目錄 128MB、swap 1GB(或 2 倍實體記憶體,最小 256MB)、/var/tmp 128MB、/usr 3GB(含 ports、原始碼)、剩餘給 /home。
  • 多磁碟交換分區:每顆磁碟建立等大小 swap,核心可跨磁碟交錯存取,最佳化 I/O。核心內部結構按最大分區 4 倍配置,保持同尺寸可避免浪費。
  • /var 規劃:郵件、列印緩衝、日誌主力儲存區。郵件/列印/高流量 Web 伺服器建議 1GB 以上;切分 /var/log 獨立分區通常不划算。
  • 臨時目錄:建議 /tmp 連結至 /var/tmp,獨立分區可減少系統崩潰損壞風險,防止失控程式填滿影響郵件/日誌子系統。最小 128MB。
  • /usr 空間:視 ports 安裝量與是否存放原始碼決定,建議 2GB~3GB。

二、newfs / tunefs 檔案系統參數調整

  • 區塊大小:8KB 或 16KB 最佳(預設 8KB)。大分區用 16KB,碎片設為區塊 1/8(如 newfs -f 2048 -b 16384)。過大導致緩衝區碎片化降低效能。
  • bytes/inode:大檔案為主的分區(資料庫)可調大(32768、65536、262144),減少 inode 數量,大幅縮短 fsck 恢復時間。確認確為大檔案分區再使用。
  • cylinders/group:調大可讓 inode 分佈更集中,提升目錄效能與 fsck 速度。建議最大化(newfs -c 999 讓工具回報上限)。
  • Soft Updates:啟用 tunefs -n enable /filesystem(5.x 可用 newfs -U),劇烈提升中繼資料效能(建檔/刪除)。副作用:崩潰可能遺失數秒資料;滿分區升級可能因釋放延遲失敗。

三、掛載選項

  • async:極度危險,嚴禁使用。
  • noatime:關閉存取時間更新。大量讀取檔案的 Web/News 伺服器可於大分區啟用減輕緩衝區壓力。讀多寫少分區(/、/usr)建議保留。

四、磁碟條帶化

透過 vinum 或 ccd 將分區分散多磁碟,提升 I/O。適用於高 I/O 分區(/var、/home、資料庫、Web 內容)。小分區(根、/var/tmp、/usr)條帶化效益微乎其微。條帶大小建議 1152 磁區(2 的倍數邊界),使循序 I/O 減少尋軌、中繼資料分散於不同磁碟。生產環境首選硬體 RAID 控制器。

五、關鍵 Sysctl 參數

  • kern.ipc.shm_use_phys=1:將 SysV 共享記憶體鎖定於實體記憶體,消除頁面追蹤開銷,適用於大量共享記憶體的應用(資料庫、快取伺服器)。
  • vfs.vmiodirenable=1:啟用目錄虛擬記憶體快取,每目錄佔用一實體頁(4KB)而非 512 位元組。大量檔案操作服務(Web 快取、大型郵件/新聞系統)建議開啟,通常不降低效能。
  • net.inet.tcp.sendspace / recvspace:TCP 發送/接收緩衝區預設 16KB。增加可提高頻寬利用率,但服務成千上萬連線時勿調大以免耗盡核心記憶體。

調校需謹慎測試,配合監控工具觀察效果,切勿盲目套用。

copyright © 萬盛學電腦網 all rights reserved