服务器之 ECC 内存的工作原理
大家好,我是飞哥!在开始今天的分
日常Bug排查-连接突然全部关闭
日常Bug排查系列都是一些简单Bug的排查。笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材。
这样才能玩转Linux内核之CPU篇
哈喽,我是子牙,一个很卷的硬核男人深入研究计算机底层、Windows内核、Linux内核、Hotspot源码……聚焦做那些大家想学没地方学的课程。为了保证课程质量及教学效果,一年磨一剑,三年先后做了三个课程:手写JVM、手写OS及带你用纯汇编写OS、手写64位多核OS及
Linux内核这样学才能学会(内存篇)
哈喽,我是子牙,一个很卷的硬核男人深入研究计算机底层、Windows内核、Linux内核、Hotspot源码……聚焦做那些大家想学没地方学的课程。为了保证课程质量及教学效果,一年磨一剑,三年先后做了三个课程:手写JVM、手写OS及带你用纯汇编写OS、手写64位多核OS及
聊聊 Linux 中断机制
中断的历史原因在聊中断机制之前,我想先和大家聊一聊中断机制出现的前因后果。最一开始计算机操作系统的设计是能够一次性的执行所有的计算任务的,这被称为顺序执行,也是批处理操作系统(Batch system)。顺序执行的意思是一个任务接着一个任务的依次执行,就像我们编写代码的时候,我们肯定是写完一行代
【全网首发】一步一图带你构建 Linux 页表体系—详解虚拟内存如何与物理内存进行映射
笔者这次想让虚拟内存和物理内存两者一起动态联动起来,在这个联动的过程中将之前的这些静态知识点统统串联起来,形成一条内存管理的主线
Linux上文件监控的踩坑分享
在高磁盘IO的主机上、不同版本的内核上以及海量监控目标中,将会面临哪些问题呢?业务性能与安全性如何做更好地取舍均衡?
【全网首发】为什么新版内核将进程pid管理从bitmap替换成了radix-tree?
今天我来给大家聊聊为什么 Linux 内核要将 bitmap 替换成基数树,最后也看看这次替换的性能效果。
操作系统
处理机调度
在多道程序环境下,内存中存在着多个进程,进程的数目往往多于处理机的数目。这就要求系统能按某种算法,动态地将处理机分配给一个处于就绪状态的进程,使之执行。分配处理机的任务是由处理机调度程序完成的。 对于大型系统运行时的性能,如系统吞吐量、资源利用率、作业周转时间或响应的及时性等,在很大程度上都取决于
如果让你来设计中断机制
哈喽,我是子牙,一个很卷的硬核男人从这篇文章开始,准备系统性给大家讲讲中断这个玩意。对于中断,很多小伙伴为什么学不明白呢?因为中断很底层,底层到CPU层面,有些中断更是由CPU+操作系统配合实现的。作为一个写过操作系统的男人,我就以我独特的手法带大家玩转中断本系列文章预计分四篇:深刻理解
【全网首发】盘点内核中常见的CPU性能卡点
评估运行应用程序运行状况时,上下文切换、CPU迁移、缺页中断都是需要被关注的性能指标。
Linux上文件监控的踩坑分享
前言在Linux主机安全产品HIDS中,文件监控是特别常见的需求,在实现方案上,Linux内核层提供了文件变动的通知机制fsnotify,然而,在高磁盘IO的主机上、不同版本的内核上以及海量监控目标中,将会面临哪些问题呢?业务性能与安全性如何做更好地取舍均衡?今天,我的小伙伴阿松xjas给大家分
图文详解 Linux 分页机制!
分页机制可以用于任何一种分段机制,也可以理解为先有分段机制才有分页机制,这是由于历史原因,分段机制要比分页机制更轻,先出现的分段后出现的分页。
【全网首发】深度解析 slab 内存池回收内存以及销毁全流程
笔者详细地为大家介绍了 slab cache 进行内存分配的整个链路实现,本文我们就来到了 slab cache 最后的一部分内容了,当申请的内存使用完毕之后,下面就该释放内存了。
人人都应该知道的CPU缓存运行效率
CPU除了利用率之外,还有很容易被人忽视的指标,就是指令的运行效率。
图文详解 Linux 分段机制!
上一篇聊到分段机制是为了提供了隔绝代码、数据和堆栈区域的机制,能够使得多个程序运行在同一个内存空间中不会相互干扰,这是对内存平坦模型的一种保护。内存经过分段机制后会变为一个个的段,这称为多段模型。多段模型能够利用分段机制的功能提供由硬件增强代码、数据结构、程序和任务的保护措施。现在我们知道了分段
保护模式下的内存管理
我们知道,内存可以看做一个非常大的数组,我们想要查找内存中某个元素的话,会通过数组的下标来指定,内存也是如此,不过这有一个前提是这个数组是由一组有序的字节组成的,在这个有序的字节数组中,每个字节都有一个唯一的地址,这个地址也叫做内存地址。内存中存储着很多对象,每个对象是由不同字节组成的,比如一个
【全网首发】深入理解 slab cache 内存分配全链路实现
最后我们介绍了 slab 所在内存页的详细初始化流程,其中包括了对  slab freelist 链表的初始化,以及 slab 对象的初始化~
多图详解Linux内存分配器slub
slub的数据结构相对于slab来说要简单很多。并且对外接口和slab兼容。所以说,从slab的系统更换到slub,可以说是易如反掌。
译 | Linux perf_events Off-CPU Time Flame Graph
I’ve been asked how to do these several times, so here’s a quick blog post.我已经被问过几次如何做到这些,所以这里有一篇简短的博客文章。CPU Flame Graphs are great for understand
【全网首发】从内核源码看 slab 内存池的创建初始化流程
slab cache 机制确实比较复杂,涉及到的场景又很多,大家读到这里,我想肯定会好奇或者怀疑笔者在上篇文章中所论述的那些原理的正确性,毕竟 talk is cheap ,所以为了让大家看着安心,理解起来放心,从本文开始,我们将正式进入 show you the code 的阶段
【全网首发】如何正确获取容器的CPU利用率?
如何正确地获取容器中的 cpu 利用率?容器 cpu 使用率的指标项为什么比物理机上少了 nice/irq/softirq?
【全网首发】内核是如何给容器中的进程分配CPU资源的?
容器中的核是真的逻辑核吗?Linux 是如何对容器下的进程进行 CPU 限制的,底层是如何工作的?容器中的 throttle 是什么意思?为什么关注容器 CPU 性能的时候,除了关注使用率,还要关注 throttle 的次数和时间?

