热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Debian中优化XFS文件系统

在Debian中优化XFS文件系统--Linux发行版技术-Debian信息,下面是详情阅读。
  首先,还是简单的说明一下为什么选择xfs文件系统。在Debian GNU/Linux系统中,就目前的情况,我们可以使用reiserfs,xfs,jfs等文件系统来代替ext3,它们都有一些很好的特性。

  我的思考,选择哪个文件系统,首先要考虑硬件的条件,重点是cpu的能力(单核还是多核,cache有多大),内存和硬盘的容量等等。自己的系统用什么文件系统,还是要自己实际的做一些测试和比较才好。而在软件方面,文件系统的性能和创建它时使用的参数和挂载时的参数选择是密切相关的,大多数的使用者,仅仅使用安装程序默认的参数创建和挂载某一个文件系统。

  所以,请大家一定注意我这篇文章中的软硬件条件。

  我的笔记本的硬件条件:
  CPU:T2450 L1指令缓冲/数据缓冲都是32KB,8-way;统一的L2是2MB,分段, 8-way
  内存:512+1 GB
  硬盘:120GB

  软件条件:
  Debian 4.0r1
  Linux Kernel: 2.6.22 (Debian源中的)
  xfsprogs: 我使用的是4.0r1的CD1来安装debian,而在此时的testing中版本是2.9.0-1

  比较文件系统的方法,大家可以从上面的那个链接中找到,也可以用bonnie++,我这里不是重点说那个的,所以略过,总之,我最终选择和xfs文件系统最为主要使用的,辅以ext3。

  如何改进xfs文件系统的性能,这里也有一个参考文档:Filesystem performance tweaking with XFS on Linux。我这里描述其中的原因和在安装Debian的时候要做的动作。

根据前面第二段的说明,我们必须要仔细阅读mkfs.xfs和mount关于xfs的manpages。

首先是mkfs.xfs的,重点是这几个:

-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?我不了解,所以我上面说要自己实际的测试一下。)

  -d agcount=4 :默认值是根据容量自动设置的。可以设置成1/2/4/16等等,这个参数可以调节对CPU的占用率,值越小,占用率越低。这是理论上的,在我的机器上,agcount=1反而比agcount=2的cpu占用率还高,我想这是因为我的cpu是双核的原因吧。要注意,cpu的占用率低,那每一秒处理的数据量也会降低一些。我比较了agcount=2和4,发现还是4比较好。这样一来,这个参数的设置,就是需要自己去选择的了。

  其次,是mount时候的挂载选项:
  noatime : 这个挂载选项,是许多文件系统都要用的。
  logbufs=8 : 这个选项需要大内存的支持,它也能整体提高xfs的性能。

OK,接下去的就是如何在安装Debian的时候的动作了。

我用debian 4.0r1 CD1刻光盘安装,一路进入到分区程序的部分,注意两点:

1,在选择分区的文件系统格式为xfs后,同时选择挂载参数noatime,这省的以后修改fstab。

2,做完设定后,还没有真实的格式化硬盘,如果直接下一步“分区设定结束并将修改写入硬盘”,安装程序会自动格式化并且自动挂载,下一步是设置时区,这会造成许多麻烦。幸好,我使用了lvm,这样,就在“磁盘分区”的界面上多出一个“配置逻辑卷管理器”,进入它,会首先提示格式化刚才设定的分区,照做,然后分配好逻辑卷,退出到“磁盘分区”的界面。

使用Alt+F2,切换出安装程序的控制台,一个busybox,提供mkfs.xfs的命令,这样,我们就可以重新用新的参数创建xfs分区了,命令示例如下:

mkfs.xfs -f -i size=512 -l size=128m -d agcount=4 /dev/debian/root

  其中/dev/debian/root,debian是建立的逻辑卷组的名字,root是逻辑卷的名字,这个区显然会挂载到/下。对于逻辑卷lvm的使用,我另外写文档说明。

  这样一来,当Alt+F1切换回安装界面后,可以立刻"分区设定结束并将修改写入硬盘",安装程序就不会再格式化分区,而是加载我们自己重新格式化后的分区。

  然后完成安装。因为busybox并没有提供xfsprogs(我们需要xfs_info),所以我们只能在安装好基本系统后查看。

  从上面的xfs_info的输出,我们可以清晰地看到isize=512, agcount=4, 而bsize=4096 x blocks=32768 /2^20 正好是128

  上面是/etc/fstab中内容的片断。

  SO,到这里,就做完了所有的事情。Good Luck! and Enjoy it。
推荐阅读
  • Ubuntu简介Ubuntu(乌班图)是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在” ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Linux神奇漏洞:长按回车键70秒 即可轻松拿到Root权限
    一般来说获取系统root权限是很困难的,尤其是加密系统中,但西班牙安全研究员hectormarco、ismaelripoll发现,linux系统下只需按住回车键70秒钟,就能轻 ... [详细]
  • 如何监控 Linux 服务器状态?,分享
    Linux服务器我们天天打交道,特别是Linux工程师更是如此。为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展。本文介绍的几个命令,不仅仅适用于 ... [详细]
  • 主流操作系统简介
    主流操作系统简介子墨居士操作系统理论定义为管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分࿰ ... [详细]
  • 一、安装软件包dig和nslookup需要安装相关软件包。Centos:yuminstallbind-utilsDebian:apt-getupdate ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
author-avatar
众神痴梦_325
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有