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

针对ARM64嵌入式系统的Linux内核参数优化

文章目录

      • 0. 概要
      • 1. 网络性能优化
        • 开启TCP连接重用
        • 减少TCP连接超时时间
      • 2. 文件系统和I/O优化
        • 提高文件描述符限制
      • 3. 内存管理优化
        • 提高内存可用性
      • 4. 内核调度优化
        • 调整CFS调度器的调度周期
      • 5. 完整配置文件

0. 概要

在ARM64架构的嵌入式系统中,系统性能和资源优化至关重要。这类系统通常在资源受限的环境下运行,如物联网设备、移动设备等。合理配置Linux内核参数可以显著提升系统响应速度和运行效率。本文探讨如何通过调整 /etc/sysctl.conf 文件中的参数,优化ARM64嵌入式系统的性能。

1. 网络性能优化

在网络通信频繁的嵌入式系统中,优化网络参数可以提升数据处理能力并减少延迟。

开启TCP连接重用
  • 参数net.ipv4.tcp_tw_reuse
  • 设置1
  • 效果:允许将处于TIME-WAIT状态的sockets重新用于新的TCP连接,减少TIME-WAIT状态的连接数量,适合高并发短连接应用。
减少TCP连接超时时间
  • 参数net.ipv4.tcp_fin_timeout
  • 设置30
  • 效果:加快TCP连接在FIN-WAIT状态的超时处理,快速回收和重新利用资源。

2. 文件系统和I/O优化

对于涉及大量文件操作的嵌入式系统,如数据记录设备或多媒体设备,优化文件系统和I/O参数可以提高性能。

提高文件描述符限制
  • 参数fs.file-max
  • 设置65536
  • 效果:增加系统可以同时打开的文件描述符最大值,支持更多并发文件操作,特别是在文件访问请求高的场合。

3. 内存管理优化

在内存资源有限的嵌入式系统中,高效的内存管理至关重要。

提高内存可用性
  • 参数vm.swappiness
  • 设置10
  • 效果:降低系统对交换空间的依赖,优先使用物理内存,提高系统的响应速度和运行效率。

4. 内核调度优化

对于需要高度实时性的嵌入式应用,如实时数据处理或机器人控制,内核调度优化是关键。

调整CFS调度器的调度周期
  • 参数kernel.sched_latency_ns
  • 设置10000000
  • 效果:增加调度延迟,减少调度频率,从而降低调度开销,提升实时性能。

5. 完整配置文件

# /etc/sysctl.conf# Enable TCP connection reuse
net.ipv4.tcp_tw_reuse = 1
# Allows reusing sockets in TIME-WAIT state for new connections, reducing TIME-WAIT connections, suitable for high-concurrency short connections.# Reduce TCP connection timeout
net.ipv4.tcp_fin_timeout = 30
# Accelerates the timeout handling of TCP connections in FIN-WAIT state, enabling faster resource recovery and reuse.# Increase file descriptor limit
fs.file-max = 65536
# Increases the maximum number of file descriptors that can be opened simultaneously, supporting more concurrent file operations, especially in high file access scenarios.# Decrease swappiness
vm.swappiness = 10
# Reduces the system's dependence on swap space, prioritizing the use of physical memory, thus improving system response speed and operational efficiency.# Adjust CFS scheduler latency
kernel.sched_latency_ns = 10000000
# Increases scheduling latency to reduce scheduling frequency, lowering scheduling overhead, and improving real-time performance.# Apply changes
# After modifying the /etc/sysctl.conf file, apply the changes with:
# sysctl -p
# This command makes the changes take effect immediately and permanently.

完成参数配置后,通过执行 sysctl -p 命令激活上述设置,使其永久生效。

相关文章:

  • vlan三层交换技术--交换机--(自作)
  • 测试测量-DMM直流精度
  • 我的常见问题记录
  • 学习C++第二天
  • Springboot微服务整合缓存的时候报循环依赖的错误 两种解决方案
  • 深入理解go语言反射机制
  • 电压互感器在线监测的原理
  • AI 大模型企业应用实战(10)-LLMs和Chat Models
  • AI大模型企业应用实战(14)-langchain的Embedding
  • Qt异常处理
  • 软件测试过程中用接口怎么将web系统的多页数据展示在1页
  • 罗盘时钟lua迷你世界
  • Parallels Desktop 19 for mac破解版安装激活使用指南
  • ArcgisEngine 释放内存案例
  • React 中的 ErrorBoundary
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • Android优雅地处理按钮重复点击
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • JavaScript对象详解
  • JSONP原理
  • js数组之filter
  • Mysql5.6主从复制
  • Rancher如何对接Ceph-RBD块存储
  • vue-loader 源码解析系列之 selector
  • 分类模型——Logistics Regression
  • 将回调地狱按在地上摩擦的Promise
  • 开源SQL-on-Hadoop系统一览
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 七牛云假注销小指南
  • -- 数据结构 顺序表 --Java
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • FaaS 的简单实践
  • # C++之functional库用法整理
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #pragam once 和 #ifndef 预编译头
  • #QT 笔记一
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #考研#计算机文化知识1(局域网及网络互联)
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • $refs 、$nextTic、动态组件、name的使用
  • (java)关于Thread的挂起和恢复
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (笔试题)合法字符串
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (十二)Flink Table API
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)linux 命令大全
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)我也是一只IT小小鸟
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .net 托管代码与非托管代码