Automatic NUMA balancing in RHEL7

SOLUTION 已验证 - 已更新 2019年五月14日20:53 -

English

环境

  • Red Hat Enterprise Linux 7

问题

  • In which version, the automatic NUMA balancing for processes/memory available?

决议

  • NUMA-Aware Scheduling and Memory Allocation is available in Red Hat Enterprise Linux 7.
  • The kernel automatically relocates processes and memory between NUMA nodes in the same system, in order to improve performance on systems with non-uniform memory access (NUMA).

  • Related sysctl parameters are in below

Raw

kernel.numa_balancing = 0
kernel.numa_balancing_scan_delay_ms = 1000
kernel.numa_balancing_scan_period_max_ms = 60000
kernel.numa_balancing_scan_period_min_ms = 1000
kernel.numa_balancing_scan_size_mb = 256
kernel.numa_balancing_settle_count = 4
  • Below are the explanation for each parameters from kernel documentation

Raw

Automatic NUMA balancing scans tasks address space and unmaps pages to
detect if pages are properly placed or if the data should be migrated to a
memory node local to where the task is running.  Every "scan delay" the task
scans the next "scan size" number of pages in its address space. When the
end of the address space is reached the scanner restarts from the beginning.In combination, the "scan delay" and "scan size" determine the scan rate.
When "scan delay" decreases, the scan rate increases.  The scan delay and
hence the scan rate of every task is adaptive and depends on historical
behaviour. If pages are properly placed then the scan delay increases,
otherwise the scan delay decreases.  The "scan size" is not adaptive but
the higher the "scan size", the higher the scan rate.Higher scan rates incur higher system overhead as page faults must be
trapped and potentially data must be migrated. However, the higher the scan
rate, the more quickly a tasks memory is migrated to a local node if the
workload pattern changes and minimises performance impact due to remote
memory accesses. These sysctls control the thresholds for scan delays and
the number of pages scanned.
  • kernel.numa_balancing enables/disables automatic page fault based NUMA memory balancing. Memory is moved automatically to nodes that access it often. Enables/disables automatic NUMA memory balancing. On NUMA machines, there is a performance penalty if remote memory is accessed by a CPU. When this feature is enabled the kernel samples what task thread is accessing memory by periodically unmapping pages and later trapping a page fault. At the time of the page fault, it is determined if the data being accessed should be migrated to a local memory node. The unmapping of pages and trapping faults incur additional overhead that ideally is offset by improved memory locality but there is no universal guarantee. If the target workload is already bound to NUMA nodes then this feature should be disabled. Otherwise, if the system overhead from the feature is too high then the rate the kernel samples for NUMA hinting faults may be controlled by the numa_balancing_scan_period_min_ms, numa_balancing_scan_delay_ms, numa_balancing_scan_period_max_ms, numa_balancing_scan_size_mb, and numa_balancing_settle_count sysctls.

  • numa_balancing_scan_period_min_ms is the minimum time in milliseconds to scan a tasks virtual memory. It effectively controls the maximum scanning rate for each task.

  • numa_balancing_scan_delay_ms is the starting "scan delay" used for a task when it initially forks.

  • numa_balancing_scan_period_max_ms is the maximum time in milliseconds to scan a tasks virtual memory. It effectively controls the minimum scanning rate for each task.

  • numa_balancing_scan_size_mb is how many megabytes worth of pages are scanned for a given scan.

  • numa_balancing_settle_count is how many scan periods must complete before the schedule balancer stops pushing the task towards a preferred node. This gives the scheduler a chance to place the task on an alternative node if the preferred node is overloaded.

