文件系统零散笔记
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.