Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

優化Linux後台服務:精簡啟動項釋放記憶體與CPU

編輯:Linux 教學

全新安裝的 Linux 系統預設啟動數十個後台服務,許多對特定用途 (如純 Web 伺服器、嵌入式裝置、桌面工作站) 並非必要。停用無用服務能降低記憶體佔用、減少攻擊面、縮短啟動時間。

服務審計方法

  1. 列出所有啟動服務:
    
    # systemd
    systemctl list-unit-files --type=service --state=enabled
    systemctl list-units --type=service --state=running
    
    # SysVinit
    chkconfig --list | grep '3:on'
    ls /etc/rc3.d/S*
    
  2. 識別服務用途:systemctl cat servicename、man servicename、搜尋套件說明。
  3. 評估必要性:根據機器角色 (Web、DB、桌面、路由、備份) 決定保留/停用。

常見可精簡服務參考 (視角色而定)

服務功能建議停用場景
cups列印服務無列印機的伺服器/嵌入式
bluetooth藍牙堆疊無藍牙硬體的桌面/伺服器
avahi-daemonmDNS/Zeroconf不需服務自動發現的環境
ModemManager數據機管理無 3G/4G 模組的裝置
postfix/sendmail郵件傳輸代理非郵件伺服器 (改用外部 SMTP)
nfs-server/rpcbindNFS 分享不提供 NFS 服務
samba/smbd/nmbdSMB/CIFS 分享不提供 Windows 分享
chronyd/ntpd時間同步已有硬體時鐘/外部 NTP (保留一個即可)
auditd審計守護程式非合規要求環境 (高負載影響效能)
abrtd自動錯誤回報生產環境已有集中監控
packagekit軟體更新守護程式手動管理更新的伺服器

停用命令


# systemd
systemctl stop servicename
systemctl disable servicename
systemctl mask servicename   # 徹底禁用,防止被其他單元拉起

# SysVinit
service servicename stop
chkconfig servicename off

驗證效果


systemd-analyze blame          # 啟動耗時排序
systemd-analyze critical-chain # 關鍵路徑
free -h                        # 記憶體使用
ps aux --sort=-%mem | head     # 佔用記憶體前列進程

原則

  • 最小權限/最小服務:只跑業務必需的。
  • 變更前備份:systemctl list-unit-files --state=enabled > enabled.bak。
  • 分階段測試:單機驗證 → 測試環境 → 生產灰度。
  • 文檔化:記錄停用理由與回滾步驟。

精簡服務不是盲目關閉,而是依據角色建立標準化「最小啟動集」,納入基礎鏡像構建流程,實現基礎設施即代碼的安全基線。

Copyright © Windows教程網 All Rights Reserved