Automatic NUMA balancing in RHEL7相关推荐

  1. NUMA为何成为云计算的关键技术

    作者简介: 鲁班,EasyStack系统工程和产品研发工程师,作为一名OpenStack兼内核开发者,他早在OpenStack Grizzly即加入小区开发,并为OpenStack贡献了可观的代码量. ...

  2. KVM虚拟化技术的-NUMA技术和应用

    KVM虚拟化技术的-NUMA技术和应用 NUMA技术是解决多CPU共同工作的技术方案,多CPU共同工作主要有3中架构:SMP:Symmetric Multi-Processor),非统一存储访问结构( ...

  3. linux NUMA技术

    1. 概述 NUMA(Non-Uniform Memory Access Architecture)即非一致性内存访问技术. NUMA系统有多个Node通过高速互连的网络联系起来的系统.而Node则是 ...

  4. 网络基础服务器 与SMP、NUMA、MPP 三大体系结构科普

    OSI和TCP/IP是很基础但又非常重要的知识,很多知识点都是以它们为基础去串联的,作为底层,掌握得越透彻,理解上层时会越顺畅.今天这篇网络基础科普,就是根据OSI层级去逐一展开的. 01 计算机网络 ...

  5. 【银河麒麟V10】【服务器】numa技术

    目录 1.numa介绍 2.numa工具安装 3.numa查看 4.numa测试 5.numa打开与关闭 6.补充:服务器SMP.NUMA.MPP三大体系结构介绍 (1). SMP(Symmetric ...

  6. 深入理解服务器CPU三大体系结构--SMP、NUMA、MPP

    从系统架构来看,目前的商用服务器大体可以分为三类,即对称多处理器结构 (SMP :Symmetric Multi-Processor) ,非一致存储访问结构 (NUMA :Non-Uniform Me ...

  7. 五分钟理解服务器 SMP、NUMA、MPP 三大体系结构

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 从系统架构来看,目前的商用服务器大体可以分为三类,即对称多处理器结构 (SMP :Symmetric Multi- ...

  8. 深度| NUMA为何成为云计算的关键技术

    转载自:https://www.sohu.com/a/129374635_609513 进入21世纪后,计算机的体系结构并没有停止前进的步伐,尤其是在处理器领域所取得的技术突破奠定了包括云计算.大数据 ...

  9. numa balance实现浅析

    NUMA balance的背景 在NUMA(None Uniform Memory Access)之前是UMA(Uniform Memory Access), UMA 架构下,CPU 和内存之间的通信 ...

最新文章

  1. 20 位百万富翁希望自己 20 岁就明白的事
  2. 大型云原生项目在数字化企业落地过程解密
  3. sqlserver查询当月的每一天_SQLServer 查询最近一天,三天,一周,一月,一季度数据的方法...
  4. iOS MVC 介绍
  5. 一场开发与视觉的对话引发的思考
  6. scala reduceLeft和reduceRight执行分析
  7. 感想篇:4)越来越精简的机械设计
  8. python简单网络爬虫_【Python】 简单网络爬虫实现
  9. 使用指针时的“陷阱”
  10. 归并排序的java代码_归并排序的原理及java代码实现
  11. PHP Xdebug调试专题
  12. VB.NET自动操作其他程序(4)--读取、设置其他软件listview控件的内容
  13. 19-基础教育知识图谱赋能智慧教育
  14. 清华姚班和100个“张小龙” | 中国AI天才养成计划
  15. BitTorrent协议规范(BitTorrent Protocol Specification)之Peer Wire协议(Peer Wire Protocol)-第四部分
  16. 全站仪数据导入电脑_南方全站仪怎么连接电脑传输数据
  17. cocoa 键值观察依赖键(KVO)--笔录
  18. 第3章 远程连接管理Linux实践
  19. 解读周源站内信,双重上市后知乎怎么走?
  20. 阿里巴巴Android开发手册

热门文章

  1. 杰理之对耳离仓蓝牙断开使能【篇】
  2. Android 带checkbox的listView 实现多选,全选,反选
  3. 视频制作——由图片到视频
  4. 你们天天都在说的“祖传引擎”,到底能干吗?
  5. 那位退回了小黄车押金的大哥,已经花了两千块钱了
  6. 一看就懂的CE-NET详解
  7. 用Android手机的男生,女生偏爱iphone、男生多用安卓机,原因在这三点
  8. UVA674 Coin Change 简单的DP
  9. 【武器系统】【2005.09】寻的导弹动力学建模、制导与控制
  10. linux添加ipv6静态路由命令,Debian下配置IPV6和静态路由