news 2026/10/13 8:08:17

Linux系统优化策略:从启动到内核的全面调优指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux系统优化策略:从启动到内核的全面调优指南

1. 为什么“系统优化”这件事值得认真对待

很多人第一次接触Linux,都是从某个长期支持版本开始的。装完之后觉得能用,就再也没动过默认配置。直到某天发现开机要等一分多钟、硬盘灯狂闪、风扇呼呼转、终端敲个命令都要卡半秒,才意识到“能用”和“好用”之间隔着一条不小的鸿沟。

这篇内容聊的就是这条鸿沟怎么填。核心关键词是系统优化策略,具体到操作层面,涉及启动项管理、内存与交换分区调优、磁盘I/O调度、文件系统挂载参数、后台服务精简、内核参数微调、软件源加速、日志与缓存治理等一整套动作。它解决的问题很直接:让一台跑了一段时间的机器重新变得利索,让新装的机器从一开始就走在一条更合理的配置路径上。

适合谁看?如果你手头有一台用来做开发、跑服务、做数据处理或者日常办公的Linux机器,不管是物理机还是虚拟机,这套思路都能用。新手可以照着步骤走,老手可以挑自己关心的章节看。我不打算写成一份“万能脚本一键优化”的爽文,因为那种东西在不同硬件、不同用途下翻车的概率极高。我更想讲清楚每个动作背后的逻辑,让你知道为什么这么调、什么情况下不该这么调。

整篇内容基于一个基本判断:优化不是堆参数,而是做减法加做匹配。减掉不需要的东西,匹配你的实际使用场景。下面从整体思路开始拆。

2. 整体优化思路与方案选型

2.1 先搞清楚“优化”的目标是什么

在动手之前,必须先回答一个问题:这台机器主要用来干什么?用途不同,优化方向完全相反。

  • 如果是开发工作站,重点是编译速度、内存充足、磁盘读写快,可以牺牲一些后台服务的精简度,保留必要的开发工具链。
  • 如果是长期运行的服务节点,重点是稳定性、低内存占用、日志可控,桌面环境、蓝牙、打印服务这些统统可以砍掉。
  • 如果是虚拟机里的测试环境,重点是启动快、快照小,交换分区可以调小甚至不设,但要注意内存分配。
  • 如果是老旧硬件复活,重点是轻量化,换更轻的桌面环境、关掉视觉效果、用更省资源的文件系统。

我见过不少人上来就抄一份“十大优化技巧”,结果把服务节点上的日志服务关了,出问题查不到记录;或者把开发机上的交换分区关了,编译大项目时直接OOM。所以第一步不是敲命令,而是拿张纸写下这台机器的三个关键词:用途、硬件瓶颈、可接受的风险。

2.2 优化的四个层次

我把系统优化分成四个层次,从外到内依次是:

  1. 启动层:开机到进入可用状态这段时间里,哪些东西在拖后腿。
  2. 运行层:系统跑起来之后,内存、CPU、磁盘、网络怎么分配。
  3. 存储层:文件系统、挂载参数、I/O调度、缓存策略。
  4. 内核层:内核参数、模块加载、电源管理。

这四个层次不是孤立的。比如你调整了I/O调度器,可能会影响启动速度;你精简了后台服务,可能会释放内存让缓存更充裕。所以实际操作时,建议按“启动层→运行层→存储层→内核层”的顺序来,每做完一层观察一下效果,不要一次性全改完,否则出了问题很难定位是哪个改动导致的。

2.3 工具选型:用系统自带的,还是装第三方

网上有很多“优化脚本”和“优化工具”,我的建议是:优先用系统自带的工具,第三方工具只在明确知道它做了什么的前提下使用。

系统自带的工具包括:

  • systemd-analyze:分析启动耗时。
  • systemctl:管理服务。
  • journalctl:查看日志。
  • top/htop/atop:看资源占用。
  • iostat/iotop:看磁盘I/O。
  • free/vmstat:看内存和虚拟内存。
  • sysctl:查看和修改内核参数。
  • tune2fs/xfs_admin:调整文件系统参数。

这些工具的好处是透明、可控、可回滚。第三方“一键优化”脚本的问题在于,它往往针对的是作者自己的机器和使用场景,换到你这里可能适得其反。而且很多脚本会修改你不熟悉的配置,出了问题连查都不知道从哪查。

