mount的noatime选项

本文通过实测Linux下mount noatime选项对文件系统性能的影响,发现该选项并未带来预期的性能提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



mount的noatime选项

本着榨尽PC最后一点油水的思想,在看到mount可以有一个noatime选项可以提高文件系统性能时,我毫不犹豫就挽起袖子动起手来。

noatime是Linux下文件系统的一个mount选项,表示在读文件时不去更改文件的access time属性了,而缺省时每次读文件,都要更新这个文件的last access time属性,相当于附加了额外的写操作,想想对性能应该有不小的影响啊。

动手前,自然先测一下当前的性能,我用hdparm -tT和postmark(这个可以用apt-get安装)分别测了一下,
postmark 的结果是:
PostMark v1.51 : 8/14/01
pm>run
Creating files…Done
Performing transactions……….Done
Deleting files…Done
Time:
        1 seconds total
        1 seconds of transactions (500 per second)

Files:
        764 created (764 per second)
                Creation alone: 500 files (500 per second)
                Mixed with transactions: 264 files (264 per second)
        243 read (243 per second)
        257 appended (257 per second)
        764 deleted (764 per second)
                Deletion alone: 528 files (528 per second)
                Mixed with transactions: 236 files (236 per second)

Data:
        1.36 megabytes read (1.36 megabytes per second)
        4.45 megabytes written (4.45 megabytes per second)

hdparm的结果是:
 Timing cached reads:   1170 MB in  2.00 seconds = 585.12 MB/sec
 Timing buffered disk reads:   84 MB in  3.00 seconds =  27.96 MB/sec

改这个noatime倒是很简单,在/etc/fstab中的文件系统的属性后加上noatime,再用 sudo mount -oremount / 就可以立即生效了(是的,不需要重启)。用mount命令验证,确实有了noatime的选项。

现在再测(心情激动的说),啊,嗯,哎。。。结果几乎一模一样,确认没有搞错步骤之后,只能失望的写一篇blog安慰一下了,有希望借此提高性能的 同学,我劝你们也别忙活了,否则可能是和我一样失望了。

<think>好的,我现在需要帮助用户解决如何将/dev/sdb挂载到/data/1目录,并在/etc/fstab中添加noatime,nodiratime,nofail选项,以实现开机自动挂载。首先,我应该回忆一下/etc/fstab文件的结构和各字段的含义。根据引用[1]中的例子,/etc/fstab的每一行包含六个字段:文件系统、挂载点、类型、选项、dump和pass。 用户提供的例子中,各个字段的格式正确,比如使用设备名称如/dev/sda1,挂载点如/,文件系统类型如ext4,选项如defaults,noatime,然后是dump和pass值。现在用户的需求是挂载/dev/sdb到/data/1,并添加特定的选项。首先需要确认用户是否已经创建了挂载点目录/data/1,如果没有的话,需要先创建,类似引用[2]中的mkdir /data步骤。 接下来,关于选项部分,用户希望添加noatime、nodiratime和nofail。noatime和nodiratime是用于减少磁盘I/O的选项,分别表示不更新文件的访问时间和目录的访问时间。而nofail选项则允许系统在启动时即使设备不存在也不报错,这在移动设备或可能不在线的存储中很有用。需要确认这些选项的兼容性,比如是否适用于用户使用的文件系统类型,比如ext4、xfs等。 然后,文件系统类型需要用户确认,比如使用ext4或者其他类型。如果用户不确定,可能需要使用blkid命令来查看/dev/sdb的文件系统类型。此外,dump和pass字段的设置也很重要。通常,dump设置为0表示不备份,pass设置为0表示不进行文件系统检查,或者根据挂载点的位置设置不同的值,比如根目录通常是1,其他分区可能是2或0。 另外,需要提醒用户在修改/etc/fstab文件前进行备份,避免配置错误导致系统无法启动。测试配置是否正确可以使用mount -a命令来挂载所有在fstab中定义的文件系统,并检查是否有错误输出,如引用[2]中的mount命令检查是否成功。 可能用户会犯的错误包括设备名称不正确、挂载点不存在、选项拼写错误或文件系统类型错误。需要强调这些注意事项,确保用户按照正确的步骤操作。 最后,生成相关问题需要考虑用户可能遇到的后续问题,比如如何测试配置、处理挂载失败、其他常用挂载选项以及UUID的使用等。这些扩展问题能帮助用户更全面地理解和应用/etc/fstab的配置。</think>### 分步说明 1. **确认设备信息和文件系统类型** 执行命令 `lsblk` 或 `sudo blkid /dev/sdb` 确认设备存在且文件系统类型(如 `ext4`, `xfs` 等)。例如: ```bash sudo blkid /dev/sdb ``` 输出示例: ``` /dev/sdb: UUID="abcd1234" TYPE="ext4" ``` 2. **创建挂载目录** 若 `/data/1` 不存在,需手动创建: ```bash sudo mkdir -p /data/1 ``` 3. **编辑 `/etc/fstab`** 在文件末尾添加以下行(假设文件系统类型为 `ext4`): ``` /dev/sdb /data/1 ext4 defaults,noatime,nodiratime,nofail 0 0 ``` - **字段说明**: - **文件系统**:`/dev/sdb`(设备路径,建议改用UUID更稳定[^1]) - **挂载点**:`/data/1` - **类型**:`ext4`(根据实际文件系统调整) - **挂载选项**:`defaults`(基础选项)+ `noatime,nodiratime`(减少磁盘写入)+ `nofail`(忽略启动时设备未找到的错误) - **dump**:`0`(禁用备份) - **pass**:`0`(禁用文件系统检查) 4. **测试并应用配置** 执行以下命令验证配置: ```bash sudo mount -a ``` 若未报错且通过 `mount | grep /dev/sdb` 确认挂载成功,则配置正确[^2]。 --- ### 关键注意事项 - **使用UUID替代设备路径**:设备名称(如 `/dev/sdb`)可能因硬件变动改变,建议通过 `blkid` 获取UUID并替换 `/dev/sdb`,例如: ``` UUID=abcd1234 /data/1 ext4 defaults,noatime,nodiratime,nofail 0 0 ``` - **选项优先级**:`defaults` 包含默认选项(如 `rw`, `relatime`),需手动覆盖冲突项(如用 `noatime` 替代 `relatime`)。 - **系统兼容性**:`nofail` 适用于 systemd 系统,避免启动时因设备未就绪导致系统卡死[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值