`
izuoyan
  • 浏览: 8939402 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Linux文件系统性能优化

阅读更多

由于各种的I/O负载情形各异,Linux系统中文件系统的缺省配置一般来说都比较中庸,强调普遍适用性。然而在特定应用下,这种配置往往在I/O性能方面不能达到最优。因此,如果应用对I/O性能要求较高,除了采用性能更高的硬件(如磁盘、HBA卡、CPU、MEM等)外,我们还可以通过对文件系统进行性能调优,来获得更高的I/O性能提升。总的来说,主要可以从三个方面来做工作:

1、Disk相关参数调优

2、文件系统本身参数调优

3、文件系统挂载(mount)参数调优

当然,负载情况不同,需要结合理论分析与充分的测试和实验来得到合理的参数。下面以SAS(Serial attached SCSI)磁盘上的EXT3文件系统为例,给出Linux文件系统性能优化的一般方法。请根据自身情况作适合调整,不要生搬硬套。

1、Disk相关参数

1.1 Cache mode:启用WCE=1(Write Cache Enable), RCD=0(Read Cache Disable)模式

sdparm -s WCE=1, RCD=0 -S /dev/sdb

1.2 Linux I/O scheduler算法

经过实验,在重负载情形下,deadline调度方式对squidI/O负载具有更好的性能表现。其他三种为noop(fifo), as, cfq,noop多用于SAN/RAID存储系统,as多用于大文件顺序读写,

cfq适于桌面应用。

echo deadline > /sys/block/sdb/queue/scheduler

1.3 deadline调度参数

对于redhat linux建议 read_expire = 1/2 write_expire,对于大量频繁的小文件I/O负载,应当这两者取较小值。更合适的值,需要通过实验测试得到。

echo 500 > /sys/block/sdb/queue/iosched/read_expire

echo 1000 > /sys/block/sdb/queue/iosched/write_expire

1.4 readahead 预读扇区数

预读是提高磁盘性能的有效手段,目前对顺序读比较有效,主要利用数据的局部性特点。比如在我的系统上,通过实验设置通读256块扇区性能较优。

blockdev --setra 256 /dev/sdb

2、EXT3文件系统参数

2.1 block size = 4096 (4KB)

mkfs.ext3 -b指定,大的数据块会浪费一定空间,但会提升I/O性能。EXT3文件系统块大小可以为1KB、2KB、4KB。

2.2 inode size

这是一个逻辑概念,即一个inode所对应的文件相应占用多大物理空间。mkfs.ext3 -i指定,可用文件系统文件大均值来设定,可减少磁盘寻址和元数据操作时间。

2.3 reserved block

mkfs.ext3 -m指定,缺省为5%,可调小该值以增大部分可用存储空间。

2.4 disable journal

对数据安全要求不高的应用(如web cache),可以关闭日志功能,以提高I/O性能。

tune2fs -O^has_journal /dev/sdb

3、mount参数

3.1 noatime, nodirtime

访问文件目录,不修改访问文件元信息,对于频繁的小文件负载,可以有效提高性能。

3.2 async

异步I/O方式,提高写性能。

3.3 data=writeback (if journal)

日志模式下,启用写回机制,可提高写性能。数据写入顺序不再保护,可能会造成文件系统数据不一致性,重要数据应用慎用。

3.4 barrier=0 (if journal)

barrier=1,可以保证文件系统在日志数据写入磁盘之后才写commit记录,但影响性能。重要数据应用慎用,有可能造成数据损坏。

4、小结

以/dev/sdb为例,优化操作方法如下,参数请自行调整。

sdparm -s WCE=1, RCD=0 -S /dev/sdb

echo deadline > /sys/block/sdb/queue/scheduler

echo 500 > /sys/block/sdb/queue/iosched/read_expire

echo 1000 > /sys/block/sdb/queue/iosched/write_expire

blockdev --setra 256 /dev/sdb

mkfs.ext3 -b 4096 -i 16384 -m 2 /dev/sdb1

tune2fs -O^has_journal /dev/sdb1

mount /dev/sdb1 /cache1 -o defaults,noatime,nodirtime,async,data=writeback,barrier=0 (if with journal)

mount /dev/sdb1 /cache1 -o defaults,noatime,nodirtime,async (if without journal)

分享到:
评论

相关推荐

    基于Linux的大容量Yaffs文件系统性能优化与实现.pdf

    基于Linux的大容量Yaffs文件系统性能优化与实现.pdf

    linux 下tcp参数优化

    linux 文件系统 网络性能 参数优化 linux 文件系统 网络性能 参数优化 linux 文件系统 网络性能 参数优化

    emmc 文件系统优化

    关于emmc存储设备上文件系统的调整和优化,对于提升android应用程序性能帮助很大。

    Linux_NFS服务器性能优化.doc

    NFS是网络文件系统(Network File System)的简称,是分布式计算系统的一个组成部分,可实现在异种网络上共享和装配远程文件系统。NFS由Sun公司开发,目前已经成为文件服务的一 种标准(RFC1904,RFC1813)。其最大...

    Linux操作系统性能监测:CPU篇

    要想监测和理解 CPU 的性能需要知道一些的操作系统的基本知识,比如:中断、进程调度、进程上下文切换、可运行队列等。这里 VPSee 用个例子来简单介绍一下这些概念和他们的关系,CPU 很无辜,是个任劳任怨的打工仔,...

    Linux-IO性能优化基础工具和实践

    Linux-IO性能优化基础工具和实践: 基础篇-Linux IO stack overview ...实践篇-IO性能优化之文件压缩 实践篇-IO性能优化之short stroking 实践篇-IO性能优化之减小元数据写入 实践篇-IO性能优化之SSD减少机械盘的IOPS

    Linux性能优化之IO子系统

    本文介绍了对LinuxIO子系统性能进行优化时需要考虑的因素,以及一些IO性能检测工具。本文的大部分内容来自IBMRedbook-LinuxPerformanceandTuningGuidelines文件系统是内核的功能,是一种工作在内核空间的软件,访问...

    linux-操作系统优化方案.doc

    下边将分四部分介绍在Red Hat Enterprise Linux AS和SUSE LINUX Enterprise Server系统下,如何用以下几种技巧进行性能的优化: 1、Disabling daemons (关闭 daemons) 2、Shutting down the GUI (关闭GUI) 3、...

    Linux服务器性能调优

    ·优化linux系统的调度器、内存、i/o、文件系统和网络 ·对运行商业工作负荷的web、文件、数据库,及应用服务器进行调优 ·预测调整参数或配置信息的变化所产生的影响 ·调整linux代码:对设计、定时

    优化Linux系统的硬盘解决磁盘碎片化

    Linux文件系统减少了碎片 化,但是并没有消除。由于它不经常出现,所以对于一个单用户的工作站来说,可能根本不是问题。然而在繁忙的服务器中,随着时间的过去,文件碎片化将降低硬 盘性能,硬盘性能只有从硬盘读出...

    linux 64位只读文件系统 romfs64

    linux 64位只读文件系统 内核 2.6.32, 其它内核可能需要相应调整 扩展:从32位到64位 提高文件读取效率。 优化方式: 文件节点读入内存,采用数组管理,实现对分搜索,hash 搜索 性能不是很完美,仅供参考

    linux服务器优化.pdf

    linux服务器 优化

    cpp-BinaryOptimizationandLayoutTool用于优化二进制文件性能的Linux命令行工具

    Binary Optimization and Layout Tool - 用于优化二进制文件性能的Linux命令行工具

    有效优化Linux防文件碎片降低硬盘性能.pdf

    有效优化Linux防文件碎片降低硬盘性能.pdf

    如何优化Linux服务器硬盘性能实用技巧

    Linux文件系统减少了碎片化,但是并没有消除。由于它不经常出现,所以对于一个单用户的工作站来说,可能根本不是问题。然而在繁忙的服务器中,随着时间的过去,文件碎片化将降低硬盘性能,硬盘性能只有从硬盘读出或...

    Linux中XFS文件系统的使用及创建方法 (1)

    传输特性,XFS文件系统采用优化算法,日志记录对整体文件操作影响非常小。可扩展性,XFS 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间。传输带宽,XFS能以接近裸设备I/O的性能存储数据。

Global site tag (gtag.js) - Google Analytics