myscp 程序 中open系统调用指定了 O_SYNC 标志位
[@more@]open(argv[2],O_WRONLY|O_CREAT|O_TRUNC|O_SYNC,S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP)
用myscp 拷贝600M左右的程序所花的时间:
[root@fsever FreeBSD]# du -m ./*
25 ./6.2-RELEASE-i386-bootonly.iso
574 ./6.2-RELEASE-i386-disc1.iso
640 ./6.2-RELEASE-i386-disc2.iso
189 ./6.2-RELEASE-i386-docs.iso
[root@fsever FreeBSD]# time myscp ./6.2-RELEASE-i386-disc1.iso ./test.iso
real 13m21.320s
user 0m0.184s
sys 0m5.936s
[root@fsever FreeBSD]#
mycp 程序中open 系统调用没有指定O_SYNC 标志位
open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP)
用mycp 拷贝同样600M左右的文件所花的时间:
[root@fsever IBM.Lotus.Domino.Server.v7.0]# time mycp ./IBM.Lotus.Domino.Server.v7.0.ISO-TBE.bin ./test.bin
real 0m25.629s
user 0m0.152s
sys 0m2.608s
所以:要求写同步系统调用I/O花费比update 守护进程自动同步的I/O要大非常多!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7437037/viewspace-977394/ ,如需转载,请注明出处,否则将追究法律责任。