首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入理解JVM(③)ZGC收集器

前言 ZGC是一款在JDK11中新加入的具有实验性质的低延迟垃圾收集器,目前仅支持Linux/x86-64。...内存多重映射 Linux/x86-64平台ZGC使用了多重映射(Multi-Mapping)将多个不同的虚拟内存地址映射到同一物理内存地址,这是一种多对一映射,意味着ZGC在虚拟内存中看到的地址空寂要比实际的堆内存容量来的更大...ZGC是支持“NUMA-Aware”的内存分配。MUMA(Non-Uniform Memory Access,非统一内存访问架构)是一种多处理器或多核处理器计算机所设计的内存架构。...现在多CPU插槽的服务器都是Numa架构,比如两颗CPU插槽(24核),64G内存的服务器,那其中一颗CPU的12个核,访问从属于的32G本地内存,要比访问另外32G远端内存要快得多。...ZGC默认支持NUMA架构,在创建对象时,根据当前线程在哪个CPU执行,优先在靠近这个CPU的内存进行分配,这样可以显著的提高性能,在SPEC JBB 2005 基准测试里获得40%的提升。

93310

NUMA架构

最近在学习.NET的并行计算技术,学到一个服务器NUMA架构NUMA架构在中大型系统一直非常盛行,也是高性能的解决方案,在系统延迟方面表现都很优秀。...Windows一向都没有在NUMA架构上有多少表现机会,AMD的多路系统大多也会用在UNIX/Linux。...NUMA 系统通常是多处理器系统,其中的内存延迟随访问的处理器不同而有所不同。内存被分成多个节点,CPU 和节点之间的延迟可能各不相同,并且每个 CPU 都被视为它可最快访问的那个节点的一部分。...为能在 NUMA 系统中有效扩展,操作系统或应用程序必须了解节点拓扑结构,以便使计算能够在包含计算数据和代码的内存附近执行。...参考资料: LinuxNUMA 技术 It's NUMA

2K90
您找到你想要的搜索结果了吗?
是的
没有找到

cpu(了解了以下8条,没人敢和你忽悠CPU)

RISC指令系统更加适合高档服务器的操作系统 UNIX,现在Linux也属于类似UNIX的操作系统。RISC型CPU与Intel和AMD的CPU在软件和硬件都不兼容。...这也成为X86-64产生的根本原因。 (4)X86-64 (AMD64 / EM64T) AMD公司设计,可以在同一时间内处理64位的整数运算,并兼容于X86-32架构。...在技术 AMD在x86-64架构中为了进行64位运算,AMD为其引入了新增了R8-R15通用寄存器作为原有X86处理器寄存器的扩充,但在而在32位环境下并不完全使用到这些寄存器。...流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产的装配流水线。...显然,这是在SMP的基础,再用NUMA的技术加以扩展,是这两种技术的结合。

1.3K40

NUMA架构的CPU -- 你真的用好了么?

所以NUMA(Non-Uniform Memory Access)就此得名。 我们需要为NUMA做什么 假设你是Linux教父Linus,对于NUMA架构你会做哪些优化?...下面这点是显而易见的: 既然CPU只有在Local-Access时响应时间才能有保障,那么我们就尽量把该CPU所要的数据集中在他local的内存中就OK啦~ 没错,事实Linux识别到NUMA架构后,...那是不是简简单单的配置个Interleave就已经把NUMA的特性和性能发挥到了极致呢? 答案是否定的,目前Linux的内存分配机制在NUMA架构的CPU还有一定的改进空间。...那是否能在Interleave模式下,把那些明显应该聚集在一个CPU的内存集中在一起呢? 很可惜,Dynamic Memory Relocation这种技术目前只停留在理论和实验阶段。...如果NUMA在硬件级别可以提供更多低成本的profile接口;如果Linux Kernel可以使用更科学的动态调整策略;如果程序开发人员更懂NUMA,那么我们完全可以更好的发挥NUMA的性能,使得无限横向扩展

2.7K40

64位Java开发平台的选择,如何区分JDK,Tomcat,eclipse的32位与64版本

