软件测试之Linux系统性能调优技巧

news2025/1/9 16:27:35

在这里插## 标题入图片描述

大家好,我是程序员小羊!

前言

Linux系统性能调优是一项复杂且系统性的任务,它涉及操作系统内核、硬件资源、应用程序、文件系统、网络设置等多个方面。通过合理的调优策略,可以有效提高Linux系统的性能,满足生产环境的需求。本文将介绍一些常见的Linux系统性能调优技巧,包括CPU、内存、磁盘I/O、网络、内核参数和应用层面的优化。

接下来我会跟大家从几个方便进行讲解:

一、CPU性能调优

1.1 进程调度

Linux内核提供了几种不同的调度策略,可以通过调整调度策略来优化系统的CPU利用率。常见的调度策略包括:

  • CFS(完全公平调度器):这是Linux默认的调度策略,适合大多数场景。通过调整进程优先级(使用nicerenice命令),可以控制进程的调度优先级。
  • 实时调度策略(SCHED_FIFO和SCHED_RR):适用于对延迟敏感的应用,例如实时音频处理或低延迟网络应用。

通过chrt命令可以为特定进程设置调度策略和优先级。

1.2 CPU绑定

在多核CPU环境中,可以通过将进程或线程绑定到特定CPU核来减少上下文切换,从而提高性能。使用taskset命令可以将进程绑定到指定的CPU核。例如:

taskset -c 0,1 ./myprogram

1.3 CPU频率调节

CPU频率调节(CPU frequency scaling)允许根据系统负载动态调整CPU频率,从而在性能与功耗之间取得平衡。可以通过调整CPU的调节器(governor)来优化性能,常见的调节器有:

  • performance:锁定在最高频率,适合需要高性能的场景。
  • powersave:锁定在最低频率,适合节能场景。
  • ondemand:根据负载动态调整频率,适合大多数场景。

可以使用cpupower工具来查看和设置调节器:

cpupower frequency-set -g performance

二、内存性能调优

2.1 内存分配策略

Linux内核提供了不同的内存分配策略,可以通过调整这些策略来优化内存使用:

  • overcommit_memory:控制内核如何处理内存过度分配,可以在/etc/sysctl.conf中设置:
    • 0:内核根据应用程序的请求和系统的可用内存情况决定是否允许过度分配。
    • 1:允许所有分配请求,不考虑实际可用内存。
    • 2:严格禁止过度分配,除非有足够的内存。
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf

2.2 内存页面交换

交换(Swap)是当物理内存不足时,系统将不常用的内存页写入硬盘。交换空间可以防止内存耗尽导致的系统崩溃,但过多的交换操作会严重影响性能。可以通过以下方式优化交换的使用:

  • 调整交换倾向(swappiness):控制系统使用交换空间的倾向,范围为0-100,值越高系统越倾向于使用交换空间。默认值为60,可以根据需要调整:
echo "vm.swappiness=10" >> /etc/sysctl.conf
  • 使用zswap:zswap是一个基于压缩的交换缓存,可以减少实际写入磁盘的交换量,从而提高性能。

2.3 大页内存(HugePages)

对于需要大量内存访问的应用(如数据库),可以启用大页内存来减少页表的开销。可以在/etc/sysctl.conf中设置大页内存:

echo "vm.nr_hugepages=512" >> /etc/sysctl.conf

三、磁盘I/O性能调优

3.1 文件系统选择与优化

不同的文件系统对性能有不同的影响,选择合适的文件系统对于I/O密集型应用至关重要。常见的文件系统包括:

  • ext4:适合大多数场景,性能稳定。
  • XFS:适合大文件和高并发写入的场景。
  • btrfs:适合需要高级功能(如快照、子卷)的场景。

在创建文件系统时,可以使用特定的参数来优化性能。例如,使用noatime选项可以避免每次访问文件时更新访问时间,从而减少I/O操作。

mount -o noatime /dev/sda1 /mnt

3.2 I/O调度器优化

I/O调度器控制磁盘I/O请求的顺序,不同的调度器适合不同的场景:

  • cfq(完全公平队列):默认调度器,适合通用场景。
  • deadline:适合低延迟需求的场景,尤其是数据库应用。
  • noop:适合SSD等不需要复杂I/O调度的设备。

可以通过echo命令调整调度器:

echo "deadline" > /sys/block/sda/queue/scheduler

3.3 RAID和LVM优化

使用RAID和LVM可以提高磁盘I/O性能。RAID 0提供了条带化功能,提高读写速度;RAID 10则兼顾了性能和数据冗余。LVM可以通过条带化卷组进一步提高I/O性能。

四、网络性能调优

4.1 网络协议栈优化

Linux提供了丰富的网络协议栈参数,可以通过sysctl调整这些参数来优化网络性能:

  • tcp_window_scaling:启用TCP窗口缩放以处理高带宽延迟产品网络(BDP)场景。
  • tcp_fin_timeout:减少TCP连接关闭的超时时间,适合高并发短连接场景。