提示:如果你确实想用某个优化脚本,先在虚拟机里跑一遍,对比优化前后的启动时间、内存占用、磁盘I/O,确认没有副作用再上生产环境。

2.4 一个重要的心态:优化是持续过程,不是一次性任务

系统优化不是“做完就完了”。硬件会老化,软件会更新,使用习惯会变化。今天合理的配置,半年后可能就不合适了。所以我的做法是:每次做完一轮优化,记录下改动内容和前后对比数据,过一两个月再回头看,根据新的使用情况微调。

这个记录不需要很复杂,一个文本文件就行,写上日期、改了什么、为什么改、改完效果如何。时间长了,这就是你自己机器的“优化档案”,比任何通用教程都值钱。

3. 启动层优化:把开机时间砍下来

3.1 用systemd-analyze定位启动瓶颈

开机慢,先别急着关服务,先看时间花在哪了。三条命令足够:

# 看整体启动耗时 systemd-analyze # 看每个服务的启动耗时,按时间排序 systemd-analyze blame # 看启动过程中的关键路径 systemd-analyze critical-chain

systemd-analyze的输出会告诉你firmware、loader、kernel、userspace各花了多少时间。如果userspace占了大头,说明是服务启动慢;如果kernel时间长,可能是硬件初始化或驱动问题。

systemd-analyze blame会列出一个按耗时排序的服务列表。我见过一台机器上NetworkManager-wait-online.service花了30多秒,原因是网络配置有问题导致等待超时。这种服务如果不需要,可以直接禁用。

systemd-analyze critical-chain展示的是关键路径,也就是真正决定开机时间的那个链条。有些服务虽然自己耗时长,但不在关键路径上,禁用了也省不了时间。

3.2 哪些服务可以安全禁用

禁用服务的原则是:你明确知道它没用,或者你有替代方案。下面这些是常见的可以考虑禁用的服务,但要根据实际情况判断:

服务名作用什么情况下可以禁用
NetworkManager-wait-online.service等待网络就绪不依赖网络启动的场景
bluetooth.service蓝牙支持没有蓝牙设备或不用蓝牙
cups.service打印服务不接打印机
avahi-daemon.service局域网设备发现不需要mDNS/DNS-SD
ModemManager.service移动宽带管理没有蜂窝网卡
snapd.serviceSnap包管理不用Snap包
apt-daily.service自动更新检查手动控制更新时机
motd-news.service登录消息不需要新闻推送

禁用命令:

# 停止并禁用 sudo systemctl disable --now 服务名 # 如果只是想临时停止,不禁用 sudo systemctl stop 服务名

注意:禁用apt-daily相关服务后,记得手动定期更新,否则会错过安全补丁。我一般会保留apt-daily.timer但把触发时间改到凌晨,避免开机时抢I/O。

3.3 调整服务启动顺序和依赖

有些服务不是“没用”,而是“启动太早”或“等待太久”。比如网络相关的服务,如果配置了DHCP,可能会等待租约超时。这时候可以调整配置,减少等待时间。

以NetworkManager-wait-online为例,如果确实需要网络就绪,但不想等太久,可以修改超时时间:

# 编辑服务配置 sudo systemctl edit NetworkManager-wait-online.service # 在打开的编辑器中添加 [Service] ExecStart= ExecStart=/usr/bin/nm-online -s -q -t 10

这里的-t 10表示最多等10秒,而不是默认的30秒或更长。

另一个常见问题是服务之间的依赖关系不合理。比如某个服务明明不依赖数据库,却配置了After=mysql.service,导致数据库启动慢时它也跟着慢。这种情况可以用systemctl list-dependencies查看依赖树,找到不合理的依赖并调整。

3.4 启动层优化的实操心得

我自己的习惯是,每台机器装完后先跑一次systemd-analyze blame,把耗时前10的服务记下来,逐个判断是否必要。有一次发现一个fwupd.service(固件更新服务)花了8秒,而这台机器是虚拟机,根本不需要固件更新,直接禁用后开机快了近10秒。

