操作系统性能优化
主要从系统配置优化、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
- 清理根分区:
- 查看是否支持 TRIM:
内存优化
所有内存优化相关的操作都是需要重启系统才能生效
- 减少 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
- sudo vi /etc/sysctl.conf增加:
- 将 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
- 编辑