当前位置: 首页 > news >正文

Linux系统调优技巧

Linux系统调优技巧

      • Linux 性能调优技巧的深度分析及场景案例
        • 目录
      • 1. Linux 性能调优的基础概念
        • 1.1 性能调优的目标
        • 1.2 常见的性能瓶颈
      • 2. 系统监控与性能分析工具
        • 2.1 常用工具介绍
        • 2.2 实战案例:如何通过工具定位性能问题
      • 3. CPU 性能调优
        • 3.1 CPU 负载分析
        • 3.2 CPU 调度优化
        • 3.3 实战案例:高并发场景下的 CPU 调优
      • 4. 内存性能调优
        • 4.1 内存管理机制
        • 4.2 虚拟内存与物理内存调优
        • 4.3 实战案例:内存泄漏和内存碎片化的优化
      • 5. I/O 性能调优
        • 5.1 文件系统与磁盘 I/O 调优
        • 5.2 网络 I/O 调优
        • 5.3 实战案例:高 I/O 负载场景下的优化策略
      • 6. 网络性能调优
        • 6.1 网络栈调优
        • 6.2 网络带宽与延迟优化
        • 6.3 实战案例:大规模分布式系统中的网络优化
      • 7. 内核参数调优
        • 7.1 内核参数介绍
        • 7.2 常见内核参数调优策略
        • 7.3 实战案例:内核参数调优在高吞吐量场景中的应用
      • 8. 应用层性能调优
        • 8.1 应用程序性能分析
        • 8.2 应用层缓存机制的优化
        • 8.3 实战案例:数据库性能调优策略

Linux 性能调优技巧的深度分析及场景案例


在现代 IT 基础设施中,Linux 系统已经成为服务器和嵌入式设备的主流操作系统之一。随着业务规模的扩大和应用场景的复杂化,Linux 系统的性能成为了影响服务质量和用户体验的关键因素之一。本文将从多个维度深入分析 Linux 性能调优的技巧,并结合实际场景案例,探讨如何有效提高 Linux 系统的性能。


目录
  1. Linux 性能调优的基础概念

    • 1.1 性能调优的目标
    • 1.2 常见的性能瓶颈
  2. 系统监控与性能分析工具

    • 2.1 常用工具介绍
    • 2.2 实战案例:如何通过工具定位性能问题
  3. CPU 性能调优

    • 3.1 CPU 负载分析
    • 3.2 CPU 调度优化
    • 3.3 实战案例:高并发场景下的 CPU 调优
  4. 内存性能调优

    • 4.1 内存管理机制
    • 4.2 虚拟内存与物理内存调优
    • 4.3 实战案例:内存泄漏和内存碎片化的优化
  5. I/O 性能调优

    • 5.1 文件系统与磁盘 I/O 调优
    • 5.2 网络 I/O 调优
    • 5.3 实战案例:高 I/O 负载场景下的优化策略
  6. 网络性能调优

    • 6.1 网络栈调优
    • 6.2 网络带宽与延迟优化
    • 6.3 实战案例:大规模分布式系统中的网络优化
  7. 内核参数调优

    • 7.1 内核参数介绍
    • 7.2 常见内核参数调优策略
    • 7.3 实战案例:内核参数调优在高吞吐量场景中的应用
  8. 应用层性能调优

    • 8.1 应用程序性能分析
    • 8.2 应用层缓存机制的优化
    • 8.3 实战案例:数据库性能调优策略
  9. 总结与展望


1. Linux 性能调优的基础概念

1.1 性能调优的目标

Linux 性能调优的目标在于最大化系统资源的利用率,提高系统的响应速度和处理能力,同时确保系统在高负载或恶劣环境下的稳定性。具体而言,性能调优的主要目标包括:

  • 降低系统响应时间:减少系统处理请求的延迟,提升用户体验。
  • 提高吞吐量:增加系统在单位时间内处理的任务数量。
  • 优化资源利用率:合理分配 CPU、内存、I/O 等资源,避免资源浪费。
  • 增强系统稳定性:在高负载情况下维持系统的稳定运行,避免宕机或性能下降。