echo "net.ipv4.tcp_window_scaling=1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_fin_timeout=15" >> /etc/sysctl.conf

4.2 网络队列管理

使用队列管理算法(如fq_codel、pfifo_fast)可以减少网络拥塞,提高网络响应速度。可以通过tc命令设置网络队列:

tc qdisc add dev eth0 root fq_codel

4.3 网络接口绑定(NIC Bonding)

对于需要高带宽或高可用性的场景,可以通过网络接口绑定(NIC Bonding)将多个网络接口组合成一个逻辑接口,从而提高网络吞吐量或实现冗余。

五、内核参数优化

5.1 内核参数调优

Linux内核提供了大量参数用于控制系统行为。可以通过调整/etc/sysctl.conf中的参数来优化性能。例如:

  • fs.file-max:增加系统可打开的最大文件数,适合高并发应用。
  • vm.dirty_ratio:控制脏页的比例,降低脏页过多时写入磁盘的频率,以减少I/O高峰。
echo "fs.file-max=1000000" >> /etc/sysctl.conf
echo "vm.dirty_ratio=10" >> /etc/sysctl.conf

5.2 NUMA优化

在多路服务器上,NUMA(非统一内存访问)架构是常见的配置。可以通过调整NUMA策略(如使用numactl工具)来优化应用的内存分配和CPU亲和性,从而提高性能。

六、应用层面优化

6.1 合理配置应用程序

应用程序本身的配置对性能有很大影响。例如,数据库服务器的缓冲池大小、Web服务器的并发连接数、Java虚拟机的堆大小等,都需要根据系统资源和应用负载进行合理配置。

6.2 监控与调试

定期监控系统性能并进行调试是确保系统稳定运行的关键。可以使用以下工具:

  • top/htop:实时查看CPU、内存、进程信息。
  • iostat:监控磁盘I/O性能。
  • vmstat:监控内存、I/O、系统负载等。
  • netstat:查看网络连接和端口使用情况。
  • strace:调试进程系统调用,找出性能瓶颈。

6.3 使用缓存与负载均衡

在应用层面,使用缓存(如Memcached、Redis)和负载均衡可以显著提高系统性能。缓存可以减少数据库查询次数,降低数据库压力,而负载均衡可以将流量分摊到多个服务器上,防止单点过载。

结尾

Linux系统性能调优是一项涉及多个层面的综合性工作。通过合理配置和优化CPU、内存、磁盘I/O、网络和内核参数,可以显著提高系统的整体性能。同时,针对应用程序的特殊需求进行优化,结合持续的监控与调试,可以确保系统在高负载下稳定运行。调优过程中,需要根据具体的使用场景和业务需求,进行有针对性的调整,以达到最佳的性能表现。

今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2042520.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

qt-10基本对话框(文件--颜色--字体)

基本对话框--输入对话框 DialogDialog.hDialog.cpp exdialog.hexdialog.hexdialog.cpp 运行图文件对话框颜色对话框字体对话框输入对话框-字符串输入对话框-选择 Item输入对话框-数字 Dialog Dialog.h #ifndef DIALOG_H #define DIALOG_H#include "exdialog.h"#inc…

数字文创产业园怎么凭借智慧园区建设出圈

在数字化浪潮席卷全球的当下,数字文创产业正以前所未有的速度崛起。而数字文创产业园若想在众多竞争对手中脱颖而出,凭借智慧园区建设出圈无疑是一条明智之路。 首先得明白什么是智慧园区建设? 智慧园区建设指的是通过现代信息技术和智能化手…

超时控制+第三方调用控制

文章目录 第三方调用控制背景介绍一致性抽象同步转异步自动替换第三方压测支持 超时控制目标确定超时时间根据用户体验根据响应时间压力测试根据代码计算 监控超时时间 第三方调用控制 背景介绍 我的系统对可用性要求非常高,为此我综合使用了熔断、限流、降级、超…

mac 链接数据库报错 - Public Key Retrieval is not allowed

使用 DBeaver 链接 MySQL 时,连接失败,提示 Public Key Retrieval is not allowed 发现是需要修改一个链接属性字段,方式如下: 1、选中服务器,点击 编辑连接 2、连接设置 – 驱动属性 – allowPublicKeyRetrieval 改为…

暨南大学2024年硕士研究生报考录取情况统计表

今天暨南大学2024年硕士研究生报考录取情况统计表出来了,在之前的笔记中,我对比过2022年与2023年的硕士研究生报考录取情况统计表中暨南大学智科院人工智能专硕报考情况 2024硕士研究生报考录取情况统计表中智科院的电子信息对应的是人工智能专硕(01方向…

科研项目验收管理系统

TOC springboot245科研项目验收管理系统 绪论 1.1 研究背景 现在大家正处于互联网加的时代,这个时代它就是一个信息内容无比丰富,信息处理与管理变得越加高效的网络化的时代,这个时代让大家的生活不仅变得更加地便利化,也让时…

面向对象编程-继承

目录 一、为什么需要继承 二、继承的基本介绍 1、继承的基本介绍 2、继承示意图 3、继承的基本语法 三、快速入门 四、继承的使用细节 五、练习 一、为什么需要继承 1、一个小问题,还是看程序,提出代码复用问题 1)我们编写两个类&a…

