首页 > 系统相关 >25个Linux系统性能调优技巧

25个Linux系统性能调优技巧

时间:2024-10-13 09:20:18浏览次数:8  
标签:25 sysctl 技巧 性能 调优 内存 Linux 操作 net

大家好,我是 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优化、网络设置到文件系统、内存管理和进程调度等多个方面。这些技巧可以根据具体业务需求选择性应用,从而提高系统的整体性能和响应速度。关注威哥爱编程,码码通畅不掉发。

标签:25,sysctl,技巧,性能,调优,内存,Linux,操作,net
From: https://blog.csdn.net/finally_vince/article/details/142812957

相关文章

  • 2024-2025-1 20241412《计算机基础与程序设计》第三周学习总结
    2024-2025-120241412《计算机基础与程序设计》第三周学习总结作业信息这个作业属于哪个课程[2024-2025-1-计算机基础与程序设计]https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里[2024-2025-1计算机基础与程序设计第一周作业]https://edu......
  • 小米平板5(nabu)安装 HyperOS + Arch Linux 双系统
    小米平板5(nabu)安装HyperOS+ArchLinux双系统资源准备(TODO)HyperOS系统本体进入BootloaderUotan工具箱中WiredFlash->MoreFlash->XiaomiScript选择Hyper_OS_1.1.5.0.VNXCNXM.BETA_安卓15/nabu_XiaomiPad5_OS1.1.5.0.VNXCNXM.BETA_15.0_By_mytiantian/flash_all.sh......
  • 嵌入式Linux系统磁盘空间问题
    问题描述:我的系统板是stm32mp157,属于mpu,搭载了嵌入式Linux系统,我将系统通过STM32CubeProgrammer烧录在了一张32g的sd卡上,可是系统烧录完毕启动板子后,使用命令df-h查看发现磁盘空间只有1个多g,如下图上网查看,问题可能出在我的系统是由buildroot进行构建的,某些嵌入式系统的构......
  • 2024-2025-1 20241307《计算机基础与程序设计》第三周学习总结
    作业信息这个作业属于哪个课程(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里(2024-2025-1计算机基础与程序设计第三周作业)这个作业的目标作业正文(2024-2025-1学号20241307《计算机基础与程序设计》第三周学习总结)教材学习内容总结《计算机科学......
  • Linux下安装搜狗输入法
    Linux下中文输入法很多人说Linux下的难以输入中文,这里介绍一个X11下的安装Sogou输入法的方案sogou输入法Linux版,只支持Fcitx+X11,所以需要给Fcitx5卸载,并且进入X11桌面环境安装sogou输入法sudoaptremovefcitx5-*sudoaptinstallfcitxsudoaptinstallqtbase5-devsudo......
  • 2024-2025-1 20241413 《计算机基础与程序设计》第三周学习总结
    作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03这个作业的目标数字分类与计数法位置计数法进制转换模拟数据与数字数据压缩与解压数字化信息......
  • day25打卡
    452用最少数量的箭引爆气球classSolution{public:staticboolcmp(constvector&left,constvector&right){returnleft[0]<right[0];}intfindMinArrowShots(vector<vector>&points){sort(points.begin(),points.end(),cmp);intret=1;for......
  • 2024-2025-1《计算机基础与程序设计》第3周学习总结20241420姚金济
    <班级链接>https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/join?id=CfDJ8AOXHS93SCdEnLt5HW8VuxQ23KfVCDd17M92RURIJwdTBPMF7locrEwU_PbdKakofz0zTbJuc7KceG9Y6oQCShgfHFT19twYLe61kME6CedB920aZMY90TR1BJoIekMfCQXD2yhv5D-jTBrh3BU7q18<作业要求链接>https://www......
  • 第105天:权限提升-Linux系统&Docker挂载&Rsync未授权&Sudo-CVE&Polkit-CVE
    演示案例Linux-Rsync未授权访问覆盖-本地Linux-Docker组用户挂载目录-本地Linux-Sudo(CVE-2021-3156)-本地Linux-Polkit(CVE-2021-4034)-本地Rsync(未授权访问)Rsync是linux下一款数据备份工具,默认开启873端口https://vulhub.org/#/environments/rsync/common/借助Linux默认......
  • 第104天:权限提升-Linux系统&环境变量&定时任务&权限配置不当&MDUT自动化
    知识点总结#知识点:1、Linux提权-定时任务2、Linux提权-环境变量3、Linux提权-权限配置不当4、Linux提权-数据库自动化#系列内容:内核,数据库,第三方服务,SUID&GUID,定时任务,环境变量,SUDO,权限不当等脏牛漏洞(CVE-2016-5195)DirtyPipe(CVE-2022-0847)SUDO(CVE-2021-3156)Polki......