在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