当你看到这些内容:x86、x64、x86-32、x86-64、ia64、i80386、i80486、i80586、i80686,知道是干什么的?...(我们经常使用的CPU) IA-64架构下有Intel64的位CPU (只有服务器使用的CPU) IA-32架构: 本架构的CPU都采用X86指令 Intel、AMD、Cyrix等厂家都生产使用...IA-64架构: IA-64架构是英特尔为了全面提高以前IA-32位处理器的运算性能,是Intel和Hp共同开发了6年的64位CPU架构,是专为服务器市场开发的一种全新的处理器架构放弃了以前的IA-...32架构(x86系统CPU采用的架构),认为严重阻碍了处理器的性能提高。...的最初应用是英特尔的Itanium(安腾)系列服务器处理器,现在最新的Itanium 2系列处理器也是采用这一架构的。

1.1K20

极致性能(1):以NUMA为起点

看到右侧4个黄色标签的东东了么,这就是一个socket了,离它最近的那4根内存条就是的了。通常我们一般就还有一个socket,带4根内存条,那就是传统的SMP架构。...分别是2-way 8cores CPU的NUMA架构和4-way 24cores 的NUMA架构。...例如,通过连接到同一个socket的CPU访问内存将比访问其他远程socket的内存更快,带宽更高。 NUMA硬件提供商并不构建NUMA系统。这种架构是一种提供可伸缩内存带宽的方法。...因此,Linux系统将NUMA的硬件资源划分为多个称为node的软件抽象。Linux将node映射到硬件平台的物理socket,为这个体系架构抽象出一些细节。...还可以使用Linux NUMA内存策略修改内核的默认本地分配行为。 系统管理员可以使用控制组和CPUset 限制非特权用户在调度函数时使用指定的CPU和node内存。 ?

3.7K20

使用 Kibana 和 Rsyslog 监控 Linux 日志

有管理员权限或者是有足够的权限在你的 Linux 系统安装新的安装包。 没有其他可以说明的了,让我们开搞!...3-日志监控系统架构是啥样 // a-Linux 日志的关键概念 // 在描述我们的日志监控系统架构的样貌细节之前,让我们再稍微回顾一下。 回溯历史,Linux 日志始于 syslog。...// b-构建一个日志监控架构 // 我们这篇文章最终使用架构如下: rsyslog: 作为高级的 syslog 服务器,rsyslog 将日志使用我们先前提到的 RFC 5424 的格式转发到...同样提供了一个简单的方法能让你看到一段时间内日志严重程度的概要,例如你想看看夜间或者特定日期记录的严重等级。 同样你可能在等这个,这是这个面板的配置过程清单!...重要的一点是使用例如 Grafana 这样的工具监控 ElasticSearch 日志也是很容易的。 通过这篇文章,你会着手使用这个架构应用到你的基础设施中

1.7K20

LINUXMYSQL优化三板斧

云豆贴心提醒,本文阅读时间7分钟 现在MySQL运行的大部分环境都是在Linux的,如何在Linux操作系统根据MySQL进行优化,我们这里给出一些通用简单的策略。...但是我们可以直观的看到:SMP访问内存的都是代价都是一样的;但是在NUMA架构下,本地内存的访问和非 本地内存的访问代价是不一样的。 对应的根据这个特性,操作系统,我们可以设置进程的内存分配方式。...除非是设置为--interleave=nodes轮询分配方式,即内存可以在任意NUMA节点分配这种方式以外,其他的方式就算其他NUMA节点还有内存剩余,Linux也不会把剩余的内存分配给这个进程,而是采用...所以,我们在MySQL的服务器最好设置vm.swappiness=0。 我们可以通过在sysctl.conf中添加一行: 并使用sysctl -p来使得该参数生效。...在 Flash技术之前,我们都是使用机械磁盘存储数据的,机械磁盘的寻道时间是影响速度的最重要因素,直接导致的每秒可做的IO(IOPS)非常有限, 为了尽量排序和合并多个请求,以达到一次寻道能够满足多次

1K70

系统性能调优之绑定cpu

支持超线程的numa架构 物理硬件视角, 将多个CPU封装在一起,这个封装被称为插槽Socket; Core是socket独立的硬件单元; 通过intel的超线程HT技术进一步提升CPU的处理能力,OS...常用性能监测工具 Linux系统下,CPU与内存子系统性能调优的常用性能监测工具有top、perf、numactl这3个工具。1) top工具 top工具是最常用的Linux性能监测工具之一。.../mongod,mongo就只能在CPU core 0到core7运行(-C控制)。 numactl -C 0-7 ..../mongod (3)可以使用 taskset 命令把一个程序绑定在一个核运行。 taskset -c 0 ....注意的是在多个进程要进行亲和性绑核的,你一定要注意 NUMA 架构下 CPU 核的编号方法,这样才不会绑错核。 预告 下一节,我们将聊聊如何通过提L1与L2缓存命中率来提高应用程序性能。