1.2 常见的性能瓶颈

在进行性能调优时,首先需要识别系统中的性能瓶颈。常见的性能瓶颈包括:

  • CPU 瓶颈:CPU 资源被过度消耗,导致系统处理速度变慢。
  • 内存瓶颈:内存不足或内存使用效率低下,导致系统频繁使用交换空间,影响性能。
  • I/O 瓶颈:磁盘或网络 I/O 速度过慢,限制了系统的吞吐量。
  • 网络瓶颈:网络带宽不足或延迟过高,影响了系统的通信效率。

2. 系统监控与性能分析工具

2.1 常用工具介绍

在进行性能调优之前,准确的性能监控和分析是必要的。以下是一些常用的 Linux 性能监控与分析工具:

  • tophtop:实时监控系统的 CPU、内存、进程等资源使用情况。
  • vmstat:显示系统的虚拟内存、进程、I/O 和 CPU 的实时统计信息。
  • iostat:监控磁盘 I/O 和 CPU 使用情况。
  • netstatss:查看网络连接和端口状态,监控网络流量。
  • sar:收集系统的 CPU、内存、磁盘和网络等资源的历史统计数据。
  • strace:追踪进程的系统调用,分析进程的行为。
  • perf:高级性能分析工具,用于分析 CPU 使用率、缓存命中率等详细指标。
2.2 实战案例:如何通过工具定位性能问题

案例:CPU 使用率过高

在一个高并发的 web 服务器上,管理员发现系统响应变慢,怀疑是 CPU 资源耗尽导致的问题。通过以下步骤进行分析:

  1. 使用 tophtop 查看 CPU 使用情况,确定是否存在高 CPU 占用的进程。
  2. 使用 perf 分析高 CPU 使用率的进程,查找消耗 CPU 的具体函数或代码路径。
  3. 使用 strace 进一步追踪系统调用,定位系统性能瓶颈是否在 I/O 或内存上。

通过以上步骤,管理员发现某个服务进程中频繁调用 CPU 密集型函数,导致 CPU 资源耗尽。通过优化代码和算法,将 CPU 使用率降低,提升了系统性能。

3. CPU 性能调优

3.1 CPU 负载分析

在 Linux 系统中,CPU 负载通常由以下几个方面组成:

  • 用户空间负载:由用户态进程消耗的 CPU 时间。
  • 内核空间负载:由内核态进程和系统调用消耗的 CPU 时间。
  • 等待 I/O 时间:由于 I/O 操作引起的 CPU 等待时间。

通过 vmstatsar 等工具,可以查看这些不同类别的 CPU 负载,帮助分析系统性能问题。

3.2 CPU 调度优化

Linux 系统采用复杂的调度算法来分配 CPU 资源。调度优化可以从以下几个方面入手:

  • 调度器的选择:选择适合的调度器(如 CFS 调度器)来优化特定场景下的性能。
  • 实时调度优化:在实时系统中,使用实时调度策略(如 FIFO 或 RR)来提高响应速度。
  • 中断处理优化:合理配置中断处理器,减少中断对 CPU 的影响。
3.3 实战案例:高并发场景下的 CPU 调优

案例:在线交易系统的 CPU 调优

在一个在线交易系统中,由于高并发请求,系统 CPU 负载过高,导致响应时间延长。通过以下方法进行调优:

  1. 使用 perf 分析 系统的 CPU 使用情况,确定主要的 CPU 消耗点。
  2. 优化应用程序代码,减少不必要的计算,使用更高效的算法。
  3. 调整进程优先级,提高关键进程的优先级,确保重要任务优先处理。
  4. 配置 CPU 亲和性,将特定进程绑定到特定 CPU 上,减少上下文切换。

最终,系统的 CPU 使用率大幅下降,响应时间显著提升。

4. 内存性能调优

4.1 内存管理机制

