25个Linux系统性能调优技巧

大家好,我是 V 哥。Linux系统性能调优是一个多层次的过程,涉及内核参数调整、硬件配置优化、应用程序调整等多个方面。以下是25个详细的Linux系统性能调优技巧,帮助你提高系统的整体性能。

1. 调整swappiness参数

  • 技巧:减少系统对交换分区的依赖,提升内存使用效率。
  • 操作 :将/proc/sys/vm/swappiness的值设置为较低值(如10),让系统更倾向于使用物理内存。
bash 复制代码
     sysctl vm.swappiness=10

2. 使用tophtop监控系统资源

  • 技巧 :定期使用top或更直观的htop工具,了解CPU、内存、负载等资源的实时使用情况,找出性能瓶颈。

3. 调整ulimit设置

  • 技巧:为进程增加打开文件句柄的限制,以避免高负载下的资源不足。
  • 操作 :编辑/etc/security/limits.conf,为用户设置更高的文件句柄限制:
markdown 复制代码
     * hard nofile 65535
     * soft nofile 65535

4. 优化I/O调度器

  • 技巧 :为不同的工作负载选择合适的I/O调度器,如noop适用于SSD,deadline适用于低延迟应用。
  • 操作:更改I/O调度器:
bash 复制代码
     echo noop > /sys/block/sda/queue/scheduler

5. 使用vmstat监控系统性能

  • 技巧 :通过vmstat查看CPU、内存、I/O等的详细统计,了解系统负载情况,及时调整。
bash 复制代码
     vmstat 1

6. 调整dirty_ratiodirty_background_ratio

  • 技巧:优化写入缓存的刷新频率,减少磁盘I/O压力。
  • 操作
bash 复制代码
     sysctl vm.dirty_ratio=15
     sysctl vm.dirty_background_ratio=5

7. 启用大页内存(Huge Pages)

  • 技巧:对使用大量内存的应用(如数据库)启用大页内存,减少内存页的分配和管理开销。
  • 操作 :在/etc/sysctl.conf中增加以下配置:
bash 复制代码
     vm.nr_hugepages=256

8. 调整内核参数net.core.somaxconn

  • 技巧:增加服务器的连接队列长度,避免在高并发时的连接拒绝。
  • 操作
bash 复制代码
     sysctl -w net.core.somaxconn=1024

9. 优化网络缓冲区

  • 技巧:增加网络缓冲区大小,避免高负载时的网络包丢失。
  • 操作
bash 复制代码
     sysctl -w net.core.rmem_max=16777216
     sysctl -w net.core.wmem_max=16777216

10. 禁用不必要的服务

  • 技巧:禁用不需要的系统服务,以减少系统资源消耗。
  • 操作 :使用systemctl disablechkconfig禁用不需要的服务。

11. 使用iostat监控磁盘性能

  • 技巧 :通过iostat工具定期查看磁盘I/O性能,确定是否存在磁盘瓶颈。
bash 复制代码
     iostat -x 1

12. 调整tcp_tw_recycletcp_tw_reuse

  • 技巧:减少短连接时的TIME_WAIT数量,加快TCP连接的回收。
  • 操作
bash 复制代码
     sysctl -w net.ipv4.tcp_tw_reuse=1
     sysctl -w net.ipv4.tcp_tw_recycle=1

13. 使用tuned自动优化系统配置

  • 技巧 :安装并使用tuned工具,根据系统角色自动调整内核参数和性能配置。
  • 操作
bash 复制代码
     yum install tuned
     tuned-adm profile throughput-performance

14. 启用异步I/O(AIO)

  • 技巧:对于需要高性能I/O的应用(如数据库),启用异步I/O能提高I/O操作的并行性。

15. 调整文件系统挂载参数

  • 技巧 :使用noatime选项挂载文件系统,避免每次文件读取时更新访问时间,减少磁盘I/O。
  • 操作 :编辑/etc/fstab,添加noatime
bash 复制代码
     /dev/sda1 / ext4 defaults,noatime 0 0