【AI 绘画】Q版人物定制生成

AI 绘画-PulID手办定制 1. 效果展示 本次测试主要结果展示如下: 牛仔风 古风 2. 基本原理 PuLID是一种类似于 ip-adapter 的恢复面部特征的方法。它同时使用 insightface 嵌入和 CLIP 嵌入,类似于 ip-adapter faceid plus 模型所做的。但是,在将图像传递给 CLIP 之前,还…

8.看门狗(WDG)

理论 防止系统跑飞 喂狗:让值为0 分类:独立看门狗(IWDG,0到100喂狗)、窗口看门狗(60到100喂狗),值(60),顶值(100) 代码编写 按键喂狗 独立看门狗配置 超过10s,复位 注意时钟: 按键、LED灯配置参考&#x…

sql注入实战——thinkPHP

sql注入实战——thinkPHP sql注入实战——thinkPHPthinkPHP前期环境搭建创建数据库开始寻找漏洞点输入SQL注入语句漏洞分析 实验错误 sql注入实战——thinkPHP thinkPHP前期环境搭建 下载thinkPHP文件 解压,将framework关键文件放到think-5.0.15中,改…

Containerd详解

一.Containerd概述 1.什么是Containerd Containerd (container Daemon)是一个开源的容器运行时,它提供了一种标准化的方式来管理容器的生命周期。该项目最初是由Docker开发团队创建的,并在后来成为一个独立的项目,被纳入了Cloud Native Comp…

播放视频时黑屏无报错或报错“播放失败,请检查设备及客户端网络”

播放视频时黑屏无报错或报错“播放失败,请检查设备及客户端网络”或该如何解决? 请先使用排障工具排查,获得具体错误码,排障工具操作文档详见: 播放失败自助排障及常见错误码解决方案 - 播放问题 - 萤石社区 - Powered…

Linux下查看各进程的swap

cat /etc/re*se Red Hat Enterprise Linux Server release 6.8 (Santiago) 简单的可以通过top命令查看 top 后 按 f 进入选择列界面 按 p 就会输出swap信息(变为P) 回车返回看到SWAP信息了 再按 F 再按p 按swap排序 再回车后就是各进程按swap排序…

工厂数据采集设备的革新与应用-天拓四方

随着工业4.0和智能制造的快速发展,工厂数据采集设备已成为现代制造业不可或缺的重要组成部分。这些设备不仅提高了生产效率,还通过精准的数据分析为企业的决策提供了有力支持。本文将深入探讨工厂数据采集设备的革新、应用及其在实际操作中的重要性。 一…

论文利器 | 6款论文自动生成免费含摘要文献综述

在学术写作中,选择合适的工具和软件可以大大提高写作效率和质量。本文将重点介绍一款备受推荐的AI原创论文写作平台——千笔-AIPassPaPer,并详细分析其功能和优势。 千笔-AIPassPaPer简介 千笔-AIPassPaPer是一款功能全面且高效的AI原创论文写作平台&a…

注意力机制篇 | YOLOv8改进之引入NAMAttention注意力机制 | 基于标准化的注意力模块

前言:Hello大家好,我是小哥谈。本文提出一种基于归一化的注意力模块(NAM),可以降低不太显著的特征的权重,这种方式在注意力模块上应用了稀疏的权重惩罚,这使得这些权重在计算上更加高效,同时能够保持同样的性能。我们在ResNet和MobileNet上和其他的注意力方式进行了对比…

基于springboot的乐享田园系统

TOC springboot181基于springboot的乐享田园系统 第1章 绪论** 1.1 课题背景 二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。在互联网诞生之前,地域位置往往是人们思想上不…

线程的退出、资源回收,互斥锁

创建多个线程,用循环的方式: 一、线程结束方式 1、pthread_exit(void *) 2、pthread_return 3、pthread_cancle:异常退出,无法获得退出状态,只能回收资源。 程序实例: 二、线程资…

异构数据同步 datax (1)

阿里实现异构数据库之间的表数据集同步 Reader & Framework & Writer job 当然好用的框架,自然有很多优点 1)可靠的数据质量监控 2) 丰富的数据转换功能 DataX作为一个服务于大数据的ETL工具,除了提供数据快照搬迁功能之外&#…

Gather在全球隐私保护领域的先锋地位

随着全球数字化进程的加速,隐私保护已成为各国政府、企业以及个人用户的共同关注点。近年来,频发的数据泄露事件和隐私侵害问题,让用户对安全通信和隐私保护的需求愈发强烈。据 IBM Security 统计,2024 年全球数据泄露的平均成本为…