高并发架构实战 Day 47

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

相关推荐
weifexie11 分钟前
ruby超高级语法
开发语言·后端·ruby
风象南34 分钟前
SpringBoot实现接口防刷的5种实现方案
java·spring boot·后端
字节源流6 小时前
【微服务】基础概念
后端·spring·spring cloud
Asthenia04129 小时前
手搓Redis之为Zset而作的跳表实现逻辑梳理与面试问题解析
后端
uhakadotcom9 小时前
了解Dapr:构建分布式应用的强大工具
后端·面试·github
橘猫云计算机设计9 小时前
ASP.NET图书馆借阅系统(源码+lw+部署文档+讲解),源码可白嫖!
java·数据库·后端·爬虫·小程序·毕业设计·asp.net
uhakadotcom9 小时前
Kibana:数据分析和可视化的强大工具
后端·面试·github
摆烂工程师9 小时前
Grok3 支持 DeeperSearch 的免费可用次数的查询了
前端·后端·程序员
uhakadotcom9 小时前
Grafana:数据可视化和监控平台的强大工具
后端·面试·github