Linux 系统中的内存管理包括物理内存、虚拟内存和交换空间。了解内存的管理机制有助于进行有效的调优:

  • 物理内存:系统中的实际内存,用于存储正在运行的进程和数据。
  • 虚拟内存:通过内存分页技术,将物理内存和磁盘交换空间结合起来,提供比实际内存更大的地址空间。
  • 交换空间:当物理内存不足时,系统会将部分数据写入磁盘的交换空间,以腾出内存供其他进程使用。
4.2 虚拟内存与物理内存调优

内存调优的关键在于提高内存的使用效率,减少内存瓶颈:

  • 优化交换空间的使用:通过调整 swappiness 参数,控制系统使用交换空间的频率。
  • 减少内存碎片化:通过内存池技术或调整内核参数,减少内存碎片化问题。
  • 增大内存页大小:在需要大量内存的场景下,可以通过调整 hugepages 参数,增大内存页的大小,提高内存管理效率。
4.3 实战案例:内存泄漏和内存碎片化的优化

**案例

:长时间运行的服务内存泄漏问题**

某在线服务长时间运行后,内存使用不断增加,导致系统性能下降。通过以下步骤进行调优:

  1. 使用 valgrind 工具检测内存泄漏,找到程序中未释放的内存块。
  2. 优化代码,确保每个内存分配都对应正确的内存释放,避免内存泄漏。
  3. 调整内核参数,如 vm.min_free_kbytesvm.overcommit_memory,优化内存分配策略。
  4. 监控内存碎片化,通过 slabtop 工具查看内存碎片化情况,调整内存分配算法。

通过优化后,系统内存使用更加稳定,长时间运行后性能不再下降。

5. I/O 性能调优

5.1 文件系统与磁盘 I/O 调优

磁盘 I/O 是影响系统性能的一个关键因素。通过以下方法可以进行调优:

  • 选择合适的文件系统:不同的文件系统在不同场景下有不同的性能表现,如 ext4XFS 等。
  • 优化文件系统挂载选项:通过调整文件系统的挂载选项(如 noatimenodiratime),减少不必要的 I/O 操作。
  • 调整 I/O 调度策略:选择合适的 I/O 调度器(如 deadlinecfq),优化 I/O 性能。
5.2 网络 I/O 调优

网络 I/O 性能的优化可以从以下几个方面入手:

  • 优化网络协议栈:通过调整网络协议栈的缓冲区大小、窗口大小等参数,提高网络吞吐量。
  • 减少网络延迟:通过启用 TCP_NODELAY 选项或使用更高效的协议(如 UDP),减少网络通信延迟。
  • 分散网络负载:使用负载均衡技术将网络流量分散到多个服务器上,避免单点瓶颈。
5.3 实战案例:高 I/O 负载场景下的优化策略

案例:数据分析系统的 I/O 调优

在一个大数据分析系统中,磁盘 I/O 成为性能瓶颈,数据处理速度严重受限。通过以下步骤进行调优:

  1. 选择高效的文件系统,如 XFS,提高大文件读写性能。
  2. 调整 I/O 调度器,使用 deadline 调度器,减少 I/O 等待时间。
  3. 启用异步 I/O,提高磁盘 I/O 的并发处理能力。
  4. 分布式存储系统,将数据存储在多个节点上,通过分布式文件系统(如 HDFS)提高 I/O 吞吐量。

通过调优,数据处理速度显著提升,I/O 瓶颈得到有效缓解。

6. 网络性能调优

6.1 网络栈调优

Linux 系统的网络栈包括多层协议,每一层都可以通过调优来提高性能:

  • TCP/IP 参数调优:调整 TCP/IP 协议栈的缓冲区大小、窗口大小、重传策略等参数,提高网络传输效率。
  • 中断处理优化:通过调整中断处理的策略,减少网络包的处理延迟。
  • 多队列网卡:使用多队列网卡,分配不同队列处理不同的数据流,提高网络处理能力。
6.2 网络带宽与延迟优化