还有一个坑:不要盲目禁用systemd-journald。有人为了省内存把它关了,结果日志全丢,出问题没法查。正确的做法是限制日志大小,而不是禁用日志服务。这个在后面的日志治理章节会细说。

另外,如果你用的是机械硬盘,开机慢可能是磁盘本身的问题,这时候优化服务效果有限,换SSD才是根本解法。优化要认清硬件天花板,不要在不该花时间的地方死磕。

4. 运行层优化:内存、CPU与后台进程

4.1 内存管理:别让缓存背锅

很多人看free -h发现“可用内存”很少,就以为内存不够。其实Linux的内存管理逻辑是:空闲内存用来做缓存,缓存不够时才回收。所以真正要看的是available那一列,而不是free。

free -h # 关注 available 列,它表示在不使用交换分区的情况下,还能给新进程多少内存

如果available长期低于总内存的10%,才需要考虑加内存或优化内存占用。优化方向包括:

  • 减少后台服务数量。
  • 调整应用的内存配置(比如数据库的缓存大小)。
  • 使用更轻量的替代品(比如用nginx替代apache,用sqlite替代mysql做轻量场景)。

4.2 交换分区:设多大、怎么设

交换分区(swap)的大小没有统一标准,但有几个经验值:

物理内存建议swap大小说明
≤2GB2倍内存内存紧张,需要swap兜底
2-8GB等于内存平衡性能和空间
8-64GB4-8GB内存充足,swap只做应急
>64GB可选,或设小主要看是否需要休眠功能

但比大小更重要的是swappiness参数。它控制内核多积极地使用swap,取值范围0-100,默认通常是60。对于桌面和开发机,我一般调到10;对于服务器,调到1甚至0(但不要完全关,除非你确定不会OOM)。

# 临时调整 sudo sysctl vm.swappiness=10 # 永久生效 echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf

注意:swappiness=0并不意味着完全不用swap,只是尽可能不用。在内存极度紧张时,内核仍然可能使用swap,否则会触发OOM Killer。

另外,如果用的是SSD,可以考虑用zram或zswap来压缩内存,减少对磁盘swap的依赖。zram是把一部分内存当作压缩的块设备来用,zswap是在写入磁盘swap之前先压缩。两者都能有效减少swap I/O,对老旧机器效果明显。

4.3 CPU调度:别让一个进程吃满所有核心

Linux默认的CPU调度器是CFS(完全公平调度器),对大多数场景够用。但有些情况下可以调整:

  • 实时性要求高的任务:可以用chrt设置实时调度策略,但要小心,设置不当会导致系统卡死。
  • 长时间计算任务:可以用nice和renice调整优先级,让后台任务不抢占前台交互。
  • 多核负载均衡:可以用taskset把进程绑定到特定核心,减少缓存失效。

我自己的做法是,对于编译、渲染这类吃CPU的任务,用nice -n 10降低优先级,这样在跑任务的同时还能正常操作桌面。对于需要低延迟的音频处理,用chrt -f 50设置实时优先级,但只给必要的进程。

4.4 后台进程治理:找出“隐形消耗者”

有些进程平时不显眼,但长期占用资源。用下面几条命令可以揪出来:

# 按内存占用排序 ps aux --sort=-%mem | head -20 # 按CPU占用排序 ps aux --sort=-%cpu | head -20 # 查看所有systemd用户服务 systemctl --user list-units --type=service # 查看定时任务 systemctl list-timers

常见的“隐形消耗者”包括:

  • 自动更新检查(apt-daily、snapd)。
  • 索引服务(tracker、baloo)。
  • 云同步客户端(各种网盘、笔记软件)。
  • 浏览器后台标签页(Chrome的每个标签都是一个进程)。

对于这些,我的策略是:能关就关,不能关就限制。比如tracker可以配置只索引特定目录,或者干脆禁用,需要搜索时用find和grep。浏览器可以装插件限制后台标签页的资源占用。

4.5 运行层优化的实操心得

有一次帮人看一台“越用越慢”的开发机,free显示内存充足,top也没发现异常进程。后来用iotop发现有个后台进程在持续小量写磁盘,是某个笔记软件的同步服务。它不占CPU也不占内存,但频繁的磁盘写入导致I/O等待升高,拖慢了整个系统。禁用同步服务后,系统响应明显变快。