16. 使用nscd加速DNS解析

  • 技巧:通过缓存DNS查询结果,加快频繁的网络请求的解析速度。
  • 操作 :安装并启动nscd服务:
bash 复制代码
     yum install nscd
     systemctl start nscd

17. 禁用不必要的内核模块

  • 技巧:减少不必要的内核模块加载,释放内存和处理能力。
  • 操作 :通过lsmod查看当前加载的模块,使用modprobe -r卸载不需要的模块。

18. 使用perf工具进行性能分析

  • 技巧 :通过perf工具分析应用程序的性能瓶颈,进行有针对性的调优。
bash 复制代码
     perf top

19. 优化进程调度策略

  • 技巧 :根据应用场景,使用chrt命令为关键任务分配更高的调度优先级。
bash 复制代码
     chrt -f 99 <process-id>

20. 调整TCP窗口大小

  • 技巧:增加TCP窗口大小,提升高延迟网络环境下的吞吐量。
  • 操作
bash 复制代码
     sysctl -w net.ipv4.tcp_window_scaling=1
     sysctl -w net.core.rmem_default=262144
     sysctl -w net.core.wmem_default=262144

21. 启用Transparent Huge Pages(THP)

  • 技巧:启用透明大页机制,可以在需要大块内存的应用中提升性能,特别是虚拟化或数据库应用。
  • 操作 :编辑/sys/kernel/mm/transparent_hugepage/enabled,设置为always

22. 调整tcp_fin_timeout参数

  • 技巧:减少TCP连接关闭的等待时间,加快连接释放。
  • 操作
bash 复制代码
     sysctl -w net.ipv4.tcp_fin_timeout=15

23. 使用SSD优化读写速度

  • 技巧:对于高I/O的应用,使用SSD替代HDD,可以极大提高读写性能。

24. 启用NUMA(Non-Uniform Memory Access)优化

  • 技巧:在多核系统上启用NUMA优化,以充分利用CPU和内存之间的局部性,提升性能。
  • 操作 :使用numactl工具管理进程的CPU和内存亲和性:
bash 复制代码
     numactl --interleave=all <application>

25. 使用systemd-analyze加快系统启动时间

  • 技巧 :通过systemd-analyze工具分析系统启动时间,禁用启动时的瓶颈服务,提升系统启动速度。
bash 复制代码
systemd-analyze blame

最后

以上25个Linux系统性能调优技巧覆盖了从内核参数调整、I/O优化、网络设置到文件系统、内存管理和进程调度等多个方面。这些技巧可以根据具体业务需求选择性应用,从而提高系统的整体性能和响应速度。关注威哥爱编程,码码通畅不掉发。

相关推荐
怪我冷i3 分钟前
wsl Ubuntu切换中科大源
linux·windows·ubuntu·ai编程·ai写作
FenceRain3 分钟前
Linux 使用脚本删除文件
linux
QT 小鲜肉4 分钟前
【Linux命令大全】001.文件管理之chgrp命令(实操篇)
android·linux·运维·笔记
qq13267029404 分钟前
grafana 未授权访问漏洞设置iptables指定IP访问,拒绝其他所有IP
linux·服务器·网络·iptables·防火墙策略
春日见5 分钟前
ubuntu以前可以联网,突然无法上网了
linux·服务器·ubuntu·debug
鸠摩智首席音效师9 分钟前
如何在 CentOS 上设置 Apache Worker MPM ?
linux·centos·apache
Neolnfra11 分钟前
SMB、FTP、MySQL... 配置不当,即是漏洞
linux·数据库·mysql·安全·网络安全·系统安全·安全架构
一点晖光17 分钟前
centos安装ffmpeg环境
linux·ffmpeg·centos
蟑螂恶霸22 分钟前
ubuntu 20.04 移除旧版systemback, 安装新版1.8.5, 支持大型ISO镜像
linux·服务器·ubuntu
JPX-NO23 分钟前
ubuntu编译安装FreeRDP Version 3.x.x 版本
linux·ubuntu