首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(Ext4)是否同步写入同一磁盘中的不同文件?

问(Ext4)是否同步写入同一磁盘中的不同文件?
EN

Unix & Linux用户
提问于 2021-12-23 11:32:49
回答 1查看 503关注 0票数 1

我正在Linux中开发一个应用程序,它只包括从多个线程写入文件。目前,我从每个线程获取一个互斥锁,然后追加到一个文件中。我想优化我的应用程序的性能,并考虑创建多个文件(让我们调用段),然后每个线程只需写到它自己的段。此文件类似于预先写日志,仅在应用程序引导期间使用。

我想知道上面是否是优化IO的好策略。

是否存在为同一本地磁盘上的写入创建多个文件的开销?

EN

回答 1

Unix & Linux用户

发布于 2021-12-23 12:39:39

来自man 2 write:

根据POSIX.1-2008/SUSv4 4节XSI 2.9.7 (“与常规文件操作的线程交互”):下列所有功能在POSIX.1-2008在常规文件或符号链接上操作时,都应是原子的:随后列出的API包括写()和写(2)。文件偏移量的更新应该是跨线程(和进程)的原子效应。但是,在3.14版本之前的Linux上,情况并非如此:如果共享打开的文件描述的两个进程(请参阅open(2))同时执行写(或写)操作,那么I/O操作在更新文件偏移量方面不是原子操作,因此两个进程输出的数据块可能(不正确)重叠。这个问题在Linux3.14中得到了解决。

换句话说,如果这只是一个进程中的多个线程,那么如果您的内核>3.14,那么就没有问题;这与实际的文件系统无关。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/683633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档