欢迎分享,转载请注明来源:内存溢出
原文地址:https://blog.qzze.com/1347.html大多数文件系统都会保留一部分预留空间,而ext3、ext4也一样会存在一部分的预留空间,并且这部分的预留空间的大小能占到整块硬盘的5%,可以说占用的空间相当的大。 对于为什么预留这部分空间最核心的说法是预留空间主要是防止空间被占用时,root用户无法登录,一些系统相关的以root身份运行的进程没有足够的空间运行而导致系统崩溃,这种说法是单纯的对于系统盘来说,但还有一种说法是保留5%的预留空间是为了保证没有文件碎片设计的,所以不建议降低,当然网上还有很多别的说法,总体来说大家都一致认为非系统盘没必要保留这5%的空间,100G的数据盘可就少了5个G,没必要保留,我们就得研究下怎么把这部分预留空间给释放出来了。 对于这部分预留空间的释放我们首先要有root的权限,然后执行以下命令便能快速无损的释放预留空间了。 命令中的1是意思是设置预留空间为整块硬盘的1%,我个人更喜欢直接把这个参数改成0,那样就把预留空间给全部释放掉了,当然你也可以在格式化硬盘的时候去设置这个百分比。 这样在格式化的时候就把预留空间设置成了0%,也就是不保留预留空间,把预留空间全部释放掉了,当然还有种方法就是直接利用-r选项来设置预留空间为多少个磁盘块,例如可以直接设置预留空间为1000个磁盘块,我们可以执行下面的命令。 以上便是ext4系统预留空间的调整和释放的全部内容,不过既然文件系统全都有一部分的预留空间,那么他就肯定有存在的意义,在硬盘够用的情况下,还是建议大家保留这部分的预留空间。这个完全取决于 linux系统的 文件分区类型,比如 ext3 和ext4这两种文件分区类型,Ext3目前所支持的最大16TB文件系统和最大2TB文件,Ext4分别支持1EB的文件系统,以及16TB的文件。以下是Ext4和Ext3的特点和区别:Linuxkernel自2.6.28开始正式支持新的文件系统Ext4。Ext4是Ext3的改进版,修改了Ext3中部分重要的数据结构,而不仅仅像Ext3对Ext2那样,只是增加了一个日志功能而已。Ext4可以提供更佳的性能和可靠性,还有更为丰富的功能:1.与Ext3兼容。执行若干条命令,就能从Ext3在线迁移到Ext4,而无须重新格式化磁盘或重新安装系统。原有Ext3数据结构照样保留,Ext4作用于新数据,当然,整个文件系统因此也就获得了Ext4所支持的更大容量。2.更大的文件系统和更大的文件。较之Ext3目前所支持的最大16TB文件系统和最大2TB文件,Ext4分别支持1EB(1,048,576TB,1EB=1024PB,1PB=1024TB)的文件系统,以及16TB的文件。3.无限数量的子目录。Ext3目前只支持32,000个子目录,而Ext4支持无限数量的子目录。4.Extents。Ext3采用间接块映射,当 *** 作大文件时,效率极其低下。比如一个100MB大小的文件,在Ext3中要建立25,600个数据块(每个数据块大小为4KB)的映射表。而Ext4引入了现代文件系统中流行的extents概念,每个extent为一组连续的数据块,上述文件则表示为“该文件数据保存在接下来的25,600个数据块中”,提高了不少效率。5.多块分配。当写入数据到Ext3文件系统中时,Ext3的数据块分配器每次只能分配一个4KB的块,写一个100MB文件就要调用25,600次数据块分配器,而Ext4的多块分配器“multiblockallocator”(mballoc)支持一次调用分配多个数据块。6.延迟分配。Ext3的数据块分配策略是尽快分配,而Ext4和其它现代文件 *** 作系统的策略是尽可能地延迟分配,直到文件在cache中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,与前两种特性搭配起来可以显著提升性能。7.快速fsck。以前执行fsck第一步就会很慢,因为它要检查所有的inode,现在Ext4给每个组的inode表中都添加了一份未使用inode的列表,今后fsckExt4文件系统就可以跳过它们而只去检查那些在用的inode了。8.日志校验。日志是最常用的部分,也极易导致磁盘硬件故障,而从损坏的日志中恢复数据会导致更多的数据损坏。Ext4的日志校验功能可以很方便地判断日志数据是否损坏,而且它将Ext3的两阶段日志机制合并成一个阶段,在增加安全性的同时提高了性能。9.“无日志”(NoJournaling)模式。日志总归有一些开销,Ext4允许关闭日志,以便某些有特殊需求的用户可以借此提升性能。10.在线碎片整理。尽管延迟分配、多块分配和extents能有效减少文件系统碎片,但碎片还是不可避免会产生。Ext4支持在线碎片整理,并将提供e4defrag工具进行个别文件或整个文件系统的碎片整理。11.inode相关特性。Ext4支持更大的inode,较之Ext3默认的inode大小128字节,Ext4为了在inode中容纳更多的扩展属性(如纳秒时间戳或inode版本),默认inode大小为256字节。Ext4还支持快速扩展属性(fastextendedattributes)和inode保留(inodesreservation)。12.持久预分配(Persistentpreallocation)。P2P软件为了保证下载文件有足够的空间存放,常常会预先创建一个与所下载文件大小相同的空文件,以免未来的数小时或数天之内磁盘空间不足导致下载失败。Ext4在文件系统层面实现了持久预分配并提供相应的API(libc中的(posix_fallocate)),比应用软件自己实现更有效率。13.默认启用barrier。磁盘上配有内部缓存,以便重新调整批量数据的写 *** 作顺序,优化写入性能,因此文件系统必须在日志数据写入磁盘之后才能写commit记录,若commit记录写入在先,而日志有可能损坏,那么就会影响数据完整性。Ext4默认启用barrier,只有当barrier之前的数据全部写入磁盘,才能写barrier之后的数据。(可通过"mount-obarrier=0"命令禁用该特性。)以上希望能帮到你。呵呵
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
C语言中的清屏有什么作用那
上一篇
2023-04-07
linux查看硬件命令有哪些
下一篇
2023-04-07
评论列表(0条)