嵌入式linux-CPU性能优化小记
嵌入式业务应用运行导致系统sys CPU使用率飚高,本文记录本次性能分析定位过程,包括一些常用工具使用示例等
平均负载与 CPU 使用率,到底有啥区别?
大家好,我是树哥。在性能优化中,我们经常会关注 CPU 平均负载这个指标。但如果让你来跟我解释一下什么是平均负载,你能说得清楚吗?它跟 CPU 使用率有什么区别?我想可能很多人都数不清楚,今天我们就来盘一盘 CPU 平均负载这个指标!平均负载与 CPU 使用率,到底有啥区别?Linux 进程
JVM 源码分析之一个 Java 进程究竟能创建多少线程
概述虽然这篇文章的标题打着JVM源码分析的旗号,不过本文不仅仅从 JVM 源码角度来分析,更多的来自于 Linux Kernel 的源码分析,今天要说的是 JVM 里比较常见的一个问题。这个问题可能有
使用Top_X插件排查内存过载问题
Top命令是Linux 系统下常用的监控工具,用于实时获取进程级别的 CPU 或内存使用情况。XPocket中的Top_X为Linux Top的增强版,可以显示CPU占用率/负载,CPU及内存进程使用
分享一次排查CLOSE_WAIT过多的经验
作者:踩刀诗人原文链接:https://www.cnblogs.com/chopper-poet/p/14618391.html 问题背景某日下午有测试人员急匆匆的跑来跟我反馈:“有客户反馈供应商附件
LONG究竟有多长,从皇帝的新衣到海康SDK
转眼之间初中毕业30年了,但我仍清楚的记得初中英语的一篇课文,题目叫《皇帝的新装》(“The king’s new clothes”)。这篇课文的前两句话是:”Long long ago, there
在调试器里看LINUX内核态栈溢出
图灵最先发明了栈,但没有给它取名字。德国人鲍尔也“发明”了栈,取名叫酒窖。澳大利亚人汉布林也“发明”了栈,取名叫弹夹。1959年,戴克斯特拉在度假时想到了Stack这个名字,后来被广泛使用。
进程无故消失的破案历程
概述 前段时间公司有个系统的进程老是无故退出,在客户那边好好的,在家里服务器上老是出现,而且出现的时间也没啥规律,当然最终查出来还是有规律的,不过这个规律比较特别。大家看了后面的内容之后就明白了
性能优化:线程资源回收
一、问题模型服务平台的排序请求出现较多超时情况,且不定时伴随空指针异常。 二、问题发生前后的改动召回引擎扩大了召回量,导致排序请求的item数量增加了。 三、出问题的模型基于XGBoost预测的全排序
用crash工具分析Linux内核死锁的一次实战
背景知识点ramdump是内存转存机制,我们可以在某个时刻把系统的内存转存到一个文件中,然后与符号信息(vmlinux)一起导入到trace32或crash等内存分析工具中做离线分析。是分析崩溃、死锁
如何使用Linux内核中没有被导出的变量或函数?
本文详细介绍了使用EXPORT_SYMBOL宏导出函数或变量、使用kallsyms_lookup_name()查找函数或变量的虚拟地址以及内核模块中直接使用内核函数的虚拟地址等3种方案解决没有被EXPORT_SYMBOL 相关的宏导出的变量或函数不能直接使用的问题
LINUX网络子系统中DMA机制的实现
我们先从计算机组成原理的层面介绍DMA,再简单介绍Linux网络子系统的DMA机制是如何的实现的。 计算机组成原理中的DMA 以往的I/O设备和主存交换信息都要经过CPU的操作。不论是最早的轮询方式,
深入理解Linux内核进程上下文切换
我都知道操作系统的一个重要功能就是进行进程管理,而进程管理就是在合适的时机选择合适的进程来执行,在单个cpu运行队列上各个进程宏观并行微观串行执行,多个cpu运行队列上的各个进程之间完全的并行执行。进
浅谈 Linux 高负载的系统化分析
讲解 Linux Load 高如何排查的话题属于老生常谈了,但多数文章只是聚焦了几个点,缺少整体排查思路的介绍。所谓 “授人以鱼不如授人以渔"。本文试图建立一个方法和套路,来帮助读者对 Load 高问
Linux多线程应用性能分析
如今CPU的核心数越来越多, 在2019年你可以轻易买到超过50个核心的x86服务器CPU,一个中端台式机拥有8个执行线程也没什么好奇怪的。问题是我们怎样找到工作负载来“喂饱”那些相对饥饿的核。到目前
Linux pstore 实现自动“抓捕”内核崩溃日志
简介pstore文件系统(是的,这是个文件系统)是Persistent Storage的缩写,最早在2010年由 Tony Luck 设计并合入Linux主分支,设计的初衷是在内核Panic/Oops
Linux上TCP的几个内核参数调优
Linux作为一个强大的操作系统,提供了一系列内核参数供我们进行调优。光TCP的调优参数就有50多个。在和线上问题斗智斗勇的过程中,笔者积累了一些在内网环境应该进行调优的参数。在此分享出来,希望对大家
火焰图:全局视野的Linux性能剖析
什么是火焰图火焰图(Flame Graph)是由Linux性能优化大师Brendan Gregg发明的,和所有其他的trace和profiling方法不同的是,Flame Graph以一个全局的视野来
别再纠结线程池大小/线程数量了,没有固定公式的
可能很多人都看到过一个线程数设置的理论:- CPU 密集型的程序 - 核心数 + 1- I/O 密集型的程序 - 核心数 2不会吧,不会吧,真的有人按照这个理论规划线程数? 线程数和CPU利用率的小
讨论在 Linux Control Groups 中运行 Java 应用程序的暂停问题
说明本篇原文来自 LinkedIn 的 Zhenyun Zhuang,原文:Application Pauses When Running JVM Inside Linux Control Group
浅析Linux IO,你需要知道的底层
在开始正式的讨论前,我先抛出几个问题:- 谈到磁盘时,常说的HDD磁盘和SSD磁盘最大的区别是什么?这些差异会影响我们的系统设计吗?- 单线程写文件有点慢,那多开几个线程一起写是不是可以加速呢?- w
操作系统
内存问题探微
这篇文章是我在公司 TechDay 上分享的内容的文字实录版,本来不想写这么一篇冗长的文章,因为有不少的同学问是否能写一篇相关的文字版,本来没有的也就有了。说起来这是我第二次在 TechDay 上做的
记一次网络请求连接超时的事故
从HTTP请求超时、重试机制、操作系统网络等层面剖析了事故的原因,最终解决业务问题。这里先抛两个问题:1)你遭遇过由于网络连接或请求超时造成的生产事故吗?2)你知道操作系统默认的网络连接超时是多少秒?
世上最好的共享内存
共享单车、共享充电宝、共享雨伞,世间的共享有千万种,而我独爱共享内存。早期的共享内存,着重于强调把同一片内存,map到多个进程的虚拟地址空间(在相应进程找到一个VMA区域),以便于CPU可以在各个进程
一次生产 CPU 100% 排查优化实践
前言到了年底果然都不太平,最近又收到了运维报警:表示有些服务器负载非常高,让我们定位问题。还真是想什么来什么,前些天还故意把某些服务器的负载提高(没错,老板让我写个 BUG!),不过还好是不同的环境互
打通IO栈:一次编译服务器性能优化实战
背景随着企业SDK在多条产品线的广泛使用,随着SDK开发人员的增长,每日往SDK提交的补丁量与日俱增,自动化提交代码检查的压力已经明显超过了通用服务器的负载。于是向公司申请了一台专用服务器,用于SDK
雕刻在LINUX内核中的LINUS故事
因为LINUX操作系统的流行,Linus 已经成为地球人都知道的名人。虽然大家可能都听过钱钟书先生的名言:“假如你吃个鸡蛋觉得味道不错,又何必认识那个下蛋的母鸡呢?” 但是如果真是遇到一个“特别显赫”
在调试里看 NV 驱动栈溢出导致的连环死锁
最近我使用的一台PC随机出现应用程序卡死。卡死的程序可能是VirtualBox虚拟机,可能是资源管理器,也可能是其它软件。有时是一个程序卡死,有时是几个程序卡死,甚至是卡死一大片,整个系统不能动弹,只
如何使用Linux内核中没有被导出的变量或函数?
Linux 内核为了减少命名空间的污染,并做到正确的信息隐藏,内核提供了管理内核符号可见性的方法,没有被 EXPORT_SYMBOL 相关的宏导出的变量或函数是不能直接使用的,为了说明并解决这个问题,
当Linux内核遭遇鲨鱼—kernelshark
之前小弟一直在宣传推广火焰图,结果是很多童鞋凡事都用火焰图。说实话,火焰图特别适合分析运行时热点(无论是on-cpu、off-cpu、还是内存等,火焰图的想象力可以无穷放大),但是你要分析一个的如果是
精致全景图 | linux内核输出的日志去哪里了
熟悉linux内核,或者看过linux内核源码的同学就会知道,在内核中,有一个类似于c语言的输出函数,叫做printk,使用它,我们可以打印各种我们想要的信息,比如内核当前的运行状态,又或者是我们自己的调试日志等,非常方便。
从猫蛇之战再看内核戏CPU
连续写了几天的代码,有些疲倦,吃过晚饭,换个工作方式,继续和大家聊猫蛇之战。蛇不仅丑陋,而且可能伤人害命,是邪恶的象征。猫与蛇战,代表着讨伐奸邪,是正义之战。猫与蛇战,技艺娴熟,举重若轻,叫人拍手叫绝
通过生产者与消费者模型感受死锁
一. 实验目的及实验环境 1.实验目的通过观察、分析实验现象,深入理解产生死锁的原因,学会分析死锁的方法, 并利用 pstack、 gdb 或 core 文件分析( valgrind (DRD+Hel
从猫蛇之战看内核戏CPU
小时候曾经目睹过猫与蛇战斗,面对昂首发威的毒蛇,小猫不慌不忙,挥舞前爪,沉着冷静,看准时机进攻,胆大心细。在网上搜一下,可以看到很多猫蛇战斗的照片,看来猫蛇之战是很多人都喜欢看的“精彩节目”。再来一张
Linux 中 D 状态的进程与平均负载
前言这篇文章聊聊 Linux 中 D 状态的进程与平均负载的关系,通过阅读本文,你会了解到这些东西。- D 状态的进程是什么- 如何编写内核模块模拟 D 状态进程- Linus 对 D 状态进程的看法
从猫蛇之战三看内核戏CPU
先说明一下,“连续剧”的成本有点高,无论如何,这一篇会把这个问题写完。回顾一下,最初的问题是“为什么在调试器里读写空指针不会崩溃?” [第一篇](https://heapdump.cn/art
Load高故障分析
Load指标的意义Linux的Load指标代表系统运行负载,是一个让新手不太容易了解的概念。简单的说,Load指标表示一段时间内,系统有多少个正在运行的任务。包含:1、正在CPU上面运行的任务数量2、
JFR 定位因为 SSL 导致 CPU Load 飚高的问题
问题场景在某一时刻,某个微服务的某个实例 CPU 负载突然飚高:同时建立了很多数据库链接:其他实例没有这个现象。 问题定位由于建立了很多数据库链接,猜想可能是数据库比较慢,查看数据库这段时间的 SQL
为什么GC 异常,大家喜欢让Swap背锅呢
背景在公司内部技术群里,经常有人时不时的问到服务某次GC时间突然很高,有什么办法排查。基本上每次都会有人怀疑会不会Swap导致的,先看看Swap,如果真的使用了Swap区域,基本上就会让Swap区域背
Nginx 502 Bad Gateway
前言事实证明,读过Linux内核源码确实有很大的好处,尤其在处理问题的时刻。当你看到报错的那一瞬间,就能把现象/原因/以及解决方案一股脑的在脑中闪现。甚至一些边边角角的现象都能很快的反应过来是为何。笔
揭露内核黑科技 - 热补丁技术真容
内核热补丁是一种无需重启操作系统,动态为内核打补丁的技术。系统管理员基于该技术,可以在不重启系统的情况下,修复内核BUG或安全漏洞,可以在最大程度上减少系统宕机时间,增加系统的可用性。一直很好奇内核热
NAT引发的性能瓶颈-完整版​
笔者最近解决了一个非常曲折的问题,从抓包开始一路排查到不同内核版本间的细微差异,最后才完美解释了所有的现象。在这里将整个过程写成博文记录下来,希望能够对读者有所帮助。(篇幅可能会有点长,耐心看完,绝对
常见线上问题分析-Linux性能观察篇(上)(实战PPT分享)
180页ppt,内容涉及:计算机体系结构、计算机组成原理、操作系统、网络协议等基础知识。从CPU、内存、I/O、网络协议栈等几个部分切入,全面覆盖Linux性能观测技术。
大碰撞!当Linux多线程遭遇Linux多进程
背景 本文是描述多进程多线程编程中遇到过的一个坑,并从内核角度分析其原理。这里说的多进程多线程并不是单一的多进程或多线程,而是多进程和多线程,往往会在写一个大型应用时才会用到多进程多线程的模型。这是怎
理解 Linux 的虚拟内存
前言前不久组内又有一次我比较期待的分享:”Linux 的虚拟内存”。是某天晚上加班时,我们讨论虚拟内存的概念时,leader 发现几位同事对虚拟内存认识不清后,特意给这位同学挑选的主题(笑)。我之前了
那些年你误会的Linux DMA(关于Linux DMA ZONE和API最透彻的一篇)
创作目的互联网、Linux内核书籍上充满了各种关于Linux DMA ZONE和dma_alloc_coherent、dma_map_single等的各种讲解,由于很多童鞋缺乏自身独立的思考,人云亦云
使用XPocket插件top_x 解决cpu高及 cpu_load高的一般思路
本文使用了xpocket工具包的插件链接xpocket地址:[https://plugin.xpocket.perfma.com](https://plugin.xpocket.perfma.com)
一次系统调用时间过长追踪完整教程案例
Ftrace简介Ftrace是Linux进行代码级实践分析最有效的工具之一,比如我们进行一个系统调用,出来的时间过长,我们想知道时间花哪里去了,利用Ftrace就可以追踪到一级级的时间分布。 Ftra
从应用到内核查接口超时(下)
某个接口超时会偶发,查了几个 case 的日志,发现 httpClient 在请求某三方接口结束后输出一条日志时间为 A,方法返回后将请求结果解析成为 JSON 对象后,再输出的日志时间为 B, AB之间的时间差会特别大,100-700ms 不等,而 JSON 解析正常是特别快的,不应该超过 1ms
借助Xpocket中的perf插件 了解cpu热点函数的抓取原理
本文使用了xpocket工具包的插件链接xpocket地址: [https://plugin.xpocket.perfma.com](https://plugin.xpocket.perfma.com
关于Linux编译优化几个必须掌握的姿势
编译选项和内核编译首先我们都知道,Linux内核如果用O0编译,是无法编译过的,Linux的内核编译,要么是O2,要么是Os,这点从Linux的Makefile里面可以看出:当选择了```CONFIG
Linux内核中用GFP_ATOMIC申请内存究竟意味着什么?
GFP_ATOMIC vs. GFP_KERNEL我们都知道,在中断、软中断、spinlock等原子上下文里面,申请内存,应该使用GFP_ATOMIC标记,譬如内核中有大量的kmalloc/GFP_A
从Linux源码看Socket(TCP)的accept
前言笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 今天笔者就从Linux源码的角度看下Server端的Socket在进行Accept的时候到底做了哪些事情
记一次 Kotlin Ktor 库的 PR 提交记录(TCP 自连接)
前言去年 techday 上有幸邀请到了 Go 夜读的大佬杨文,他跟我们分享了开源的主题,深受鼓舞。正好前段时间测试 Kotlin 的官方库 ktor 发现了一个很冷门的问题,于是提了一个 PR。经过
常见线上问题分析-Linux性能观测篇(下)(实战PPT分享)
180页ppt,内容涉及:计算机体系结构、计算机组成原理、操作系统、网络协议等基础知识。从CPU、内存、I/O、网络协议栈等几个部分切入,全面覆盖Linux性能观测
这些排查内存问题的命令,你用过多少?
我相信大家都遇到过内存占用率过高的情况,在排查过程中,我们会用到一些命令或工具,下面来看下这些你都用过吗? top 命令首先比较常用的就是 top 命令,是性能监控的常用命令,该命令可以实时显示系统中
如何 60 秒内进行 Linux 性能分析
当你登陆一台 Linux 服务器之后,因为一个问题要做性能分析时:你会在第 1 分钟内做哪些检测呢?在 Netflix,我们有很多 EC2 的 Linux 机器,并且也需要很多性能分析工具来监控和检查
从Linux源码看Socket(TCP)的listen及连接队列
前言如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 今天笔者是从Linux源码的角度看下Server端的Socket在进行listen的时候到底做了哪些事情(基于Lin
从Linux源码看Socket(TCP)的bind
前言之前笔者分享了关于Client端的Socket在进行Connect的时候到底做了哪些事情~今天笔者就来继续从Linux源码的角度看下Server端的Socket在进行bind的时候到底做了哪些事情
从Linux源码看TIME_WAIT状态的持续时间
前言笔者一直以为在Linux下TIME_WAIT状态的Socket持续状态是60s左右。线上实际却存在TIME_WAIT超过100s的Socket。由于这牵涉到最近出现的一个复杂Bug的分析。所以,笔
用eBPF/bcc分析系统性能的一个简单案例
bcc是eBPF的一种前端,当然这个前端特别地简单好用。可以直接在python里面嵌入通过C语言写的BPF程序,并帮忙产生BPF bytecode和load进入kernel挂载kprobe、trace
线程与栈那些事
这篇文章是介绍一下线程与栈相关的话题,文章比较长,主要会聊聊下面这些话题:- 进程与线程的本质区别,线程与内存共享- Linux pthread 与 Guard 区域- Hotspot 线程栈的 Gu
使用虚线程进行同步网络 IO 的不阻塞原理
使用虚线程进行网络 IOProject Loom 主要目标是在 Java 平台上提供一种易于使用、高吞吐量的轻量级并发性和新的编程模型的 JVM 特性和API。这带来了许多有趣和令人兴奋的前景,其中之
Linux 内核源码分析之进程概要及调度时机
这篇文章从 Linux 内核层面分享进程概要及调度时机。
一张图看懂linux内核中percpu变量的实现
我们在使用各种编程语言进行多线程编程时,经常会用到thread local变量。所谓thread local变量,就是对于同一个变量,每个线程都有自己的一份,对该变量的访问是线程隔离的,它们之间不会相
【全网首发】Linux:十五条网络性能优化建议
大家好,我是飞哥!最近我出了一本非常受欢迎的新书 -- 《深入理解Linux网络》。这本书首发当日就登上了京东的科技类销量日冠军,刚上市三个星期就已经印刷了三次,非常的热门。在这本书中我们深入地讨论了很多内核网络模块相关的问题。讨论了一个网络包是如何从网卡到达用户进程的,聊了同步阻塞和多路复
【全网首发】聊聊Linux中线程和进程的联系与区别!
大家好,我是飞哥!关于进程和线程,在 Linux 中是一对儿很核心的概念。但是进程和线程到底有啥联系,又有啥区别,很多人还都没有搞清楚。在网上对进程和线程的讨论中,很多都是聚集在这二位有啥不同。但事实在 Linux 上,进程和线程的相同点要远远大于不同点。在 Linux 下的线程甚至都被称为了轻
谈一谈Linux让实时/高性能任务独占CPU的事
内容简介本文主要讨论在高实时要求、高效能计算、DPDK等领域,Linux如何让某一个线程排他性独占CPU;独占CPU涉及的线程、中断隔离原理;以及如何在排他性独占的情况下,甚至让系统的timer tick也不打断独占任务,从而实现最低的延迟抖动。 阅读本文大约需要20分钟。
关于Linux网络的网络性能优化建议
导语我们在Linux性能方面有哪些优化手段可用呢?我在本章中给出一些开发或者运维中的性能优化建议。注意,我用的字眼是建议,而不是原则之类的。每一种性能优化方法都有它适用或者不适用的应用场景。你应当根据你当前的项目现状灵活来选择用或者不用。 正文1、网络请求优化建议1:尽量减少不必
【译】一次交易类场景CPU飙升100%的故障排除案例
在本文中,我们将讨论如何解决北美主要交易应用程序中出现的 CPU 峰值问题。突然之间,这个应用程序的 CPU 开始飙升至 100%。事实上,这个团队没有进行任何新的代码部署,没有进行任何环境更改,也没有翻转任何标志设置——但突然间,CPU 开始飙升。我们甚至验证了流量是否增加
【全网首发】从 Linux 内核角度探秘 JDK NIO 文件读写本质
1. 前言笔者在 《从 Linux 内核角度看 IO 模型的演变》一文中曾对 Socket 文件在内核中的相关数据结构为大家做了详尽的阐述。又在此基础之上介绍了针对 socket 文件的相关操作及其对应在内核中的处理流程:并与 epoll 的工作机制进行了串联:通过这些内容的串联介绍,
【全网首发】内核是如何给容器中的进程分配CPU资源的?
容器中的核是真的逻辑核吗?Linux 是如何对容器下的进程进行 CPU 限制的,底层是如何工作的?容器中的 throttle 是什么意思?为什么关注容器 CPU 性能的时候,除了关注使用率,还要关注 throttle 的次数和时间?
深入理解Linux系统调用与API
作者简介:程磊,一线码农,在某手机公司担任系统开发工程师,阅码场荣誉总编辑,日常喜欢研究内核基本原理。目录:一、基本概念解析1.1 系统调用的来源与作用1.2 API的来源与作用1.3 API与系统调用的关系1.4 系统调用机制的基本原理二、API的制定与实现2.1 POSIX A
聊聊 Linux 中断机制
中断的历史原因在聊中断机制之前,我想先和大家聊一聊中断机制出现的前因后果。最一开始计算机操作系统的设计是能够一次性的执行所有的计算任务的,这被称为顺序执行,也是批处理操作系统(Batch system)。顺序执行的意思是一个任务接着一个任务的依次执行,就像我们编写代码的时候,我们肯定是写完一行代
一次死锁导致CPU异常飘高的整个故障排查过程
2021年4月2号,晚上10.45分左右,线上业务异常,后排查 线上服务器CPU 异常高,机器是 16核 64G的。但是实际负载已经达到了 140左右。
Linux上TCP的几个内核参数调优
Linux作为一个强大的操作系统,提供了一系列内核参数供我们进行调优。光TCP的调优参数就有50多个。在和线上问题斗智斗勇的过程中,笔者积累了一些在内网环境应该进行调优的参数。在此分享出来,希望对大家有所帮助。 调优清单 好了,在这里先列出调优清单。请记住,这里只是笔者在
【全网首发】一步一图带你深入理解 Linux 虚拟内存管理
写在本文开始之前…从本文开始我们就正式开启了 Linux 内核内存管理子系统源码解析系列,笔者还是会秉承之前系列文章的风格,采用一步一图的方式先是详细介绍相关原理,在保证大家清晰理解原理的基础上,我们再来一步一步的解析相关内核源码的实现。有了源码的辅证,这样大家看得也安心,理解起来也放心,最起码可
【全网首发】Linux 中 CPU 利用率是如何算出来的?
top 输出的利用率信息是如何计算出来的,它精确吗? ni 是 cpu 在处理啥时的开销? wa 代表的是 io wait,那么这段时间中 cpu 到底是忙碌还是空闲?以上问题本文将为你解答!
一次磁盘占用率 100% 的排查记录
你好,我是悟空。最近遇到一个服务器的问题:磁盘满了,占用率 100%~这个问题太常见了,于是先来排查一波是哪些文件占用了大量磁盘。一、排查磁盘占用率100%1.1 查看磁盘使用的大致情况第一个命令就是 df -h,来查看磁盘的占用情况。df 是 disk free 的缩写,用于显示目前在 L
人人都应该知道的CPU缓存运行效率
CPU除了利用率之外,还有很容易被人忽视的指标,就是指令的运行效率。
怒啃 24 小时,终于搞懂上下文切换!
大家好,我是树哥。对于服务器系统来说,上下文切换也是影响系统性能的一个重要因素。深入理解上下文切换的原理,有利于我们做好性能优化工作。今天我将带大家了解下上下文切换的几种情形,以及其背后发生切换的具体信息,接着介绍一些监测上下文切换指标的工具,最后总结一些上下文切换异常可能得场景。1. 什么是
详解同步阻塞网络 IO—高性能网络开发路上的绊脚石
在网络开发模型中,有一种非常易于开发同学使用的方式,那就是同步阻塞的网络 IO(在 Java 中习惯叫 BIO)。例如我们想请求服务器上的一段数据,那么 C 语言的一段代码 demo 大概是下面这样:int main(){ int sk = socket(AF_INET, SOCK_STREA
深入理解Linux内核进程上下文切换
我们都知道操作系统的一个重要功能就是进行进程管理,而进程管理就是在合适的时机选择合适的进程来执行,在单个cpu运行队列上各个进程宏观并行微观串行执行,多个cpu运行队列上的各个进程之间完全的并行执行。
【全网首发】从进程栈内存底层原理到Segmentation fault报错
这篇文章中我给大家介绍进程栈的初始化过程、栈对应的物理内存是如何分配的、以及栈的自动增长。也会看到“Segmentation fault (core dumped)”产生的的根本原因。
踩了个DNS解析的坑,但我还是没想通
hello大家好,我是小楼。最近踩了个DNS解析的小坑,虽然问题解决了,但排查过程比较曲折,最后还是有一点没有想通,整个过程分享给大家。背景最近负责的服务要置换机器。置换机器可能很多小伙伴不知道是干啥,因为大家平时接触不到,我简单解释一下什么是机器置换以及为什么需要机器置换。机器置换通俗
超极速优化:网络开发中的请求合并!
导语今天,xjjdog来分享网络开发中的一个超级技巧。它可以把两个请求合并为一个请求,使得服务在弱网环境中性能得到极大的改善。说开了很容易,但却很难想到。 正文需求如果我有大量的物联网设备,比如说100万台。如果这些设备平均每10秒产生一个请求,那么QPS就是10W,这对于任何公
深入理解Linux中断机制
一、中断基本原理中断是计算机中非常重要的功能,其重要性不亚于人的神经系统加脉搏。虽然图灵机和冯诺依曼结构中没有中断,但是计算机如果真的没有中断的话,那么计算机就相当于是半个残疾人。今天我们就来全面详细地讲一讲中断。1.1 中断的定义我们先来看一下中断的定义:中断机制:CPU在执行指令时,收到
深入理解Linux进程管理
作者简介:程磊,一线码农,在某手机公司担任系统开发工程师,日常喜欢研究内核基本原理。目录一、进程基本概念1.1 进程与程序1.2 进程与线程1.3 进程与内核1.4 进程与内存1.5 进程运行状态1.6 进程亲缘关系二、进程的实现2.1 基本原理2.2 进程结构体2.3 进
为什么我的进程被kill掉了
先来看段代码:这段代码非常简单,就是先用mmap的方式,为该进程分配10GiB的虚拟内存,然后再用page写的方式,让操作系统为这10GiB虚拟内存,分配对应的物理内存,最后sleep,等待我们测试。

有开始,就会有进​步!

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

专家作者推荐

巡山小汪

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

飞哥开发内功

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

踩刀诗人

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

Brand

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

专题推荐

本专题精选了HeapDump性能社区中的8篇数据库性能优化相关文章,这些文章内不仅包含了影响数据库性能的因素,数据库性能评估标准、优化方法的内容,还介绍了一些数据库设计原则和编程技巧,并且记录了一些或大或小的实战案例,帮助大家快速了解数据库性能优化,掌握一些实操技能。
8篇文章14794阅读量
本系列文章主要针对Dubbo2.6.2(dubbox2.8.4)版本,从源码的角度分析Dubbo内部的实现细节,加深对Dubbo的各配置参数底层实现原理的理解,更好的指导Dubbo实践。
14篇文章24641阅读量