有开始,就会有进​步!

在追求性能的道路上,记录每一刻的成长!源码解读,编程技巧,外文翻译,技术实践,线上案例等等,记录自己,启发他人!

专家作者推荐

巡山小汪

关注微信公众号《解Bug之路》,有问题请在公众号中咨询:) 无论多么艰苦的时刻,都不要忘记,辉煌的未来,在你的眼中闪耀!

飞哥开发内功

《深入理解Linux网络》作者,腾讯搜狗十年工程师,公众号「开发内功修炼」作者!

踩刀诗人

聊聊技术,唠唠段子,偶尔做菜写诗,欢迎关注我的公众号 踩刀诗人

Brand

搜索关注微信公众号【架构与思维】:撰稿者为bat、字节的几位高阶研发/架构,专注技术分享。

专题推荐

Netty 是一个异步事件驱动的网络通信层框架,用于快速开发高可用高性能的服务端网络框架与客户端程序,它极大地简化了 TCP 和 UDP 套接字服务器等网络编程。
作者:闪电侠,《跟闪电侠学 Netty》已出版了。书的前半部分是掘金小册中的内容:通过一个完整的 IM 项目入门 Netty;后半部分用了较大的篇幅来介绍 Netty 的底层原理,也会穿插讲一些源码阅读的思路,希望能够帮助到你。
13篇文章21840阅读量
Out of memory (OOM) 是一种操作系统或者程序已经无法再申请到内存的状态。经常是因为所有可用的内存,包括磁盘交换空间都已经被分配了。OOM的官方解释是:Understand the OutOfMemoryError Exception,根据HeapDump性能社区专属讲师公与的总结,常见的OOM有以下10种(其中OOM Killer是操作系统层面的概念)。
11篇文章12748阅读量