操作系统性能优化

主要从系统配置优化、CPU 优化、硬盘优化、内存优化、显卡优化介绍。


系统基础优化

主要还是精简开机项、删除不必要的软件、最小化安装、电池续航优化

  • 安装操作系统时选择 "最小化安装"
  • 安装 TLP 软件优化电池性能
    • sudo apt install tlp tlp-rdw 然后 sudo tlp start 启动,状态查询:sudo tlp-stat
    • 如何省电
  • 查看开机时间并优化
    • 查看系统启动总耗时:systemd-analyze
    • 查看 10 个最耗时的启动程序:systemd-analyze blame | head -n 10
    • 关键路径分析:systemd-analyze critical-chain
    • 查看程序依赖关系:systemctl list-dependencies default.target
    • 查看某个程序的依赖:systemctl list-dependencies --reverse plymouth-quit-wait.service
    • 关闭非必要的服务
      • sudo systemctl disable snapd.service
      • sudo systemctl disable NetworkManager-wait-online.service
      • sudo systemctl mask plymouth-quit-wait.service
  • 启动项优化
    • 图形化显示

      此方法无法列出所有的启动项

      • 显示隐藏的启动项:sudo sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/*.desktop
      • 去 "应用程序菜单---启动应用程序" 中取消要关闭的启动项
    • 命令显示所有启动项
      • sudo systemctl list-unit-files | grep enabled
      • 查看服务的路径及内容 :sudo systemctl status openresty.service
      • 关闭无用的启动项:sudo systemctl disable bluetooth.service
  • 查看当前运行的所有程序
    • 显示所有程序:sudo service --status-all

    + 表示正在运行,- 表示没有运行

    • 关闭某些正在运行的程序:sudo systemctl disable openvpn bluetooth ufw
  • 查看安装的程序并删除非必要的软件
    • 删除文件共享服务:sudo apt remove samba-common
    • 删除打印机服务:sudo apt remove cups
    • 如果是非 minimal 安装,可能还需删除一些游戏或者自带的应用
  • Proload 加速应用启动,此项对于经常打开相同应用的系统来说比较有用,但会占用内存

Preload 显著影响启动时间,只有在每天都在大量的重新加载应用程序时,才能看到真正的差别

  • 修改 DNS,加速网络访问
    • 设置---WIFI/网络---IPV4---DNS


硬盘优化

常见的硬盘优化手段,根据需要进行选择

  • 使用 ext4 文件系统
  • 硬盘 4K 对齐:通过 fdisk 查看磁盘 起始位置 ,如果这个数字能被 8 除就代表已对齐
  • 禁用读文件时对访问时间戳的写操作
    • 修改 /etc/fstab 在除 swap 分区外的每个硬盘分区的第四列加入 noatime,重启生效
    • 案例:UUID=476dcf56-2df6-4afa-b0eb-ee1232198b32 / ext4 noatime,errors=remount-ro 0 1
  • 减少硬盘写操作
    • "应用程序菜单---工具---磁盘---选择一块磁盘---点击右上角的三个点---驱动器设置---启用写入缓存"
  • 修改硬盘调度程序

    建议SSD为noop,机械为deadline

    • 查看当前调度策略:cat /sys/block/sda/queue/scheduler ,如果是 cfq 就需要更改为 deadline,[deadline] 中括号表示激活
    • gedit admin:///etc/default/grub,找到 GRUB_CMDLINE_LINUX_DEFAULT,将其值改成:"elevator=dadline quiet splash"
    • sudo update-grub
    • 不同的磁盘为不同的策略
      • 在/etc/rc.local里添加:
      • sudo echo "deadline" > /sys/block/sda/queue/scheduler
      • sudo echo "noop" > /sys/block/sdb/queue/scheduler
  • 使用 TRIM 定期清理硬盘
    • 查看是否支持 TRIM:sudo hdparm -I /dev/sda | grep TRIM

    Data Set Management TRIM supported 表示支持

    • 手动清理
      • 清理根分区:sudo fstrim -v /
      • 清理 home 分区:sudo fstrim -v /home


内存优化

所有内存优化相关的操作都是需要重启系统才能生效

  • 减少 swap 使用
    • 查看当前阈值:cat /proc/sys/vm/swappiness,默认是 60,当内存不做 60 % 的时候就会开始使用 swap
    • 修改阈值:sudo vim /etc/sysctl.conf 添加 vm.swappiness=10
  • inode缓存保持
    • sudo vi /etc/sysctl.conf增加:vm.vfs_cache_pressure=50
  • 将 tmp 放在虚拟内存中 tmps,修改浏览器临时目录为 tmp
    • sudo cp -v /usr/share/systemd/tmp.mount /etc/systemd/system/
    • sudo systemctl enable tmp.mount
    • 控制/tmp在内存的大小限制
      • 卸载已有的tmp:sudo umount /tmp
      • sudo vi /etc/fstab添加:
      • tmpfs /tmp tmpfs rw,size=512M,x-gvfs-show 0 0
      • sudo mount /tmp


CPU 性能优化

只要更新 CPU 微码即可,其它操作非必须

  • 更新 Intel CPU 微码:sudo apt install intel-microcode
  • 控制 CPU 频率:sudo apt-get install indicator-cpufreq
  • 查看 CPU 支持的模式:cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
  • 查看当前 CPU 模式:cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  • 更改 CPU 模式:echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
  • 使用 intel_pstate:
    • 编辑/etc/default/grub
    • RUB_CMDLINE_LINUX_DEFAULT="intel_pstate=passive cpufreq.default_governor=schedutil"
    • sudo update-grub
上次更新:
贡献者: iEchoxu