在高带宽需求的场景中,优化网络带宽和减少网络延迟是提高性能的关键:

  • 启用 TCP_NODELAY:减少 TCP 数据包的聚合,降低延迟。
  • 调整网络缓冲区:增大网络缓冲区,减少网络拥塞带来的性能影响。
  • 使用 CDN 和缓存技术:在大规模分布式系统中,使用 CDN 和缓存技术减轻网络带宽压力,提高响应速度。
6.3 实战案例:大规模分布式系统中的网络优化

案例:分布式存储系统的网络调优

在一个分布式存储系统中,网络延迟影响了数据的读写性能。通过以下步骤进行调优:

  1. 调整 TCP 参数,如 tcp_rmemtcp_wmem,优化网络缓冲区大小,提高传输速度。
  2. 优化中断处理,通过 irqbalance 工具优化中断分配,减少 CPU 处理延迟。
  3. 使用 CDN 缓存,将静态内容缓存到 CDN 节点,减少跨区域网络传输的延迟。

最终,系统的网络延迟大幅降低,数据读写性能显著提升。

7. 内核参数调优

7.1 内核参数介绍

Linux 内核提供了大量可调参数,通过 /proc/sys 文件系统或 sysctl 命令可以动态调整这些参数,进行系统调优。常见的内核参数包括:

  • vm.swappiness:控制交换空间的使用频率。
  • net.core.somaxconn:设置系统允许的最大监听队列长度。
  • fs.file-max:控制系统可同时打开的文件数。
7.2 常见内核参数调优策略

在进行内核参数调优时,需根据实际业务场景选择合适的参数:

  • 高并发服务器:提高 net.core.somaxconnfs.file-max 参数,支持更多并发连接和文件操作。
  • 内存受限系统:降低 vm.swappiness 参数,减少系统使用交换空间的频率,提高内存使用效率。
  • I/O 密集型系统:调整 vm.dirty_ratiovm.dirty_background_ratio 参数,优化 I/O 缓存策略。
7.3 实战案例:内核参数调优在高吞吐量场景中的应用

案例:Web 服务器的内核参数调优

在一个高流量的 Web 服务器中,默认的内核参数限制了系统的处理能力。通过以下步骤进行调优:

  1. 增大 net.core.somaxconn 参数,支持更多的连接请求,减少连接排队等待时间。
  2. 调整 fs.file-max 参数,允许系统同时打开更多文件,减少文件打开失败的可能性。
  3. 优化 TCP 参数,如 tcp_tw_recycletcp_tw_reuse,加快短连接的回收速度,减少 TIME_WAIT 状态的连接数。

通过调优,Web 服务器的并发处理能力大幅提升,系统吞吐量明显增加。

8. 应用层性能调优

8.1 应用程序性能分析

在应用层面,性能调优通常需要深入分析应用程序的代码和逻辑。以下是一些常见的应用程序性能分析方法:

  • 代码剖析:使用 gprofperf 工具分析应用程序的性能瓶颈,找出消耗资源最多的代码路径。
  • 内存剖析:使用 valgrind 等工具分析应用程序的内存使用情况,找出内存泄漏和不必要的内存分配。
  • 线程分析:在多线程应用程序中,使用 straceltrace 工具分析线程之间的竞争和锁争用问题。
8.2 应用层缓存机制的优化

在高性能应用中,合理使用缓存机制可以显著提高系统的响应速度和吞吐量。常见的缓存优化策略包括:

  • 使用内存缓存:如 Redis 或 Memcached,缓存频繁访问的数据,减少数据库查询次数。
  • 优化缓存策略:根据访问频率和数据更新频率,调整缓存失效时间和淘汰策略。
  • 分布式缓存:在大规模分布式系统中,使用分布式缓存技术(如 Cassandra 或 Consul)提高缓存的可扩展性和可用性。
8.3 实战案例:数据库性能调优策略

案例:高并发数据库系统的调优

