# kernel-performance-features **Repository Path**: yinbin8/kernel-performance-features ## Basic Information - **Project Name**: kernel-performance-features - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-06-17 - **Last Updated**: 2025-06-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # kernel-performance-features #### 介绍 Linux 内核承担着资源管理、进程调度、内存分配、网络协议栈处理、I/O 调度等多项关键任务。随着应用场景的复杂化(如云计算、AI 训练、高性能计算、边缘计算等),对系统性能的要求也日益提高。为了满足这些高负载、低延迟、高吞吐量的需求,仅依靠默认的内核配置往往难以充分发挥硬件潜力 。因此,我们有必要通过启用或优化特定内核特性 ,来针对性地提升系统的整体性能表现。这里提供了一下2个特性:
1. bypass nf_conntrack。内核nf_conntrack模块会记录每个连接的五元组信息(源 IP、目的 IP、源端口、目的端口、协议),并根据连接状态(NEW、ESTABLISHED、RELATED)来决定是否允许数据包通过。 在某些场景下,它可能会带来问题或性能瓶颈。1.在高性能场景中,会为每个连接维护状态表项,占用内存和 CPU 资源。在高并发、大规模流量的服务器上,可能导致性能下降甚至耗尽连接跟踪表项。 通过bypass nf_conntrack,可以释放这部分资源,有效提升性能。
* 使能方法: ```sh sysctl -w kernel.nf_contract_ctrl=0 ``` * 取消使能方法: ```sh sysctl -w kernel.nf_contract_ctrl=1 ```
2. 启用sched_cluster。arm64架构的机器,在硬件拓扑上存在一种特性:通常有4个cpu核心共享L3 tags或L2 cache,即一个cluster。将任务部署到同一个cluster,可以利用单个cluster内缓存一致性,带来较低延迟。引入SCHED_CLUSTER机制,使得任务可以在cluster之间进行负载均衡,从而提高工作负载性能。
- 使能方法: ```sh sysctl -w kernel.sched_cluster=1 ``` - 取消使能方法: ```sh sysctl -w kernel.sched_cluster=0 ```
通过合入本仓库内的20个补丁,来使内核支持这两个特性。
目标仓库:kernel仓库的openEuler-20.03-LTS-SP4分支:
https://gitee.com/src-openeuler/kernel/tree/openEuler-20.03-LTS-SP4/
目标commit:
57248c257844e4db7ab0b8d1e35dbe0d7aaff073 (release 4.19.90-2506.2.0)
构建内核时,请checkout到上述commit点所对应的代码,追加本仓库内的patch。