高并发架构实战 Day 47

我们的服务在 Linux 申请的内存不会立刻从物理内存划分出来。系统数据修改时,才会发现物理内存没有分配,此时 CPU 会产生缺页中断,操作系统才会以 page 为单位把物理内存分配给程序。系统这么设计,主要是为了降低系统的内存碎片,并且减少内存的浪费。 不过系统分配的页很小,一般是 4KB,如果我们一次需要把 1G 的数据插入到内存中,写入数据到这块内存时就会频繁触发缺页中断,导致程序响应缓慢、服务状态不稳定的问题。 所以,当我们确认需要高并发读写内存时,都会先申请一大块内存并填 0,然后再使用,这样可以减少数据插入时产生的大量缺页中断。我额外补充一个注意事项,这种申请大内存并填 0 的操作很慢,尽量在服务启动时去做。

相关推荐
江湖十年1 分钟前
万字长文:彻底掌握 Go 1.23 中的迭代器——原理篇
后端·面试·go
程序员爱钓鱼4 分钟前
Go语言实战案例-实现分页查询接口
后端·google·go
悟空聊架构6 分钟前
从 0 到 1:Jenkins 对接企微机器人避坑指南(附可下载 Pipeline 模板)
后端·架构·github
悟空聊架构6 分钟前
金仓数据库 SQL Server 兼容版 T-SQL
后端·架构
悟空聊架构9 分钟前
数据库之路-第5期-超强的运维管理平台,TEM on 腾讯云安装 + TiDB 集群实践
后端·架构
CF14年老兵9 分钟前
Python万物皆对象:从懵懂到顿悟的奇妙之旅
后端·python·trae
悟空聊架构13 分钟前
一口气读完 RocketMQ 架构
后端·架构
CodeSheep18 分钟前
国内 IT 公司时薪排行榜。
前端·后端·程序员
悟空聊架构24 分钟前
RabbitMQ 系统架构简介
后端·架构
东阳马生架构6 小时前
生成订单链路中的技术问题说明文档
后端