在一个高并发数据库系统中,查询响应时间长,系统吞吐量受限。通过以下步骤进行调优:

  1. 优化 SQL 查询,减少不必要的复杂查询和联接操作,使用索引提高查询速度。
  2. 使用 Memcached 缓存热点数据,减少数据库查询次数,提高系统响应速度。
  3. 调整数据库连接池 参数,支持更多并发连接,减少连接创建的开销。
  4. 分区与分表,将大表按业务逻辑拆分成多个小表,减少单表数据量,提高查询效率。

通过调优,数据库系统的响应时间大幅减少,系统吞吐量显著提升。

相关文章:

Linux系统调优技巧

Linux系统调优技巧 Linux 性能调优技巧的深度分析及场景案例目录 1. Linux 性能调优的基础概念1.1 性能调优的目标1.2 常见的性能瓶颈 2. 系统监控与性能分析工具2.1 常用工具介绍2.2 实战案例:如何通过工具定位性能问题 3. CPU 性能调优3.1 CPU 负载分析3.2 CPU 调…...

计算机学习

不要只盯着计算机语言学习,你现在已经学习了C语言和Java,暑假又规划学习Python,最后你掌握的就是计算机语言包而已。 2. 建议你找一门想要深挖的语言,沿着这个方向继续往后学习知识就行。计算机语言是学不完的,而未来就…...

数字医学影像系统PACS源码,三甲以下医院都能满足,C#语言开发,C/S架构系统成熟稳定,支持二次开发项目使用。

数字医学影像系统(RIS/PACS)源码,三甲以下的医院都能满足。开发技术:C/S架构,C#开发语言,数据库服务器采用Oracle数据库。 PACS系统模块组成 : 工作站: 分诊工作站、超声工作站、放…...

C++语言基础|循环结构

C语言基础|循环结构 循环1. for语句2. while循环3. do…while语句 循环 在程序中,常常需要重复地执行某些操作。C提供了3种循环语句:for语句、while语句和do-while语句。在循环语句中,重复执行的操作叫做循环体。循环体可以是单条语句、块语…...

【学习笔记】解决在声音输出中找不到蓝牙耳机设备的问题

【学习笔记】在声音输出中找不到蓝牙耳机设备 在使用蓝牙耳机的时候,遇见一个问题,就是在电脑在连接蓝牙耳机之后,在声音输出中找不到蓝牙耳机设备,只能使用扬声器播放声音。电脑使用的是Windows 11系统。后来在网上寻找解决方案…...

PPPoE基础笔记

一、拨号原理 1.Discovery(发现阶段) PADI Client 发送广播的PADI报文,报文中包含Client想要的服务信息。 PADO Server收到PADI后,会向Client回复一个单播的PADO报文。 PADR Client 收到最先收到的PADO…...

开发组日志记录SPEC_v0.1.0

文章目录 开发组日志记录SPEC_v0.1.0目的设计逻辑1. User日志记录器1.1 记录器标签内容介绍1.2 程序打印User日志规则 2. Dev日志记录器2.1 记录器标签内容介绍2.2 程序打印Dev日志规则 3.代码说明3.1 代码详情3.2 使用说明 更新记录 时间版本内容修订者备注2024/08/150.1.0创…...

MySQL8 innoDB引擎的精髓

[client] port 3306 socket /var/lib/mysql/mysql.sock [mysql] #prompt"\umysqldb \R:\m:\s [\d]> " #关闭自动补全sql命令功能 no-auto-rehash ########################################################################### ##服务端参数配置 ######…...

【C语言实现花屏效果并打包程序为exe可执行文件】

说明&#xff1a;该程序为临摹改良(&#x1f600;)作品&#xff0c;源地址C/C屏幕恶搞程序 效果展示 上代码 #include <windows.h>#define NUM 11451LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int main() // Renamed WinMain to main {static int iKeep[NU…...

数据结构——排序(2):选择排序+交换排序

