网上搜集的xfs文件系统优化方案,自己做个小结。
先贴出优化前后的对比,只是简单的用dd命令测试了一下而已,不怎么专业。写和读的文件为内存2倍。
优化前:
#写性能
[root@sapling ~]# dd if=/dev/zero of=/data/test bs=8M count=1000
1000+0 records in
1000+0 records out
8388608000 bytes (8.4 GB) copied, 172.835 seconds, 48.5 MB/s
#读性能
[root@sapling ~]# dd if=/data/test of=/dev/null bs=8M count=1000
1000+0 records in
1000+0 records out
8388608000 bytes (8.4 GB) copied, 89.7978 seconds, 93.4 MB/s
优化后:
#写性能
[root@sapling ~]# dd if=/dev/zero of=/DaTa/test bs=8M count=1000
1000+0 records in
1000+0 records out
8388608000 bytes (8.4 GB) copied, 70.1252 seconds, 120 MB/s
#读性能
[root@sapling ~]# dd if=/DaTa/test of=/dev/null bs=8M count=1000
1000+0 records in
1000+0 records out
8388608000 bytes (8.4 GB) copied, 47.0801 seconds, 178 MB/s
先是格式化xfs分区mkfs.xfs的参数(你也可以只设置-i size=512,其他会根据分区大小自动选择):
mkfs.xfs -f -i size=512 -l size=128m,lazy-count=1 -d agcount=16 /dev/sdb1
-i size=512 : 默认的值是256KB,这里的设置是为了selinux的,这个设置针对inode size,selinux使用xfs的Extend Attribute,首先要写到inode中,如果容量不够(默认是256KB的时候就不够,刚刚多一点点),就写到block中,这会损失性能,当需要使用selinux的时候。这似乎对一般用户没什么作用,因为一般用户都不用selinux的,大家对linux系统的安全性还是挺信任的,不过,说实话,我不信任,况且RedHat 的FC已经默认配置了selinux,这很好。做了这个改动,方便以后我在系统中配置selinux而不担心性能的损失。
-l size=128m :注意是小写的m,不是大写的。默认值的是10m(bsize=4096 x blocks=2560)。这个值可以设置成32m(分区容量不小于250M)/64m(分区容量不小于500M)/128m(分区容量不小于700M),对于分区容量的限制,我这里列出的只是大概,最大可设128m。修改这个参数成128m,可以显著的提高xfs文件系统删除文件的速度,当然还有其它,如拷贝文件的速度。 这个参数需要大内存的支持,内存太少的机器大概不能设置这么高。(标准是什么?512M?1G?我不了解,所以我上面说要自己实际的测试一下。)
-l lazy-count=value
This changes the method of logging various persistent counters in the superblock. Under metadata intensive workloads, these counters are updated and logged frequently enough that the superblock updates become a serialisation point in the filesystem. The value can be either 0 or 1.
With lazy-count=1, the superblock is not modified or logged on every change of the persis-tent counters. Instead, enough information is kept in other parts of the filesystem to be able to maintain the persistent counter values without needed to keep them in the superblock. This gives significant improvements in performance on some configurations. The default value is 0 (off) so you must specify lazy-count=1 if you want to make use of this feature.
-d agcount=4 :默认值是根据容量自动设置的。可以设置成1/2/4/16等等,这个参数可以调节对CPU的占用率,值越小,占用率越低。这是理论上的,在我的机器上,agcount=1反而比agcount=2的cpu占用率还高,我想这是因为我的cpu是双核的原因吧。要注意,cpu的占用率低,那每一秒处理的数据量也会降低一些。我比较了agcount=2和4,发现还是4比较好。这样一来,这个参数的设置,就是需要自己去选择的了。
然后是mount的xfs选项(关键参数nobarrier):
vi /etc/fstab
#修改挂载选项
/dev/sdb1 /data xfs defaults,noatime,nobarrier 0 0
#重新挂载
mount -o remount /data
nobarrier
Many hardware RAID have a persistent write cache which preserves it across power failure, interface resets, system crashes, etc. Using write barriers in this instance is not recommended and will in fact lower performance. Therefore, it is recommended to turn off the barrier support and mount the filesystem with "nobarrier". But take care about the hard disk write cache, which should be off.
noatime 默认的方式下linux会把文件访问的时间atime做记录,这在绝大部分的场合都是没有必要的,如果遇到机器IO负载高或是CPU WAIT高的情况,可以尝试使用noatime,疗效好,见效快。
logbufs=value
Set the number of in-memory log buffers. Valid numbers range from 2-8 inclusive. The default value is 8 buffers for filesystems with a blocksize of 64K, 4 buffers for filesystems with a blocksize of 32K, 3 buffers for filesystems with a blocksize of 16K, and 2 buffers for all other configurations. Increasing the number of buffers may increase performance on some workloads at the cost of the memory used for the additional log buffers and their associated control structures.
logbsize=value
Set the size of each in-memory log buffer. Valid sizes are 16384 (16K) and 32768 (32K). The default value for machines with more than 32MB of memory is 32768, machines with less memory use 16384 by default.
分享到:
相关推荐
### XFS 文件系统知识点 ...通过以上详细解析,我们可以了解到 XFS 文件系统内部结构复杂且高度优化,旨在提供高性能和可靠性的同时保持灵活性。这些特性使 XFS 成为了许多现代操作系统的首选文件系统之一。
### MySQL搭配XFS文件系统的优势解析 #### 一、引言 随着信息技术的快速发展,数据库管理系统(DBMS)作为数据管理的核心工具,在企业级应用中扮演着至关重要的角色。MySQL作为一款广泛使用的开源关系型数据库管理...
### XFS 文件系统 LVM 根分区扩容详解 #### 一、引言 在服务器运维过程中,随着数据量的增长或应用需求的变化,经常会遇到需要扩展文件系统存储空间的情况。Linux 系统中提供了多种文件系统类型,其中 XFS 作为一...
配置和挂载XFS文件系统有明确的步骤和命令,用户可以根据需求选择合适的选项。 五、XFS的维护与优化 为了保持XFS的最佳性能,需要定期进行检查和维护,如使用xfs_repair进行修复,使用xfs_growfs进行在线扩容。同时...
至于与Visual C++的交互,虽然XFS是Linux下的文件系统,但开发者可以使用C或C++接口(如POSIX API)在Linux环境中编写应用程序来操作XFS文件系统。Visual C++可以作为开发工具,生成可以在Linux环境下运行的代码,...
传输特性:XFS文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS查询与分配存储空间非常快。xfs文件系统能连续提供快速的反应时间。笔者曾经对XFS、JFS、Ext3、ReiserFS文件系统进行过测试,XFS文件文件...
这个名为“XFS_setup_302”的压缩包可能包含了用于安装或配置XFS文件系统的工具或者指南。 XFS文件系统最初由Silicon Graphics, Inc.(SGI)开发,设计目标是提供高吞吐量、低延迟的文件操作。它支持大文件(最大可...
XFS文件系统的特点包括以extent为基础的存储方式和延迟分配策略,最大文件系统和单个文件大小分别可达16EiB(艾字节)和8EiB。它支持从512字节到64KB不等的可变块大小,同时具备冻结/解冻(xfs_freeze)功能以支持...
总的来说,`xfs_conf.dll`、`xfs_supp.dll`和`msxfs.dll`是wosa在Windows环境下支持XFS文件系统所必需的动态链接库,它们共同构成了对XFS文件系统的完整支持框架,确保了wosa在处理XFS文件系统任务时的稳定性和效率...
- 这个文件可能与XFS文件系统有关,XFS是一种高性能、日志式的文件系统,广泛用于Linux环境,提供大规模数据存储解决方案。 - 在Windows中,可能是一个模拟或兼容层的一部分,使得Windows可以支持XFS格式的磁盘或...
**文件系统优化** 文件系统的优化主要涉及以下几点: 1. **选择合适的文件系统**:EXT4、XFS、Btrfs等都有各自的特点。EXT4适合大多数通用场景,XFS适合大数据和高I/O应用,而Btrfs支持快照和数据冗余,适合有高...
本文档“XFS Filesystem Structure”详细阐述了XFS文件系统在磁盘上的结构和工作原理,为理解和使用XFS提供了深入的见解。 1. 引言 在1.1章节中,文档通常会介绍XFS的基本概念,包括其设计目标、主要特点和适用场景...
《XFS文件系统数据恢复详解——以"Raise Data Recovery for XFS"为例》 在数字化时代,数据的重要性不言而喻。尤其对于依赖于Linux操作系统的企业和个人用户来说,XFS文件系统因其高效、稳定和可扩展性而广受欢迎。...
**XFS文件系统详解** XFS,全称eXtended File System,是SGI公司开发的一款高性能、日志型的文件系统。XFS在Linux内核中被广泛使用,因其出色的性能、可扩展性和可靠性而备受赞誉。本文将深入探讨XFS的主要特性和在...
标题 "dqblk_xfs.rar_XFS Manager" 指向的是一个与XFS文件系统管理相关的资源,特别是关于磁盘配额(Disk Quota)的管理。描述中提到的 "Disk quota - quotactl(2) commands for the XFS Quota Manager (XQM)" 提示...
通过深入学习"SNMP_MIB-XFS扩展协议"这份文档,网络管理员不仅可以掌握如何利用SNMP监控和管理XFS文件系统,还能了解如何优化存储资源,预防和解决可能出现的问题,从而提高整个网络环境的稳定性和效率。这份文档...
这些文档可能涵盖了如何创建和格式化XFS文件系统,如何调整系统参数以优化性能,以及如何使用工具如xfs_info、xfs_growfs等进行监控和维护。此外,还可能包含故障排除步骤和最佳实践建议。 对于IT专业人员来说,...