清理无用软件包与缓存
定期清理APT缓存、无用依赖包及残余配置文件是释放磁盘空间、回收系统资源的基础操作。使用sudo apt clean
删除/var/cache/apt/archives目录下所有已下载的软件包;sudo apt autoclean
清理不再可用的旧软件包缓存(仅保留当前可用的包);sudo apt autoremove
删除因安装软件而产生的不再需要的依赖包。此外,通过dpkg --list | grep "rc "
找出残留配置文件的软件包,再用sudo dpkg --purge <package-name>
彻底删除,避免配置文件占用空间。
优化内存管理与回收
free -m
查看内存使用情况(重点关注“available”列,代表可用内存)。若需临时释放页缓存、目录项缓存或inode缓存,可执行echo 1 | sudo tee /proc/sys/vm/drop_caches
(释放页缓存)、echo 2 | sudo tee /proc/sys/vm/drop_caches
(释放dentries和inodes缓存)、echo 3 | sudo tee /proc/sys/vm/drop_caches
(释放所有缓存)。注意:此操作不会影响正在运行的程序,仅释放未使用的缓存。/etc/sysctl.conf
文件优化内存管理策略。例如,设置vm.swappiness=10
(降低内核使用Swap分区的倾向,数值越小越优先使用物理内存,建议10-30之间);vm.vfs_cache_pressure=200
(提高文件系统缓存的回收频率,避免过多缓存占用内存)。修改后执行sudo sysctl -p
使配置生效。top
(实时显示进程内存占用,按“M”键按内存排序)、htop
(更直观的进程监控工具,需安装:sudo apt install htop
)或free -h
(以人类可读格式显示内存使用情况)监控内存,识别占用过高内存的进程(如数据库、Web服务器),必要时终止异常进程(kill -9 <PID>
)。磁盘空间与I/O优化
journalctl --vacuum-time=7d
删除7天前的日志(需systemd版本≥226),或手动删除/var/log目录下旧日志文件(如rm -rf /var/log/*.gz
压缩日志)。/etc/fstab
文件,在挂载点选项中添加noatime
(禁用文件访问时间更新,减少磁盘写入)和nodiratime
(禁用目录访问时间更新),例如:UUID=xxxx-xxxx / ext4 defaults,noatime,nodiratime 0 1
。修改后执行sudo mount -o remount /
重新挂载。noop
(无调度,适合闪存设备)或deadline
(低延迟,适合高并发I/O)调度器;对于HDD,使用cfq
(完全公平队列,适合单线程读写)。执行echo noop | sudo tee /sys/block/sda/queue/scheduler
(sda为磁盘设备名,可通过lsblk
查看)临时修改,修改/etc/default/grub
中的GRUB_CMDLINE_LINUX
参数(如GRUB_CMDLINE_LINUX="quiet splash elevator=noop"
)并执行sudo update-grub
永久生效。内核参数调优
内核参数直接影响系统资源分配与性能。除上述提到的vm.swappiness
、vm.vfs_cache_pressure
外,还可调整以下参数:
net.core.somaxconn
:增加TCP连接队列长度(默认128),适合高并发服务器(如Web服务器),设置为65535
可减少连接拒绝。net.ipv4.tcp_max_syn_backlog
:增加SYN连接队列长度(默认1024),避免SYN Flood攻击导致连接失败,设置为65535
。/etc/sysctl.conf
文件添加上述参数,执行sudo sysctl -p
使配置生效。服务与进程管理
systemctl list-units --type=service
查看所有运行中的服务,停止并禁用非必需服务(如bluetooth
、cups
、avahi-daemon
),执行sudo systemctl stop <service-name>
停止服务,sudo systemctl disable <service-name>
禁用开机自启。systemd-analyze blame
查看开机启动时间较长的服务,通过sudo systemctl disable <service-name>
禁用不必要的启动项,缩短开机时间。监控与持续优化
定期使用监控工具跟踪系统性能,及时发现瓶颈并调整优化策略:
top
(实时进程监控)、free -h
(内存使用)、df -h
(磁盘空间)。iostat -x 1
(查看磁盘读写速率、I/O等待时间,需安装sysstat包)、iotop
(按进程显示磁盘I/O,需安装iotop包)。netstat -tulnp
(查看网络连接状态)、ss -s
(统计套接字信息,替代netstat的现代工具)。