问题一:fork函数在Redis中起什么作用?
fork函数在Redis中起什么作用?
参考回答:
在Redis中,当开启了后台RDB和AOF rewrite时,需要主进程创建出一个子进程进行数据持久化。这个子进程的创建过程就是通过调用操作系统的fork函数完成的。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/639455
问题二:fork函数执行过程中,Redis实例的状态是怎样的?
fork函数执行过程中,Redis实例的状态是怎样的?
参考回答:
在fork函数执行过程中,主进程需要拷贝自己的内存页表给子进程。如果这个实例很大,拷贝过程会比较耗时。而且,fork过程会消耗大量的CPU资源,完成fork之前,整个Redis实例会被阻塞住,无法处理任何客户端请求。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/639456
问题三:如何确认Redis延迟变大是否因为fork耗时导致的?
如何确认Redis延迟变大是否因为fork耗时导致的?
参考回答:
可以在Redis上执行INFO命令,查看latest_fork_usec项,该值表示上一次fork耗时,单位微秒。如果这个耗时很久,那么可能意味着fork耗时导致了Redis延迟变大。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/639457
问题四:除了数据持久化,还有哪些场景会导致Redis执行fork操作?
除了数据持久化,还有哪些场景会导致Redis执行fork操作?
参考回答:
除了数据持久化会生成RDB之外,当主从节点第一次建立数据同步时,主节点也会创建子进程生成RDB,然后发给从节点进行一次全量同步,这个过程也会对Redis产生性能影响。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/639458
问题五:什么是内存大页?
什么是内存大页?
参考回答:
内存大页是 Linux 内核从 2.6.38 版本开始支持的一种机制,它允许应用程序以大于常规内存页(通常为 4KB)的大小为单位向操作系统申请内存,比如 2MB。
关于本问题的更多回答可点击原文查看: