“同步”和“异步”安装选项之间的区别


42

从最终用户的角度来看,syncasyncmount选项之间有什么区别?使用这些选项之一挂载的文件系统是否比使用另一个选项挂载的文件系统更快?如果未设置,则默认为哪个选项?

man mount他说,这种sync选择可能会缩短闪存的寿命,但可能会因过时的传统观点而失效。无论如何,这让我有些担心,因为分区//home放置位置的主硬盘驱动器是SSD驱动器。

Ubuntu安装程序(14.04)sync既未指定分区也未指定async选项/,但已通过option async进行/home了设置defaults。这是我的/etc/fstab,我添加了一些额外的行(请参阅注释),但未更改安装程序所做的行中的任何内容:

# / was on /dev/sda2 during installation
UUID=7e4f7654-3143-4fe7-8ced-445b0dc5b742 /     ext4  errors=remount-ro 0  1
# /home was on /dev/sda3 during installation
UUID=d29541fc-adfa-4637-936e-b5b9dbb0ba67 /home ext4  defaults          0  2
# swap was on /dev/sda4 during installation
UUID=f9b53b49-94bc-4d8c-918d-809c9cefe79f none  swap  sw                0  0

# here goes part written by me:

# /mnt/storage
UUID=4e04381d-8d01-4282-a56f-358ea299326e /mnt/storage ext4 defaults  0  2
# Windows C: /dev/sda1
UUID=2EF64975F6493DF9   /mnt/win_c    ntfs    auto,umask=0222,ro      0  0
# Windows D: /dev/sdb1
UUID=50C40C08C40BEED2   /mnt/win_d    ntfs    auto,umask=0222,ro      0  0

因此,如果我/dev/sda是SSD,为了减少磨损,是否应该async/and /home文件系统添加选件?我应该为我定义的其他分区设置sync还是async选择/etc/fstab?SSD和HDD驱动器的推荐方法是什么?



@Gnouc交叉发布有什么问题?无论如何,我按照您的要求从Ask Ubuntu中删除了帖子。

Answers:


49

async是的反义词sync,很少使用。 async是默认设置,您无需明确指定。

该选项sync意味着对相应文件系统的所有更改都将立即刷新到磁盘上。正在等待相应的写入操作。对于机械驱动器,这意味着极大的速度降低,因为系统必须将磁盘磁头移至正确的位置。使用syncuserland进程必须等待操作完成。相反,使用async系统缓冲写操作并优化实际写操作。同时,用户区中的进程没有被阻塞,而是继续运行。(如果出现问题,然后close()返回-1errno = EIO。)

SSD:我不知道SSD内存与RAM内存相比有多快,但是肯定不会更快,因此sync可能会降低性能,尽管不如机械磁盘驱动器差。从一生开始,这种智慧仍然有效,因为向SSD写入数据会“磨损”它。最坏的情况是对同一个地方进行很多更改的过程。与sync他们每个人打SSD,同时用async(默认值)的SSD将不会看到他们大多数是由于内核缓冲。

归根结底,不要着急sync,您很可能会满意async


如果本地应用程序正在删除并写入已安装的驱动器(指向外部Windows盒);默认的异步模式是否有可能不安全?该方案是一个轮询应用程序,在挂载上的一个文件夹中查找,处理子文件夹,然后将其删除。
HellishHeat 2015年

@HellishHeat您应该将其作为一个单独的问题进行询问,并充分考虑您所设想的场景。
countermode

不同存储层的速度是多少:ram为纳秒,flash为微秒(写为10,读为约100),旋转磁盘为毫秒(最佳情况为5 ms,如果备份了磁盘队列和访问,则为10到100ms)随机)。写入闪存设备上的单个位置可能会写入电容器支持的SRAM,而不会一直写入到NAND。因此,很难确定磨损或速度影响。
Brian Bulkowski

这是否意味着不需要在同步装入的fs上调用syncfsyncfdatasyncsyscall?
CMCDragonkai

1
@ini您可能会冒着丢失数据的风险async。但是,如果这是一个问题,那sync不是答案-的性能损失sync简直令人望而却步。
countermode

5

提醒您:如果您不断写入安装文件(例如有价值的日志,安全摄像机记录等),并且无法防止突然断电,则使用“异步”安装选项可能不是最好的主意。这可能会导致记录丢失或数据不完整(无用)。不太聪明的例子:想象一个小偷进入商店,立即切断相机电源线。入侵的视频记录已记录,但可能尚未刷新/同步到磁盘,因为它(或其中的一部分)可能已缓冲在内存中,因此在相机​​断电时丢失。


现代服务器在RAID控制器中具有电池供电的磁盘缓存,即使在断电的情况下,也可以防止数据丢失。
tonioc

异步不写很多秒钟?大约几秒钟?
燕丽

@Ini似乎取决于我相信所使用的文件系统。
bd1251252

无论如何,操作系统应确保关闭时将所有内容写入ssd / hdd。在断电的情况下,您可能会丢失一些数据。我说的对吗?
伊尼

某些磁盘中基于电池的缓存确实不是没有针对功耗进行优化的原因1)仅在昂贵的专业服务器中。并非所有用户都具有此功能2)它只会在数据甚至到达磁盘控制器的情况下为您提供保护。在许多情况下,它将被卡在OS缓存中,远远早于控制器看到该数据-并且在电源故障时这些数据将丢失。
Cray
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.