文件系统零散笔记

O_DIRECT选项

数据读写不经过PageCache。对于写,在操作系统层,操作系统将这份数据交给Block层进入排队候就返回。

 

O_SYNC选项

数据会经过PageCache,但是操作系统会在写完后执行sync操作,将数据从PageCache刷到Block层,然后等Block层排队完将数据交给磁盘驱动程序之后,才返回成功。

 

块设备的4K对齐

PageCache与块设备交互的基本单位是4K。如果应用程序写的数据不是4K对齐的,那么操作系统会从块设备上读取该数据所在的4K数据到PageCache,然后更改PageCache中的数据。在合适的时候将该Page回写到磁盘上。

 

mount -o rw,noatime,nodiratime,delalloc -t ext4 /dev/sdj1 /apsarapangu/disk8

 

检查目录或磁盘上的已经打开的文件:

[root@attic4-cent ~]# lsof -w /dos

COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

slowread. 28960  ian    0r   REG    8,3     1207    2 /dos/fstab

sleep     28972  ian    0r   REG    8,3     1207    2 /dos/fstab

有三种日志模式:data=journal、data=ordered和data=writeback.默认设置data=ordered提供性能和防护之间的最佳平衡。但是如果你的服务器需要写入大量数据,它可以长期冻结你的服务器。如果是这种情况,使用iotop等工具,你会看到kjournald程序的高负载。如果你的服务器遇到了这种行为,使用data=writeback选项来获得更好的写入性能。但是使用这个选项增加了风险,最新修改的数据会在宕机事件中崩溃。

data=journal                All data are committed into the journal prior to being
                        written into the main file system.  Enabling
                        this mode will disable delayed allocation and
                        O_DIRECT support.

data=ordered        (*)        All data are forced directly out to the main file
                        system prior to its metadata being committed to the
                        journal.

data=writeback                Data ordering is not preserved, data may be written
                        into the main file system after its metadata has been
                        committed to the journal.

 

posted @ 2019-07-16 22:59  CobbLiu  阅读(148)  评论(0编辑  收藏  举报