首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >破译红色原木

破译红色原木
EN

Stack Overflow用户
提问于 2017-03-06 08:51:43
回答 1查看 44关注 0票数 0

在红色日志中,经常会出现一条与背景保存相关的行,例如:

代码语言:javascript
复制
[11465] 06 Mar 08:10:11.292 * RDB: 541 MB of memory used by copy-on-write

有人能澄清这句话的确切意思吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-06 09:00:34

当redis想要保存快照时,它会先分叉自己,然后分叉进程保存数据集,而不是因为必须服务请求而受到干扰,等等。

因为您现在有两个进程,这可能意味着要使用两倍的RAM,对吗?但是不,操作系统实际上通过让新进程引用旧进程的内存页来优化这个场景。

当原始服务器的内存在分叉之后发生变化时(由于您发出更新命令或其他原因),就会发生有趣的事情。分叉进程必须维护它在分叉时获得的任何内存状态,因此系统在更改共享页之前,会将页面复制到分叉进程(这样就不再共享),然后更改原始进程的页面。这叫做“抄写”。

在您的示例中,这大致意味着在保存快照所需的时间内,您更改了541 of的数据。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42621208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档