`
nlslzf
  • 浏览: 1048682 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

需要同时设置 noatime 和 nodiratime 吗?

 
阅读更多

http://www.vpsee.com/2010/04/no-need-to-set-noatime-and-nodiratime-at-the-same-time/

相信对性能、优化这些关键字有兴趣的朋友都知道在 Linux 下面挂载文件系统的时候设置 noatime 可以显著提高文件系统的性能。默认情况下,Linux ext2/ext3 文件系统在文件被访问、创建、修改等的时候记录下了文件的一些时间戳,比如:文件创建时间、最近一次修改时间和最近一次访问时间。因为系统运行的时候要访问大量文件,如果能减少一些动作(比如减少时间戳的记录次数等)将会显著提高磁盘 IO 的效率、提升文件系统的性能。Linux 提供了 noatime 这个参数来禁止记录最近一次访问时间戳。

给文件系统挂载的时候加上 noatime 参数能大幅提高文件系统性能:

# vi /etc/fstab

/dev/sda1        /             ext3     defaults,noatime,errors=remount-ro 0 0
devpts           /dev/pts      devpts   gid=5,mode=620             0 0
proc             /proc         proc     defaults                   0 0
/dev/sda2        swap          swap     defaults,noatime           0 0

修改设置后只需要重新挂载文件系统、不需要重启就可以应用新设置:

# mount -o remount /

# mount
/dev/sda1 on / type ext3 (rw,noatime,errors=remount-ro)
proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

网上很多资料都提到要同时设置 noatime 和 nodiratime,不知道这个结论来自哪里,其实不需要像设置 noatime 那样设置 nodiratime,最可靠的资料应该是源代码,VPSee 查了一下源代码,发现在内核源代码 linux-2.6.33/fs/inode.c 文件里有一个 touch_atime 函数,可以看出如果 inode 的标记位是 NOATIME 的话就直接返回了,根本就走不到 NODIRATIME 那里去,所以只设置 noatime 就可以了,不必再设置 nodiratime.

void touch_atime(struct vfsmount *mnt, struct dentry *dentry)
1405{
1406        struct inode *inode = dentry->d_inode;
1407        struct timespec now;
1408
1409        if (inode->i_flags & S_NOATIME)
1410                return;
1411        if (IS_NOATIME(inode))
1412                return;
1413        if ((inode->i_sb->s_flags & MS_NODIRATIME) && S_ISDIR(inode->i_mode))
1414                return;
1415
1416        if (mnt->mnt_flags & MNT_NOATIME)
1417                return;
1418        if ((mnt->mnt_flags & MNT_NODIRATIME) && S_ISDIR(inode->i_mode))
1419                return;
...
1435}
分享到:
评论

相关推荐

    Arch-Linux-personal-tweaks-collection:我的 eeepc 1011px 个人 Arch Linux 调整集

    tmp) 须藤纳米 /etc/fstab 在文件末尾添加: /var/log /var/log tmpfs defaults,noatime,nodiratime,mode=0755 0 0/var/tmp /var/tmp tmpfs defaults,noatime,nodiratime,mode=1777 0 0/tmp /tmp tmpfs defaults,...

    MySQL数据库优化实践

    同时,挂载选项如noatime、nodiratime、nikeep和nobarrier等能减少不必要的写操作,提高性能。 总之,MySQL数据库的优化是一个综合性的过程,涉及到硬件、操作系统和文件系统的多个层面。通过对这些方面进行精细化...

    比较全面的MySQL优化参考.pdf

    在文件系统层,使用deadline或noop I/O调度器,避免使用cfq调度器,同时使用xfs文件系统,并在挂载时添加noatime, nodiratime, nobarrier参数。其他内核参数优化包括调整vm.swappiness以降低swap使用概率,设置vm....

    Linux内核配置与文件系统的优化方法研究

    2. **挂载参数调整**:在挂载文件系统时,可以设置noatime、nodiratime来减少更新访问时间的开销,或者启用barrier=0以提高写入性能,但可能牺牲数据一致性。 3. **文件系统维护**:定期进行fsck检查和碎片整理,...

    MySQL的通用优化方法

    文件系统挂载参数应包括noatime, nodiratime, nobarrier,以减少不必要的写操作。此外,调整内核参数如vm.swappiness、vm.dirty_background_ratio和vm.dirty_ratio,可以减少swap的使用并保持磁盘I/O的稳定。设置...

    可以帮助大家了解热备份的一些相关信息

    数据分区使用noatime和nodiratime选项,减少不必要的文件读写,提高IO性能。为增强数据安全性,可以采用RAID 10磁盘分区。 存储规划涉及数据库和文件的布局。例如,黑白名单数据可以存储为二进制文件,提高加载速度...

    如何构建高性能MySQL系统.docx

    使用noatime和nodiratime选项可以避免不必要的元数据更新,提高性能。开启trim功能对于SSD设备能有效延长寿命。对于barrier选项,关闭它可以在某些情况下提升写入速度,但可能牺牲一定的数据安全性。 MySQL的配置...

    es 5.4.3版本及一键配置脚本

    4. **文件系统类型**:推荐使用高性能的文件系统,如 XFS 或 ext4,并启用 noatime 和 nodiratime 选项以减少磁盘 I/O。 总结,Elasticsearch 5.4.3 的部署涉及多方面的工作,包括选择合适的硬件环境、系统配置、...

    hypervisor-zram-root:管理程序友好的根 fs 设置 - 在内存中,压缩,可快照

    管理程序-zram-root 用于从可逻辑卷 (LV) 启动根文件系统的配置文件,卷组 (VG) 位于。...o defaults,data=writeback,noatime,nodiratime,rw /dev/sdf1 /mnt/debiandebootstrap --arch=amd64 --include=vim,vlan,b

    Linux安全和优化

    3. **文件系统优化**:选择适合工作负载的文件系统如ext4、XFS或Btrfs,合理设置挂载选项,如noatime、nodiratime减少磁盘I/O。 4. **进程调度**:理解nice和renice命令,调整进程优先级,平衡系统资源分配。 5. *...

    LinuxFileSystems

    集群文件系统支持多台计算机同时访问和修改同一份数据,提高了可用性和性能。 - **DLM(分布式锁管理器)**:用于协调集群中对资源的访问。 ##### 分布式文件系统 分布式文件系统将数据分布在多台机器上,提高可...

    Android 如何执行shell脚本.doc

    mount -t yaffs2 -o remount,rw,noatime,nodiratime /dev/mtdblock0 /system ``` 这将将 `/system` 目录的权限修改为读写模式。 修改 shell 文件的权限 现在,我们需要修改 shell 文件的权限,使其可以执行。我们...

    linux优化配置总结

    优化包括挂载选项的设置,如noatime、nodiratime减少磁盘写入,barrier=0提升写入速度但可能影响数据一致性。 3. **网络调优**:网络性能优化涉及TCP/IP堆栈的参数调整,如增加`net.core.somaxconn`提升并发连接...

    RedHat_Enterprice_Linux_Server_5_X64上安装Oracle_10G_R2_RAC安装指南

    创建适当的挂载点并设置合适的文件系统选项,如`noatime`和`nodiratime`,以减少磁盘I/O。 此外,网络配置也是RAC安装的重要部分,包括心跳网络和公共网络的设置,以确保节点间通信的稳定性和数据的同步。安装...

    hadoop培训.pptx

    设置`noatime`和`nodiratime`属性可以避免不必要的文件时间戳更新,提升文件系统的性能,特别是对于大量文件操作的场景。预读缓冲区(readahead buffer)的调整能优化顺序读取文件的速度,但需要注意适度,过大反而...

    Tuning and Customizing a Linux System.rar

    例如,可以通过调整挂载选项(如noatime、nodiratime)减少磁盘I/O,或者通过设置预读和写后缓存策略来提高读写速度。 3. **网络调优**:包括TCP/IP栈参数调整、网络接口配置和路由策略优化。例如,修改...

    Linux系统中提高文件系统的使用效率

    5. 优化挂载选项:在挂载文件系统时,可以调整一些选项,如noatime、nodiratime减少更新访问时间戳的开销。 6. 定期进行文件系统碎片整理:长时间运行的系统可能会产生大量文件碎片,影响读写速度,定期进行碎片整理...

    Linux系统优化与安全

    优化包括设置合适的文件系统挂载选项,如noatime、nodiratime减少磁盘I/O,以及定期进行文件系统检查和碎片整理。 3. **内存管理**:通过调整swappiness值控制虚拟内存的使用,以平衡内存交换与性能。此外,合理...

    Nativesd教程

    然后,挂载SD卡上的第一个分区(即NativeSD分区),设置为`noatime nodiratime barrier=0`以优化性能。接着,使用`mount --bind`命令将NativeSD分区中的/system和/data目录绑定到系统原有位置,实现系统和数据的...

    CDH5集群部署指南

    - 挂载数据盘时,必须使用 `noatime` 和 `nodiratime` 选项,以减少磁盘I/O操作。 #### 三、系统环境配置 **配置网络名称** - 每台主机都需要配置唯一的主机名。 - 使用 `hostnamectl set-hostname <hostname>` ...

Global site tag (gtag.js) - Google Analytics