1.2K30

CPU Cache Line伪共享问题的总结和分析

因此,对以上 NUMA 系统,一个 NUMA 节点通常可以被认为是一个物理 CPU 加上本地的 DRAM 和 Device 组成。那么,四路服务器就拥有四个 NUMA 节点。...在 Linux ,numactl --hardware 可以返回当前系统的 NUMA 节点信息,特别是 CPU 和 NUMA 节点的对应信息。...Cache Line 的大小和处理器硬件架构有关。在 Linux ,通过 getconf 就可以拿到 CPU 的 Cache Line 的大小, ?...有的时候,一段代码,它不在某一行 Cache Line 竞争严重,但是却在很多 Cache Line 竞争,这样的代码段也是很值得优化的。同理还有多进程程序访问共享内存时的情况。...Linux perf c2c 功能在上游的 4.2 内核已经可用了, 这是集体努力的结果。

2.1K30

内存疯狂换页!CPU怒批OS

NUMA架构 老板把这一切都看在眼里,私下里找了我、二号车间的虎子还有总线主任开了个小会。 ? “你们几个都是厂里的核心员工,对厂里目前的问题你们怎么看?”,老板问我们几个。...领导正低头思索,我倒是想到了一个问题:“主任,要是我们一号核执行的线程要访问的内存页面不在我们厂管理的内存,在他们分厂怎么办呢?”...小李满脸无辜的说到:“不瞒你们各位,前几天有人来我们Linux帝国开设了一家新公司,叫MySQL,这家伙是个吃内存大户啊,一上来就要吃掉几十G,你们厂管辖的内存大半都被给吃掉了” ?...虎子问到:“这跟我们有什么关系,你别推卸责任啊” “上次我来开会,你们不是搞了个什么NUMA架构,访问本地连接的内存要比访问远程内存快一些嘛,所以我们制定了内存亲和性策略嘛,线程在哪个NUMA节点执行...NUMA虽好,可要是用得不好,只会徒增烦恼啊~ 彩蛋 Linux帝国最近又来了一家公司,发布了一项工程招标。

60620

Kali Linux使用小技巧

在我们使用kali渗透和工作中,有很多的小技巧,你知道?本文将给你展示这些技巧,以便你更改的完成所需工作。当然这些技巧适用于其他debian系列的发行版。...如果您的系统已连接到 Internet,那么您很可能在系统使用了至少两个 IP 地址。一个 IP 地址是系统的本地地址, 另一个IP 地址是 Internet 的设备可以看到您连接的地址。...--config java sudo update-alternatives --config javac 安装 Nvidia GPU 驱动程序 首先保证kali是最新系统 确定您安装的显卡,并验证使用的是...image.png 如上,我的kali为2021.4 hostnamectl命令向我们展示了内核版本和 CPU 架构 Static hostname: kali Icon name: computer-vm...Rolling Kernel: Linux 5.15.0-kali2-amd64 Architecture: x86-64 Hardware Vendor

2K10

2022 Linux 内核十大技术革新功能 | 年终盘点

窃以为,Linux 内核,将以顽强的生命力,活过使用 Linux 的很多码农,直到下一个革命性操作系统的出现。...的 page 仅仅可能在访问次数频繁的情况下,升一代而已。...比如 CPU A 上面的支付宝睡眠了,我们从 CPU B 某任务唤醒: 理论,支付宝继续在 A 上面跑会比较好,因为睡眠之前的 cache 之类可能还在。...不同于在一个现有的体系架构下增加一个新的 SoC 支持,在 Linux 内核增加一个全新体系架构支持的工作要艰巨很多,至少包含但不限于如下工作: 1.开机初始化和启动 2.进程上下文保存恢复 3.exception...未来 BPF 技术在 Linux 中的应用场景会越来越多,越来越重要。希望本书能在大家学习 BPF 技术并关注的发展时提供帮助。 (京东满100减50,快快扫码抢购吧!)

