在Redis latency problems troubleshooting页面中,做者对Redis延迟问题的成因进行了全方位的剖析,其中一项即是fork操做占用时间致使的延迟。最近Redis做者又对fork操做在各虚拟系统中的性能进行了测试对比,得出下面结果,结果代表使用Xen虚拟化的主机因为其fork操做的实现机制,fork致使的延迟会更为严重。node
Linux beefy VM on VMware 6.0GB RSS forked in 77 milliseconds (12.8 milliseconds per GB).redis
Linux running on physical machine (Unknown HW) 6.1GB RSS forked in 80 milliseconds (13.1 milliseconds per GB)sql
Linux running on physical machine (Xeon @ 2.27Ghz) 6.9GB RSS forked into 62 millisecodns (9 milliseconds per GB).nosql
Linux VM on 6sync (KVM) 360 MB RSS forked in 8.2 milliseconds (23.3 millisecond per GB).性能
Linux VM on EC2 (Xen) 6.1GB RSS forked in 1460 milliseconds (239.3 milliseconds per GB).测试
Linux VM on Linode (Xen) 0.9GBRSS forked into 382 millisecodns (424 milliseconds per GB).spa
说明:Redis的fork操做主要发生在写RDB文件和AOF rewrite的过程当中,Redis经过fork出一个子进程来完成上面的工做,经过利用fork操做的COW(copy on write)功能,使得系统可以仅仅复制内存页面引用来实现数据快照的功能。blog