目录 一、选择排序 &#xff08;1&#xff09;直接选择排序 ①思路 ②过程图示 ③代码实现 ④代码解释 ⑤优化 1.代码实现 2.过程图示 3.代码解释 4.注意 ⑥直接选择排序的复杂度 &#xff08;2&#xff09;堆排序 ①注意 ②代码实现 二、交换排序 &#xff08…...

jenkins升级踩坑记录

1. 直接用java 1.8版本启动最新版jenkins.war&#xff0c;直接失败 2. 下载java 11启动&#xff0c;依然失败&#xff0c;换成java17版本可以启动&#xff0c;但会报错 解决报错1&#xff1a; java.io.IOException: Failed to load: Parameterized Remote Trigger Plugin (Pa…...

mysql笔记第二篇

平时业务开发&#xff0c;大部分业务逻辑是使用sql还是代码编写呢&#xff1f; 这个每个公司可能要求不同&#xff0c;其实是每个公司负责人根据公司业务制定的规定。或者根本没有规定&#xff0c;每个负责单个项目的人领到需求直接开整&#xff0c;sql一把梭导致后面其他人维护…...

Facebook的区块链技术:提升数据安全与隐私保护

去中心化的优势 随着数字化时代的快速发展&#xff0c;数据安全和隐私保护已成为全球范围内备受关注的话题。Facebook作为全球最大的社交平台之一&#xff0c;正在积极探索如何通过区块链技术来提升数据的安全性和用户的隐私保护。区块链技术以其去中心化、不可篡改和透明的特…...

⌈ 传知代码 ⌋ Visual SLAM函数

&#x1f49b;前情提要&#x1f49b; 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间&#xff0c;对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…...

Vue组件之间的通信

一、通信方式 Props 和 Events&#xff1a;通过父组件传递 props 给子组件&#xff0c;子组件使用 $emit 发送事件到父组件。Event Bus&#xff1a;使用一个中央事件总线来跨组件通信。Vuex&#xff1a;使用 Vuex 进行全局状态管理&#xff0c;以便在任何组件间共享状态。Prov…...

【AI 绘画】模型转换与快速生图(基于diffusers)

AI 绘画- 模型转换与快速生图&#xff08;基于diffusers&#xff09; 1. 本章介绍 本次主要展示一下不同框架内文生图模型转换&#xff0c;以及快速生成图片的方法。 SDXL文生图 2. sdxl_lightning基本原理 模型基本原理介绍如下 利用蒸馏方法获取小参数模型。首先&#x…...

甄选范文“论软件设计方法及其应”软考高级论文系统架构设计师论文

论文真题 软件设计(Software Design,SD)根据软件需求规格说明书设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及程序流程等,形成软件的具体设计方案。软件设计把许多事物和问题按不同的层次和角度进行抽象,将问题或事物进行模块化分解,以便更容易解决…...

leetcode线段树(2940. 找到 Alice 和 Bob 可以相遇的建筑)

前言 经过前期的基础训练以及部分实战练习&#xff0c;粗略掌握了各种题型的解题思路。现阶段开始专项练习。 描述 给你一个下标从 0 开始的正整数数组 heights &#xff0c;其中 heights[i] 表示第 i 栋建筑的高度。 如果一个人在建筑 i &#xff0c;且存在 i < j 的建筑…...

用于不平衡医疗数据分类的主动SMOTE

一、主动学习如何应用于不平衡数据的处理 首先&#xff0c;主动SMOTE不是像经典的SMOTE那样从训练集中随机选择一个样本作为生成合成样本的轴心点&#xff0c;而是通过不确定性和多样性采样来智能地进行样本选择&#xff0c;这是主动学习的两种技术。 在数据不平衡的情况下&…...

linux文件更新日期与系统日期比较

项目说明&#xff1a; 要获取linux系统中某目录下最新文件的修改时间并与当前系统时间进行比较&#xff0c;可以使用以下步骤&#xff1a; 使用 ls 命令获取最新文件的修改时间。 使用 date 命令获取当前时间。 计算时间差并打印结果。 实例脚本如下&#xff1a; #!/bin/…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...