首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ubuntu中使用的写模式策略是什么?

在Ubuntu中使用的写模式策略是什么?
EN

Ask Ubuntu用户
提问于 2012-10-05 09:50:15
回答 3查看 4.3K关注 0票数 2

不管怎么说,是否要看看Ubuntu是使用写策略还是写策略?

我知道回写要好得多,但是当我用C编写程序来测试缓存时,看起来Ubuntu使用的是写通。

更新:我的意思是它是CPU缓存,而不是文件系统缓存。我关心的是编写缓存L1、L2、L3和内存的策略。谢谢你!

EN

回答 3

Ask Ubuntu用户

发布于 2012-10-05 10:25:07

在回写缓存中,当对缓存的数据进行更改时,也不会同时对原始数据进行更改。相反,更改后的数据将被标记,并且当已缓存的数据被释放时,原始数据将被更新。

相反,在写入缓存中,对缓存数据的更改是同时在原始副本中进行的。回写缓存比直接缓存执行得更快.但是,在某些情况下,缓存数据和原始数据之间的差异可能会导致问题,必须使用写入缓存。

来源

现在,您所使用的操作系统并不重要,真正影响到您使用的文件系统的是什么。

在默认情况下,Ubuntu使用ext4作为它的文件系统,并了解ext4、使用这两种模式、写回和写通。

以启用写回模式

运行:

代码语言:javascript
复制
 tune2fs -o journal_data_writeback /dev/sd*

编辑fstab

代码语言:javascript
复制
vi -w /mnt/sdXY/etc/fstab

找到引用sd*的行,它看起来如下所示:

代码语言:javascript
复制
# /dev/sda2
UUID=be2f0ac2-4683-4550-bcd1-704a1a840b3e / ext4 relatime,errors=remount-ro 0 1

第一个条目是UUID。第二个条目是路径。第三是炒作。第四是选择。第五是自卸,第六是传球。

将选项(第4)改为:

代码语言:javascript
复制
noatime,data=writeback,barrier=0,nobh,errors=remount-ro

重新启动系统以完成更改。

来源

还可以查看以获得更多信息。

票数 2
EN

Ask Ubuntu用户

发布于 2012-10-05 17:09:57

您还可以通过查看/proc/data=来查看当前的“”模式。下面是我的笔记本电脑的一个例子:

代码语言:javascript
复制
$ grep ext /proc/mounts 
/dev/mapper/crypt-root / ext4 rw,noatime,errors=remount-ro,user_xattr,barrier=1,data=ordered 0 0
/dev/mapper/vg0-boot /boot ext4 rw,nosuid,nodev,noexec,noatime,user_xattr,barrier=1,data=ordered 0 0
/dev/mapper/crypt-homes /home ext4 rw,nosuid,noatime,user_xattr,acl,commit=60,barrier=1,data=ordered 0 0

另外,请注意,"nobh“是一个不推荐的挂载选项。

票数 2
EN

Ask Ubuntu用户

发布于 2012-10-06 09:37:45

您还可以看到在open()中使用O_SYNC | O_DIRECT标志是否是您想要的。手册规定:

O_DIRECT标志本身努力同步传输数据,但不保证O_SYNC标志数据和必要的元数据被传输。为了保证同步I/O,除了O_DIRECT之外,还必须使用O_SYNC。

请参阅man 2打开以获取更多详细信息。

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

https://askubuntu.com/questions/196693

复制
相关文章

相似问题

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