这个经历告诉我:优化不能只看CPU和内存,I/O往往是更隐蔽的瓶颈。尤其是机械硬盘时代,随机小写入的代价很高。即使是SSD,频繁写入也会影响寿命和性能。

5. 存储层优化:文件系统与I/O调度

5.1 文件系统选择:ext4、xfs还是btrfs

这三个是Linux上最常见的文件系统,各有适用场景:

文件系统优势劣势适用场景
ext4稳定、兼容性好、工具成熟不支持快照、校验和通用场景、老硬件
xfs大文件性能好、支持在线扩容不支持缩小、小文件性能一般服务器、大容量存储
btrfs支持快照、校验和、压缩稳定性争议、RAID5/6不推荐需要快照和回滚的场景

我的选择逻辑是:桌面和开发机用ext4,服务器用xfs,需要快照的实验环境用btrfs。ext4最省心,出了问题恢复工具多;xfs在大文件读写上确实有优势;btrfs的快照功能对于“折腾前先备份”很有用,但不要用它做RAID5/6。

5.2 挂载参数:几个关键选项

挂载参数对性能和数据安全影响很大。以ext4为例,/etc/fstab里常见的优化参数:

# 普通分区 UUID=xxx / ext4 defaults,noatime,discard 0 1 # 数据分区,更注重性能 UUID=yyy /data ext4 defaults,noatime,data=writeback 0 2

逐个解释:

  • noatime:不记录文件访问时间。这个参数能显著减少写入,尤其是读多写少的场景。代价是ls -lu看不到准确的访问时间,但大多数人不关心这个。
  • discard:对SSD启用TRIM。但更好的做法是用fstrim.timer定期执行,而不是每次删除都TRIM,因为频繁TRIM可能影响性能。
  • data=writeback:ext4的数据写入模式。默认是ordered,writeback性能更好但崩溃时可能丢数据。只建议在数据可重建的分区上使用。
  • commit=60:减少日志提交频率,默认5秒。调大能减少写入,但崩溃时丢失的数据窗口更大。

注意:修改挂载参数后,用mount -o remount重新挂载或重启生效。改之前确认你知道每个参数的含义,尤其是涉及数据安全的参数。

5.3 I/O调度器:SSD和HDD用不同的

Linux的I/O调度器决定请求怎么排队和合并。常见的调度器:

  • mq-deadline:多队列版本,适合大多数场景,尤其是SSD。
  • bfq:注重公平性和低延迟,适合桌面交互。
  • kyber:低延迟,适合快速设备。
  • none:不调度,直接交给设备,适合高性能NVMe。

查看和修改:

# 查看当前调度器 cat /sys/block/sda/queue/scheduler # 临时修改 echo mq-deadline | sudo tee /sys/block/sda/queue/scheduler # 永久修改,在/etc/default/grub的GRUB_CMDLINE_LINUX中添加 # elevator=mq-deadline # 然后更新grub sudo update-grub

我的经验是:NVMe用none,SATA SSD用mq-deadline,机械硬盘用bfq。桌面环境用bfq能明显改善交互响应,服务器用mq-deadline更稳。

5.4 磁盘缓存与预读

内核会用空闲内存做磁盘缓存,这是好事,不要手动去“释放缓存”。但可以调整预读大小:

# 查看当前预读值(单位:512字节扇区) cat /sys/block/sda/queue/read_ahead_kb # 调整,SSD可以设小一点,HDD设大一点 echo 128 | sudo tee /sys/block/sda/queue/read_ahead_kb

预读太大浪费内存和带宽,太小影响顺序读性能。默认值通常够用,只有在特定工作负载下才需要调。

5.5 存储层优化的实操心得

我曾经把一台老笔记本的机械硬盘换成SSD,但没改挂载参数,结果感觉提升有限。后来加上noatime和discard,并启用fstrim.timer,开机和打开大文件的速度明显改善。这说明硬件升级和软件配置要配套,只换硬件不改配置,可能只发挥了一半性能。

另一个坑是data=writeback。我在一台测试机上用了这个参数,结果一次意外断电后,数据库文件损坏。虽然测试数据不重要,但让我意识到:性能优化不能以牺牲数据安全为代价,除非你明确知道数据可以重建。生产环境我永远用默认的ordered模式。

