高并发架构实战 Day 47

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

相关推荐
学历真的很重要几秒前
Claude Code Windows 原生版安装指南
人工智能·windows·后端·语言模型·面试·go
转转技术团队2 分钟前
让AI成为你的编程助手:如何高效使用Cursor
后端·cursor
shellvon8 分钟前
你怎么被识别的?从TLS到Canvas的设备追踪术
后端·算法
yinke小琪12 分钟前
消息队列如何保证消息顺序性?从原理到代码手把手教你
java·后端·面试
考虑考虑28 分钟前
Java实现墨水屏点阵图
java·后端·java ee
网安Ruler33 分钟前
第49天:Web开发-JavaEE应用&SpringBoot栈&模版注入&Thymeleaf&Freemarker&Velocity
java·spring boot·后端
cci44 分钟前
使用nmcli连接网络
后端
雨中散步撒哈拉2 小时前
13、做中学 | 初一下期 Golang数组与切片
开发语言·后端·golang
0wioiw02 小时前
Go基础(③Cobra)
开发语言·后端·golang
cci2 小时前
使用proxychains4反向代理解决依赖下载难题
后端