我们的服务在 Linux 申请的内存不会立刻从物理内存划分出来。系统数据修改时,才会发现物理内存没有分配,此时 CPU 会产生缺页中断,操作系统才会以 page 为单位把物理内存分配给程序。系统这么设计,主要是为了降低系统的内存碎片,并且减少内存的浪费。 不过系统分配的页很小,一般是 4KB,如果我们一次需要把 1G 的数据插入到内存中,写入数据到这块内存时就会频繁触发缺页中断,导致程序响应缓慢、服务状态不稳定的问题。 所以,当我们确认需要高并发读写内存时,都会先申请一大块内存并填 0,然后再使用,这样可以减少数据插入时产生的大量缺页中断。我额外补充一个注意事项,这种申请大内存并填 0 的操作很慢,尽量在服务启动时去做。
相关推荐
lzzy_lx_20898 分钟前
Spring Boot登录认证实现学习心得:从皮肤信息系统项目中学到的经验前端付豪24 分钟前
21、用 Python + Pillow 实现「朋友圈海报图生成器」📸(图文合成 + 多模板 + 自动换行)MaxHua1 小时前
以 AI 之力重塑 Java 研发,解锁高效开发新范式Determined_man1 小时前
多了这个@ResponseBody和没加有什么区别?八苦1 小时前
VKProxy新增一些功能ApeAssistant1 小时前
Log4j2.xml配置总结,就这个标题就挺好WanderInk1 小时前
揭秘Java协变返回类型:让你的API少一点强转,多一点优雅心在飞扬2 小时前
AI开发应用 01-nodejs快速入门Ray662 小时前
「阅读笔记」elasticSearch 是什么?工作原理是怎么样的?