6. 内核层优化:参数微调与模块管理

6.1 sysctl参数:哪些值得调

/etc/sysctl.conf和/etc/sysctl.d/下的文件控制内核参数。下面这些是我通常会调整的:

# 减少swap使用 vm.swappiness=10 # 减少脏页缓存,降低I/O峰值 vm.dirty_ratio=10 vm.dirty_background_ratio=5 # 提高文件句柄上限 fs.file-max=100000 # 网络相关,减少TIME_WAIT占用 net.ipv4.tcp_fin_timeout=30 net.ipv4.tcp_tw_reuse=1 # 提高本地端口范围 net.ipv4.ip_local_port_range=1024 65000

逐个解释:

  • vm.dirty_ratio和vm.dirty_background_ratio:控制脏页占内存的比例。默认值较高(20%和10%),在内存大的机器上会导致一次性写入大量数据,造成I/O尖峰。调低能让写入更平滑。
  • fs.file-max:系统级文件句柄上限。如果跑数据库或大量并发连接,需要调高。
  • tcp_fin_timeout和tcp_tw_reuse:减少TIME_WAIT状态的连接占用。对高并发服务器有用,桌面机影响不大。

注意:tcp_tw_reuse在某些场景下可能导致NAT问题,如果机器在NAT后面,谨慎使用。

6.2 内核模块:黑名单不用的驱动

有些内核模块会自动加载,但你的硬件根本用不上。比如:

  • pcspkr:主板蜂鸣器,吵人。
  • floppy:软驱,早没了。
  • bluetooth:不用蓝牙。
  • snd_pcsp:PC扬声器。

把这些加入黑名单:

# 创建黑名单文件 echo "blacklist pcspkr" | sudo tee /etc/modprobe.d/blacklist.conf echo "blacklist floppy" | sudo tee -a /etc/modprobe.d/blacklist.conf # 更新initramfs sudo update-initramfs -u

这样能减少启动时的模块加载,也能避免一些不必要的硬件探测。

6.3 电源管理:笔记本和台式机不同

笔记本上,电源管理直接影响续航和发热。tlp是一个常用的电源管理工具,但也可以手动配置:

# 查看当前电源管理状态 sudo tlp-stat -s # 或者用powertop查看耗电大户 sudo powertop

对于台式机,电源管理不是重点,但可以启用cpufreq的powersave或schedutil调速器,在性能和功耗之间平衡。

6.4 内核层优化的实操心得

内核参数调整是最容易“翻车”的地方,因为很多参数之间有关联。我的原则是:一次只改一个参数,改完观察至少一天。有一次我同时改了swappiness、dirty_ratio和vfs_cache_pressure,结果系统变得很卡,但不知道是哪个参数导致的。后来逐个回滚才找到是vfs_cache_pressure设得太高,导致缓存被过度回收。

另一个经验是:不要迷信网上的“优化参数大全”。很多参数是针对特定内核版本和特定硬件的,换个环境可能完全相反。比如tcp_tw_recycle在较新的内核里已经被移除,因为它在NAT环境下会导致连接问题。用之前先查内核文档,确认参数还存在且适用。

7. 常见问题与排查技巧实录

7.1 优化后系统反而变慢了,怎么排查

这是最常见的问题。排查思路是回滚最近的改动,逐个排除:

  1. 如果改了内核参数,先恢复默认值,重启观察。
  2. 如果禁用了服务,先启用最近禁用的那个,重启观察。
  3. 如果改了挂载参数,先改回defaults,重新挂载观察。
  4. 如果换了I/O调度器,先改回默认,观察。

如果记不清改了什么,可以对比/etc下的配置文件修改时间:

# 找出最近修改的配置文件 find /etc -type f -mtime -7 -name "*.conf" | xargs ls -lt

7.2 开机卡在某个服务,怎么跳过

有时候某个服务启动失败会卡住整个启动过程。可以在启动时进入恢复模式,或者在内核命令行加systemd.mask=服务名临时屏蔽。

如果已经卡住了,按Ctrl+Alt+F2切换到其他终端,登录后:

# 查看哪个服务卡住了 systemctl list-jobs # 强制结束卡住的服务 sudo systemctl stop 服务名