1.5K40

多多益善|基于Artifactory和Buildx构建多架构Docker镜像

操作系统和应用程序仍然需要编译才能在特定的架构类型执行。例如,为AMD64处理器编译的软件不能在基于ARM的机器运行,为 Linux构建的软件也不能在Windows运行。...二、构建多架构镜像 多架构镜像 在本文的例子中,我们需要创建一个应用程序,必须能够在Linux 操作系统下如下的两种处理器架构运行: x86-64环境,例如 Linux 桌面; AWS EC2基于...如果您使用的是Mac或Windows的Docker Desktop,那么Buildx已经随着装好了。如果您使用的是Linux,则可以从GitHub安装Buildx。...► 架构镜像 每个被支持架构的镜像都有自己的标签,可以通过来寻址,这个标签是Artifactory通过组合发布标签和架构名称来创建的。...由于我们的示例使用发布标签“tag”,因此架构镜像的标签是tag-linux-amd64和tag-linux-arm64。 每个镜像也有自己的清单,用于标识组成的层。

74920

X86服务器虚拟化的资源划分和性能优化

CPU、内存资源都可提供给虚拟机使用.现在的高性能X86服务器一般都是多CPU多核系统,NUMA 架构会越来越受欢迎,因为这个架构可解决多处理器多核和非统一内存架构之间的交互带来的新的CPU、内存资源分配方法的挑战...,改变了内存对CPU的呈现方式,这是通过对服务器每个CPU的内存进行分区来实现的.每个分区(或内存块)称为NUMA节点,而和该分区相关的处理器可以更快地访问NUMA内存,而且不需要和其它的NUMA节点争用服务器的资源...从内存看,对于postfix而言,的每一个进程不会消耗太多的内存,我们期望的是大量的内存被自动使用到磁盘缓存中来提高磁盘I/O速率,当然这个我们不需要操作,linux帮我们完成了!...Linux虚拟内存管理默认将所有空闲内存空间都作为硬盘缓存.因此在拥有数GB内存的生产性Linux系统中,经常可以看到可用的内存只有20MB.从处理器看邮件系统,不管是smtp、imap对CPU的占用都不是很大...对于数据库服务器,由于对CPU和内存资源要求较高,不适合多机共享资源使用,所以尽可能使用配置较好的物理机,而对于VDI桌面、文件服务器则更适合NUMA架构下固定CPU和内存单元的分配,邮件系统则需要根据具体情况做

2.3K10

kubelet 架构设计解析之 Memory Manager

从技术讲,单 NUMA 策略是多 NUMA 策略的一种特殊情况,因此 kubernetes 开发团队没有为它们开发单独的实现。 1.1 什么是NUMA?...为了消除 UMA 架构的瓶颈,NUMA(Non-Uniform Memory Access, 非一致性内存访问)架构诞生了: NUMA CPU 厂商把内存控制器集成到 CPU 内部,一般一个 CPU socket...和 UMA 架构不同,在 NUMA 架构下,内存的访问出现了本地和远程的区别:访问远程内存的延时会明显高于访问本地内存。 1.2 什么是大页内存?...大页内存在数据库服务器这样的系统特别有用。像 MySQL 和 PostgreSQL 这样的进程可以使用大页内存,以减少对 RAM 缓存的压力。 1.3 什么是Guaranteed QoS pod?...Node Map 是一个对象,负责跟踪 Guaranteed QoS 类 Pod 中所有容器的内存(和大页内存)的使用情况。

8910

Logback+ELK+SpringMVC搭建日志收集服务器

Elasticsearch是一个分布式搜索分析引擎,稳定、可水平扩展、易于管理是的主要设计初衷 Logstash是一个灵活的数据收集、加工和传输的管道软件 Kibana是一个数据可视化平台,可以通过将数据转化为酷炫而强大的图像而实现与数据的交互将三者的收集加工...环境配置 4.1 基础环境 jdk 1.8 Centos 7.0 X86-64 注意:ELK服务不能在root用户开启。需要重新创建用户。...wget https://artifacts.elastic.co/downloads/kibana/kibana-5.2.2-linux-x86_64.tar.gz 我这里是以5.2.2为例来实现。...--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <!...基本就这些步骤,希望看完之后,动手实践一下,谢谢阅读。

2K70
领券