网上搜集的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.
分享到:
相关推荐
实训商业源码-抽奖模块V2.4.4 开源版-毕业设计.zip
实训商业源码-酷炫小程序相册V4.7.0 前端+后端-毕业设计.zip
实训商业源码-QQ域名防报毒网站程序PHP源码 带后台-毕业设计.zip
实训商业源码-便利店小程序 1.0.9-毕业设计.zip
实训商业源码-H5手机转盘活动游戏页面源码-毕业设计.zip
实训商业源码- 视频小店V1.0.4 原版-毕业设计.zip
实训商业源码-仿B站风格视频影视电影网站源码-毕业设计.zip
实训商业源码-C风格门户版1.1 UTF8+GBK-毕业设计.zip
scratch少儿编程逻辑思维游戏源码-星尘.zip
实训商业源码-酷炫小程序相册 4.5.8-毕业设计.zip
scratch少儿编程逻辑思维游戏源码-一天,一生.zip
scratch少儿编程逻辑思维游戏源码-线路关闭.zip
内容概要:本文详细介绍了如何利用MATLAB/Simulink搭建独立运行的光伏混储微电网系统。主要内容涵盖光伏的最大功率点跟踪(MPPT)控制方法,尤其是扰动观察法(P&O)的具体实现及其优化技巧;混合储能系统的功率分配策略,包括采用低通滤波器将功率需求分为低频和高频分量分别由蓄电池和超级电容承担;以及针对不同储能元件的特殊控制措施,如蓄电池的充放电效率补偿和超级电容的限流保护。此外,还讨论了仿真调试过程中的常见问题及解决方案,强调了各子系统的协同工作对于整个系统稳定性的重要意义。 适合人群:从事电力电子、新能源发电领域的研究人员和技术人员,尤其适用于有一定MATLAB/Simulink基础并对光伏混储微电网感兴趣的读者。 使用场景及目标:帮助读者掌握光伏混储微电网的设计与实现方法,特别是在MATLAB/Simulink环境下进行系统建模、仿真和优化的能力。通过学习本文提供的具体案例和技术细节,能够更好地理解和解决实际工程中遇到的问题。 其他说明:文中提供了大量实用的代码片段和调试经验,有助于加深对理论知识的理解并提高动手能力。同时提醒读者关注各个组件之间的相互影响,确保系统整体性能最优。
【低空经济】低空人工智能调度中心建设方案
coneypo_ML_handwritten_number_21976_1746366665585.zip
scratch少儿编程逻辑思维游戏源码-足球传送门.zip
scratch少儿编程逻辑思维游戏源码-诅咒大厦.zip
内容概要:本文详细介绍了二进制比较器的设计原理与实现方法。文章首先讲解了二进制比较器的基本概念,包括32位数字比较器的原理图绘制方法。文中提到可以使用二进制比较芯片(如74LS85)组合实现大于、等于、小于的功能,其中不等是通过大于和小于的或逻辑并归实现,大于则是芯片固有的功能,小于等于则是等于和小于的或逻辑并归。对于门电路合成,文章提到了使用74LS04D+08+86等元件组成一位二进制比较器,但指出位数增加会使逻辑变得复杂,不推荐自行合成。此外,还介绍了2位二进制比较器的工作原理,当高位不同时无需比较低位,只有当高位相同时才需要比较低位。最后,文章讨论了集成数值比较器74LS85的功能及其位数扩展方式,包括串联和并联两种扩展方法。 适合人群:具有一定的数字电路基础,对二进制比较器感兴趣的电子工程学生或工程师。 使用场景及目标:①理解二进制比较器的基本原理和工作方式;②掌握二进制比较器的硬件实现方法,特别是如何利用现有芯片构建多位比较器;③学习如何通过逻辑门电路实现简单的二进制比较功能。 阅读建议:读者在学习过程中应结合实际电路图和逻辑表达式进行理解和验证,特别是对于不同位数的二进制比较器,可以通过实际搭建电路来加深理解。
实训商业源码-PHP短网址生成系统-毕业设计.zip
内容概要:本文详细介绍了如何使用LabVIEW通过CIP协议与欧姆龙PLC进行高效的TCP网口通讯。相比传统的Fins协议,CIP协议提供了更为简便和高效的通信方式,适用于多种数据类型的读写操作,包括自定义变量、字符串、数值类型(如I16、I32、Float、Double)、数组以及布尔类型。文中不仅展示了具体的LabVIEW VI函数及其使用方法,还提供了实际测试数据和性能对比,证明了CIP协议在响应速度、带宽利用率等方面的优势。此外,文章还分享了一些实用技巧和注意事项,帮助开发者避免常见错误并提高开发效率。 适合人群:从事工业自动化控制领域的工程师和技术人员,尤其是熟悉LabVIEW和欧姆龙PLC的用户。 使用场景及目标:① 实现LabVIEW与欧姆龙PLC之间的高效通信;② 提升数据传输的速度和稳定性;③ 简化复杂的数据类型处理过程;④ 避免传统Fins协议带来的繁琐地址转换。 其他说明:文章附带了完整的源码和多个典型应用场景,便于读者快速上手实践。同时,强调了在实际应用中需要注意的一些细节,如PLC端配置、标签命名规则等。