7.3 内存充足但系统卡顿,可能是什么原因

内存充足但卡顿,常见原因有:

  • I/O等待高:用iostat -x 1看%util和await。如果磁盘利用率接近100%,说明磁盘是瓶颈。
  • CPU被限制:虚拟机可能被宿主限制了CPU时间,用top看%st(steal time)。
  • 温度过高降频:用sensors看温度,如果CPU超过90度,可能触发降频。
  • 内存带宽瓶颈:多核同时访问内存,带宽不够。这种情况比较少见,但集成显卡共享内存时可能出现。

7.4 常见问题速查表

现象可能原因排查命令解决方向
开机慢服务等待超时systemd-analyze blame禁用或调整超时
系统卡顿I/O等待高iostat -x 1换SSD、调调度器
内存不足缓存占用高free -h看available加内存、减服务
风扇狂转CPU占用高top按CPU排序找出占用进程
磁盘满日志或缓存堆积du -sh /var/*清理日志、限制大小
网络慢DNS或MTU问题ping、dig换DNS、调MTU

7.5 独家避坑技巧

  • 改配置前先备份:cp 配置文件 配置文件.bak,出问题能快速恢复。
  • 用etckeeper管理/etc:它能自动把/etc纳入版本控制,每次改动都有记录,回滚很方便。
  • 不要禁用systemd-journald:限制日志大小就行,禁用会导致无法排查问题。
  • SSD不要用discard挂载参数:用fstrim.timer定期TRIM更好。
  • 虚拟机里慎调swappiness:宿主可能已经做了内存管理,调太低反而导致OOM。
  • 优化后跑一次基准测试:用bonnie++、fio、sysbench对比优化前后,用数据说话。

8. 软件源与更新策略

8.1 换源:选近的,不选“最快”的

软件源的速度直接影响安装和更新体验。很多人喜欢用“测速”工具选最快的源,但我的经验是:选地理位置近的、稳定的源,而不是瞬时最快的。因为瞬时速度受网络波动影响大,而稳定性更重要。

换源后记得更新缓存:

sudo apt update

如果用的是其他包管理格式,对应命令不同,但逻辑一样:换源、更新缓存、测试安装。

8.2 更新策略:安全更新及时,功能更新谨慎

我的更新策略是:

  • 安全更新:及时装,最好自动装。
  • 内核更新:谨慎,先在测试机验证,确认没有硬件兼容问题再上生产。
  • 功能更新:按需,不追新,除非需要新功能。
  • 大版本升级:等第一个小版本发布后再升,避开初期bug。

可以用unattended-upgrades自动装安全更新:

sudo apt install unattended-upgrades sudo dpkg-reconfigure unattended-upgrades

配置里可以指定只装安全更新,不装功能更新。

8.3 清理无用包和缓存

系统用久了会积累无用包和缓存,定期清理能释放空间:

# 清理下载的包缓存 sudo apt clean # 删除不再需要的依赖 sudo apt autoremove # 查看可清理的包 sudo apt list --upgradable

但不要过度清理,比如apt autoremove有时会删掉你以为不需要但实际在用的包。清理前先看一眼列表,确认没问题再执行。

9. 日志与缓存治理

9.1 限制journal日志大小

systemd-journald默认会占用磁盘空间的10%,在大磁盘上可能占几十GB。限制方法:

# 编辑配置 sudo nano /etc/systemd/journald.conf # 设置 SystemMaxUse=500M SystemMaxFileSize=50M MaxRetentionSec=1month # 重启服务 sudo systemctl restart systemd-journald

这样日志最多占500MB,单个文件50MB,保留一个月。对于大多数场景够用了。

9.2 清理旧内核和临时文件

旧内核会占用/boot空间,更新几次后可能满。清理方法:

# 查看已安装内核 dpkg --list | grep linux-image # 删除旧内核(保留当前使用的) sudo apt purge linux-image-旧版本号 # 清理临时文件 sudo rm -rf /tmp/* sudo rm -rf /var/tmp/*

注意:删除内核前确认当前使用的内核版本,用uname -r查看。不要删当前正在用的。

9.3 缓存目录治理

~/.cache和/var/cache是缓存重灾区。浏览器缓存、包管理器缓存、缩略图缓存都在这里。定期清理:

# 查看缓存大小 du -sh ~/.cache/* du -sh /var/cache/* # 清理浏览器缓存(以某浏览器为例) rm -rf ~/.cache/*浏览器名* # 清理缩略图缓存 rm -rf ~/.cache/thumbnails/*

但不要无脑全删,有些缓存删了会导致应用重新生成,反而增加I/O。比如包管理器的缓存删了,下次安装要重新下载。

10. 一些个人体会和后续可扩展的方向

这套优化策略我在不同机器上反复用过,有物理机也有虚拟机,有老旧的机械硬盘笔记本,也有NVMe的台式机。最大的体会是:优化效果最明显的往往不是那些“高级参数”,而是最基础的东西——关掉不用的服务、换SSD、加内存、保持系统干净。这些基础动作带来的提升,远比调内核参数来得直接。

另一个体会是:记录比优化本身更重要。我有一台机器,每次优化都记录改动和效果,两年下来积累了十几条记录。后来换硬件时,直接照着记录重新配置,省了大量试错时间。而且当系统出问题时,翻记录能快速定位到最近改了什么。

后续还可以扩展的方向包括:容器化环境下的优化(cgroup限制、命名空间隔离)、网络性能调优(TCP窗口、队列规则)、以及针对特定工作负载的优化(数据库、编译、渲染)。这些内容展开又是一大篇,有机会再聊。

最后分享一个小技巧:如果你不确定某个优化是否有效,用time命令对比优化前后的关键操作耗时。比如time sudo apt update,优化前后各跑三次取平均。数据不会骗人,比感觉靠谱得多。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/13 8:08:17

需求响应+双层优化:区域综合能源系统调度Matlab复现实战

做综合能源系统调度优化的同行应该都有体会:单层模型跑得再顺,真到了评审或者现场,总会被问一句"用户凭什么按你给的曲线用能?"——这正是需求响应没建模到位的典型症状。这次我完整复现了一篇核心期刊上关于"计及…

作者头像 李华
网站建设 2026/10/13 8:08:12

AI灾难推演:头部实验室如何做风险压力测试与运行时监控

1. 当"推演灾难"成为一门正经工作第一次看到"AI灾难恐在一年内发生"这个说法,我的反应和大多数人一样——又是标题党。但当我真正去梳理几家头部AI实验室近两年公开的技术文档、安全框架和招聘方向之后,我改变了看法。这不是危言耸听…

作者头像 李华
网站建设 2026/10/13 8:08:05

SSM框架社区医疗服务平台:毕设选题到答辩全流程解析

每年到了毕业设计季,总有不少学生拿着选题来问:这个系统到底要做什么、技术栈选什么不容易翻车、论文要写多少字才不被抽检打回。今年问得最集中的题目之一,就是SSM框架下的社区医疗服务平台。这篇文章就围绕这个选题把全流程拆开讲&#xff…

作者头像 李华
网站建设 2026/10/13 8:07:29

工业AI服务商选型指南:五维评估模型与2026落地路径

2026年还没到,但问“工业AI服务商到底哪家强”的人已经多到让我回不过来消息了。前阵子参加一个制造业数字化闭门会,十几个企业信息化负责人围在一起聊AI落地,聊到最后,所有问题都指向同一个:榜单看了一堆,…

作者头像 李华
网站建设 2026/10/13 8:06:41

Gibbs采样实战:手写条件分布与收敛诊断全链路指南

简介:本资源是一套面向统计物理与计算材料方向研究者的Gibbs系综模拟程序集,适用于分子动力学与蒙特卡洛方法初学者及科研实践者,用于开展相平衡、相变行为、多组分系统热力学性质等核心问题的数值模拟。压缩包共20个文件,以18个M…

作者头像 李华
网站建设 2026/10/13 8:06:12

自增强感知协同网络:无缝钢管内表面缺陷检测落地实战

简介:这份资源面向从事工业质检、机器视觉与深度学习缺陷检测的研究生、工程师及竞赛选手,提供无缝钢管内表面缺陷检测的完整项目资料,核心为自增强感知协同网络模型,可识别裂纹、划痕、斑点等典型缺陷,解决人工检测效…

作者头像 李华