这部分将简要介绍下NUMA架构的成因和具体原理,已经了解的读者可以直接跳到第二节。
最近在学习.NET的并行计算技术,学到一个服务器NUMA架构,NUMA架构在中大型系统上一直非常盛行,也是高性能的解决方案,在系统延迟方面表现都很优秀。Windows一向都没有在NUMA架构上有多少表现机会,AMD的多路系统大多也会用在UNIX/Linux上。Intel如期进入了NUMA架构的怀抱,英特尔最新的服务器处理器至强5500是一项重大的结构变革。与上一代至强处理器相比,至强5500采用了非一致性存储结构(NUMA),它在一块芯片上增加了向内存控制器的并行化访问路径增加非统一内存访问。可以看这篇文章
运维工程师(Operations)是负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI的专业人员。他们的基本职责是负责服务的稳定性,确保服务可以7*24H不间断地为用户提供服务。
云豆贴心提醒,本文阅读时间7分钟 现在MySQL运行的大部分环境都是在Linux上的,如何在Linux操作系统上根据MySQL进行优化,我们这里给出一些通用简单的策略。这些方法都有助于改进MySQL的性能。 闲话少说,进入正题。 一、CPU 首先从CPU说起。 你仔细检查的话,有些服务器上会有的一个有趣的现象: 你cat /proc/cpuinfo时,会发现CPU的频率竟然跟它标称的频率不一样: 这个是Intel E5-2620的CPU,他是2.00G * 24的CPU,但是,我们发现第5颗C
之前的文章介绍过 VMware 在 VMworld 上宣布的太平洋项目 (Project Pacific) ,这是 vSphere 向 Kubernetes 原生平台的演进。太平洋项目引入了 vSphere 主管集群( Supervisor Cluster )的概念,该集群能够在 ESXi 上原生地运行 Kubernetes Pod(称为 Native Pod )。
L1缓分成两种,一种是指令缓存,一种是数据缓存。L2缓存和L3缓存不分指令和数据。L1和L2缓存在第一个CPU核中,L3则是所有CPU核心共享的内存。L1、L2、L3的越离CPU近就越小,速度也越快,越离CPU远,速度也越慢。再往后面就是内存,内存的后面就是硬盘。我们来看一些他们的速度:
ZGC 启用Large Pages 是一种对应用高性能的折中(吞吐量、低延迟及启动时间),但是却不会带来明显的弊端。除了在应用启动上需要稍微复杂的配置,所需要的系统相关root权限需要手动进行配置。
概述:虚拟化是一个广义术语,通常是指计算元件在虚拟的基础上而不是真实的基础上运行,是一个为了简化管理,优化资源的解决方案.服务器虚拟化则是一项用以整合基于x86服务器,来提高资源利用效率和性能的技术.本文从企业业务系统和管理角度出发,着重分析研究了X86技术架构下,虚拟网卡与SR-IOV、NUMA、虚拟磁盘格式相应的特点,并探索了不同应用场景下的资源划分和性能优化方案,希望能够通过多应用系统下的实践和最优配置,来提高X86服务器的性能和资源利用效率.
AEP是Intel推出的一种新型的非易失Optane Memory设备,又被称作Apache Pass,所以一般习惯称作AEP。在这之前也有类似的设备称作NVDIMM或PMEM,目前Linux创建的AEP设备节点也是叫做pmem(如/dev/pmem0), 所以本文中NVDIMM或PMEM都指AEP。 但是本文不是为了科普AEP,如果想了解AEP的一些基本知识,可以参考以下几篇文章: NVDIMM Enabling in SUSE Linux Enterprise Part 1 NVDIMM Enabling in SUSE Linux Enterprise Part 2 Persistent Memory Wiki
本文基于 Joe Mario 的一篇博客 改编而成。 Joe Mario 是 Redhat 公司的 Senior Principal Software Engineer,在系统的性能优化领域颇有建树,他也是本文描述的 perf c2c 工具的贡献者之一。 这篇博客行文比较口语化,且假设读者对 CPU 多核架构,Cache Memory 层次结构,以及 Cache 的一致性协议有所了解。 故此,笔者决定放弃照翻原文,并且基于原博客文章做了一些扩展,增加了相关背景知识简介。 本文中若有任何疏漏错误,责任在于编译者。有任何建议和意见,请回复内核月谈微信公众号,或通过 oliver.yang at linux.alibaba.com 反馈。
今天看到一篇论文:Linux Block IO: Introducing Multi-queue SSD Access on Multi-core Systems 。 这篇论文发表于 2013 年,介绍 Linux 内核的 block layer 针对现代硬件——高速 SSD、多核 CPU(NUMA)的新设计。 总的来说,设计方案不难理解,并没有涉及什么牛逼或者新颖的内容。这里面提到的内容从 Linux 3.11 开始出现在内核,Linux 3.16 成为内核的一个完整特性[6]。Linux 5.0 开始成为 block layer 的默认选项[7]。
0、使用SSD。资金不足的话,使用RAID设备 【建议使用RAID10,因为RAID5的性能并不太高】
上回书讲完了部署,部署完成之后,就开始了无休止的调优,对于Ceph运维人员来说最头痛的莫过于两件事:一、Ceph调优;二、Ceph运维。调优是件非常头疼的事情,下面来看看运维小哥是如何调优的,运维小哥根据网上资料进行了一个调优方法论(调优总结)。
本篇文章为大家分享一下Linux系统中MySQL优化小技巧,本文实操记录绝无水文,如果错误或遗漏欢迎各位小伙伴指正。
本文来自 CSDN 重磅策划的《2022 年技术年度盘点》栏目。2022 年,智能技术变革留下了深刻的脚印,各行各业数字化升级催生了更多新需求。过去一年,亦是机遇与挑战并存的一年。 在本篇文章中,长期奋斗在一线的 Linux 内核开发者宋宝华老师为大家解剖 2022 年 Linux 内核开发的十大革新技术功能,纪念这平凡而又不凡的 Linux 内核之旅。 作者 | 宋宝华 责编 | 梦依丹 出品 | CSDN(ID:CSDNnews) 滚滚长江东逝水,浪花淘尽英雄。在浩瀚的宇宙星河中,波卷
决定一次负载均衡是否要发生有很多的规则,因此也就很难推断如果有工作可作时一个空闲核能够维持空闲多久,也很难推断在系统中有空闲核时,任务变为可运行状态前还要在运行队列里等待多久。因为之前极少数的开发者可以在第一次就写出完美的代码,这种复杂性又导致了bug的出现。弄明白这个bug是必要的,这样才能搞明白为什么他们避开了传统的测试和调试工具。因此,我们首先将描述这引起bug, 延后在展示我们所使用的工具。
现在多核 CPU 是主流。利用多核技术,可以有效发挥硬件的能力,提升吞吐量,对于 Java 程序,可以实现并发垃圾收集。但是 Java 利用多核技术也带来了一些问题,主要是多线程共享内存引起了。目前内存和 CPU 之间的带宽是一个主要瓶颈,每个核可以独享一部分高速缓存,可以提高性能。JVM 是利用操作系统的”轻量级进程”实现线程,所以线程每操作一次共享内存,都无法在高速缓存中命中,是一次开销较大的系统调用。所以区别于普通的优化,针对多核平台,需要进行一些特殊的优化。
SMP技术就是对称多处理结构,这种结构的最大特点就是CPU共享所有资源,比如总线,内存,IO系统等等
来自 openEuler 的消息,在 Linux Kernel 5.10 中,华为提交的补丁(变更集,changeset)数量为 1434 个,占比 8.9%,排名第一;排名第二的 Intel 提交了 1297 个补丁,占比 8%。
一个[合格的]Oracle DBA在安装数据库的时候,通常都会按要求关闭NUMA(MOS:Disable NUMA At OS Level (Doc ID 2193586.1)),因为启用NUMA会导致CPU彪高,性能很差(MOS:High CPU Usage when NUMA enabled (Doc ID 953733.1))。也许是这类问题太多,从Oracle 11gR2开始,默认就关闭了NUMA特性,因为NUMA的使用比较苛刻,要结合硬件、操作系统和Oracle版本(MOS:Oracle NUMA Usage Recommendation (Doc ID 759565.1))以及应用程序。稍有不对,努力白费,所以乖乖的关掉NUMA,是比较正确的事情。
以下案例基于 Ubuntu 16.04,同样适用于其他的 Linux 系统。我使用的案例环境如下所示:
MYSQL 8 已经上线一段时间了,每个数据库系统的内存方面都有自己的特点,MYSQL的内存的特点,下面总结了一些同学们经常会问的一些内存方面的问题.
除了在前面提到的,对于计数器等多个核可能并发访问的数据结构,为每个核分配一个,还需要引入新的机制——大页机制。
This question can be answered from a couple of perspectives: the hardware view and the Linux software view.
爱可生南区交付服务部团队 DBA,负责客户 MySQL 的故障处理以及公司数据库集群管理平台 DMP 的日常运维。
我是CPU一号车间的阿Q,前一阵子我们厂里发生了一件大喜事,老板拉到了一笔投资,准备扩大生产规模。
lscpu 从伪文件系统(sysfs)、/proc/cpuinfo 和任何可用的特定体系架构库(如 Powerpc 上的 librtas)收集 CPU 架构信息。命令输出可读,也可用于分析。输出内容包括:CPU、线程、内核的数量,以及非统一存储器存取(NUMA)节点。此外还包括关于 CPU 高速缓存和高速缓存共享的信息,家族、模型、bogoMIPS、字节顺序和步进(stepping)。
《Kubelet从入门到放弃系列》将对Kubelet组件由Linux基础知识到源码进行深入梳理。上一篇zouyee带各位看了Kubelet从入门到放弃:识透CPU管理,其中提及拓扑管理,本文将对此进行深入剖析,拓扑管理在Kubernetes 1.18时提升为Beta。TopologyManager功能可实现CPU、内存和外围设备(例如SR-IOV和GPU)的NUMA对齐,从而满足低延迟需求。
这是一篇介绍Linux调度问题的文章,源自这篇文章。文章中涉及到的一些问题可能已经得到解决,但可以学习一下本文所表达的思想和对CPU调度的理解。
对称多处理器结构 , 英文名称为 " Symmetrical Multi-Processing " , 简称 SMP ;
赖滨,腾讯云高级工程师,7+年专注于操作系统相关技术。目前负责腾讯云原生OS的研发,以及OS/虚拟化的性能优化工作。 导语 调度器(Scheduler)子系统是内核的核心子系统之一,负责系统内 CPU 资源的合理分配,需要能处理纷繁复杂的不同类型任务的调度需求,还需要能处理各种复杂的并发竞争环境,同时还需要兼顾整体吞吐性能和实时性要求(本身是一对矛盾体),其设计与实现都极具挑战。 为了能够理解 Linux 调度器的设计与实现,我们将以 Linux kernel 5.4 版本(TencentOS Serve
在前几期,我们提到了NUMA的概念。实际上,NUMA这个概念的内涵和外延,在不同的语境中会产生变化。
有些情况下需要关闭Linux 服务器的 透明大页和 NUMA,比如安装 Oracle 数据库!
上一篇博客 【Linux 内核 内存管理】分区伙伴分配器 ⑤ ( 区域水线 | 区域水线数据结构 zone_watermarks 枚举 | 内存区域 zone 中的区域水线 watermark 成员 ) 中讲解了 区域水线概念 , 本篇博客中开始分析 根据水线 进行 水位控制 的机制 ;
先从swap产生的原理来分析,由于linux内存管理比较复杂,下面以问答的方式列了一些重要的点,方便大家理解:
新发布的版本引入了异构内存管理(Heterogeneous Memory Management,HMM),实现了主机内存和加速器设备之间的数据无缝共享。
Linux 内核中 , 内存节点 ( Node ) 是 " 内存管理 " 的 最顶层的结构 , 下层分别是 区域 和 页 ;
原文:What every programmer should know about memory, Part 4: NUMA support
对于全栈而言,数据库技能不可或缺,关系型数据库或者nosql,内存型数据库或者偏磁盘存储的数据库,对象存储的数据库或者图数据库……林林总总,但是第一必备技能还应该是MySQL。从LAMP的兴起,到Mariadb的出现,甚至PG的到来,熟练的MySQL技能都是大有用武之地的。
Memory Manager(译为内存管理器)是 kubelet 内部的一个组件,旨在为 Guaranteed QoS 类型 pod 提供保证内存(和大页内存)分配功能,该特性提供了几种分配策略:
传统的多核运算是使用SMP(Symmetric Multi-Processor )模式:将多个处理器与一个集中的存储器和I/O总线相连。所有处理器只能访问同一个物理存储器,因此SMP系统有时也被称为一致存储器访问(UMA)结构体系,一致性意指无论在什么时候,处理器只能为内存的每个数据保持或共享唯一一个数值。
现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:
⑤ 堆内存 : 通过 malloc brk vmalloc 等函数 申请的 动态分配 的内存 ;
我们知道linux系统内核的主要工作之一是管理系统中安装的物理内存,系统中内存是以page页为单位进行分配,每个page页的大小是4K,如果我们需要申请使用内存则内核的分配流程是这样的,首先内核会为元数据分配内存存储空间,然后才分配实际的物理内存页,再分配对应的虚拟地址空间和更新页表。
设置ulimit -n和ulimit -u的值大于20000。如果ulimit的值设置过低的话,当MongoDB处于 频繁访问的状态下,将会产生错误,最终导致无法连接到MongoDB实例。
原文链接:https://rumenz.com/rumenbiji/linux-lscpu.html
内存问题,脑瓜疼脑瓜疼。脑瓜疼的意思,就是脑袋运算空间太小,撑的疼。本篇是《荒岛余生》系列第三篇,让人脑瓜疼的内存篇。其余参见:
现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道: 地址映射 内存管理的方式 缺页异常 先来看一些基本的知识,在进程看来,内
在近期线上故障排查过程中,我发现代码中仍在使用一些libc库函数,诸如malloc()内存分配、memset()内存清零及htonl()、ntohl()高低字节序转换等,这些函数在性能上存在优化空间。鉴于此,本文将借鉴DPDK《高效编码指南》中的相关内容,探讨VPP框架下更为高效的实现策略,以替换上述传统函数,提升系统性能。本节主要介绍在 DPDK&VPP 环境中开发应用程序时的一些关键内存注意事项。
领取专属 10元无门槛券
手把手带您无忧上云