写点什么

25 个 Linux 系统性能调优技巧

作者:威哥爱编程
  • 2024-10-10
    北京
  • 本文字数:2081 字

    阅读完需:约 7 分钟

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

1. 调整swappiness参数

  • 技巧:减少系统对交换分区的依赖,提升内存使用效率。

  • 操作:将/proc/sys/vm/swappiness的值设置为较低值(如10),让系统更倾向于使用物理内存。


     sysctl vm.swappiness=10
复制代码

2. 使用tophtop监控系统资源

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

3. 调整ulimit设置

  • 技巧:为进程增加打开文件句柄的限制,以避免高负载下的资源不足。

  • 操作:编辑/etc/security/limits.conf,为用户设置更高的文件句柄限制:


     * hard nofile 65535     * soft nofile 65535
复制代码

4. 优化 I/O 调度器

  • 技巧:为不同的工作负载选择合适的 I/O 调度器,如noop适用于 SSD,deadline适用于低延迟应用。

  • 操作:更改 I/O 调度器:


     echo noop > /sys/block/sda/queue/scheduler
复制代码

5. 使用vmstat监控系统性能

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


     vmstat 1
复制代码

6. 调整dirty_ratiodirty_background_ratio

  • 技巧:优化写入缓存的刷新频率,减少磁盘 I/O 压力。

  • 操作


     sysctl vm.dirty_ratio=15     sysctl vm.dirty_background_ratio=5
复制代码

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

  • 技巧:对使用大量内存的应用(如数据库)启用大页内存,减少内存页的分配和管理开销。

  • 操作:在/etc/sysctl.conf中增加以下配置:


     vm.nr_hugepages=256
复制代码

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

  • 技巧:增加服务器的连接队列长度,避免在高并发时的连接拒绝。

  • 操作


     sysctl -w net.core.somaxconn=1024
复制代码

9. 优化网络缓冲区

  • 技巧:增加网络缓冲区大小,避免高负载时的网络包丢失。

  • 操作


     sysctl -w net.core.rmem_max=16777216     sysctl -w net.core.wmem_max=16777216
复制代码

10. 禁用不必要的服务

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

  • 操作:使用systemctl disablechkconfig禁用不需要的服务。

11. 使用iostat监控磁盘性能

  • 技巧:通过iostat工具定期查看磁盘 I/O 性能,确定是否存在磁盘瓶颈。


     iostat -x 1
复制代码

12. 调整tcp_tw_recycletcp_tw_reuse

  • 技巧:减少短连接时的 TIME_WAIT 数量,加快 TCP 连接的回收。

  • 操作


     sysctl -w net.ipv4.tcp_tw_reuse=1     sysctl -w net.ipv4.tcp_tw_recycle=1
复制代码

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

  • 技巧:安装并使用tuned工具,根据系统角色自动调整内核参数和性能配置。

  • 操作


     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


     /dev/sda1 / ext4 defaults,noatime 0 0
复制代码

16. 使用nscd加速 DNS 解析

  • 技巧:通过缓存 DNS 查询结果,加快频繁的网络请求的解析速度。

  • 操作:安装并启动nscd服务:


     yum install nscd     systemctl start nscd
复制代码

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

  • 技巧:减少不必要的内核模块加载,释放内存和处理能力。

  • 操作:通过lsmod查看当前加载的模块,使用modprobe -r卸载不需要的模块。

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

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


     perf top
复制代码

19. 优化进程调度策略

  • 技巧:根据应用场景,使用chrt命令为关键任务分配更高的调度优先级。


     chrt -f 99 <process-id>
复制代码

20. 调整 TCP 窗口大小

  • 技巧:增加 TCP 窗口大小,提升高延迟网络环境下的吞吐量。

  • 操作


     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 连接关闭的等待时间,加快连接释放。

  • 操作


     sysctl -w net.ipv4.tcp_fin_timeout=15
复制代码

23. 使用 SSD 优化读写速度

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

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

  • 技巧:在多核系统上启用 NUMA 优化,以充分利用 CPU 和内存之间的局部性,提升性能。

  • 操作:使用numactl工具管理进程的 CPU 和内存亲和性:


     numactl --interleave=all <application>
复制代码

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

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


systemd-analyze blame
复制代码

最后

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

发布于: 刚刚阅读数: 5
用户头像

华为 HDE、CSDN 博客专家、Java畅销书作者 2018-05-30 加入

全栈领域优质创作者(Java/HarmonyOS/AI),公众号:威哥爱编程

评论

发布
暂无评论
25个Linux系统性能调优技巧_Linux_威哥爱编程_InfoQ写作社区