Linux中如何确保文件的立即存储

内核编译和嵌入式产品的设计与开发
回复
chenxitwo
帖子: 31
注册时间: 2011-08-13 20:03

Linux中如何确保文件的立即存储

#1

帖子 chenxitwo » 2015-04-16 14:31

最近在弄u盘的速度测试时,发现文件系统的缓存,导致在fwrite,fclose文件之后不能保证文件内容立即保存到u盘上,这样写速度会偏高一点。

开始试着 mount -o sync UsbDevName mount_point,但发现会造成u盘的写速度非常慢。请问各位是否有解决的方法?谢谢
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: Linux中如何确保文件的立即存储

#2

帖子 poloshiao » 2015-04-16 14:40

終端機指令
sync

參閱
http://manpages.ubuntu.com/manpages/tru ... ync.8.html
sync - synchronize data on disk with memory
把內存記憶體中的數據同步到硬盤上
chenxitwo
帖子: 31
注册时间: 2011-08-13 20:03

Re: Linux中如何确保文件的立即存储

#3

帖子 chenxitwo » 2015-04-16 15:12

poloshiao 写了:終端機指令
sync

參閱
http://manpages.ubuntu.com/manpages/tru ... ync.8.html
sync - synchronize data on disk with memory
把內存記憶體中的數據同步到硬盤上
sync 是将整个文件系统缓存全部同步到存储介质,这比我想要的时间更长,一样会影响速度的准确性。是否有针对特定文件的操作?
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: Linux中如何确保文件的立即存储

#4

帖子 poloshiao » 2015-04-16 20:39

sync 是将整个文件系统缓存全部同步到存储介质
建議 參閱 cache 與 buffer
1. http://en.wikipedia.org/wiki/Data_buffe ... rsus_cache
2. www.tldp.org/LDP/sag/html/buffer-cache.html
chenxitwo
帖子: 31
注册时间: 2011-08-13 20:03

Re: Linux中如何确保文件的立即存储

#5

帖子 chenxitwo » 2015-04-17 9:41

用open,fsync可以针对特定的文件立即回写到存储介质
头像
astolia
论坛版主
帖子: 6450
注册时间: 2008-09-18 13:11

Re: Linux中如何确保文件的立即存储

#6

帖子 astolia » 2015-04-17 14:49

你既然用open了,可以直接用O_SYNC参数
chenxitwo
帖子: 31
注册时间: 2011-08-13 20:03

Re: Linux中如何确保文件的立即存储

#7

帖子 chenxitwo » 2015-04-17 18:18

感谢 poloshiao, astolia,问题已解决。
回复