磁盘有剩余空间,但是使用了是100%

大多数文件系统都会保留一部分空间留作紧急情况时用(比如硬盘空间满了),这样能保证有些关键应用(比如数据库)在硬盘满的时候有点余地,不致于马上就 crash,给监控系统和管理员一点时间去察觉。不过有时候这部分预留的硬盘空间不用的话有点浪费。如何释放这部分系统预留的空间呢?

在 Linux ext2/ext3/ext4 文件系统上通常默认预留5%的硬盘空间,如果硬盘是 4TB 的话就意味着有 200GB 的空间就这样浪费了,我们可以通过 tune2fs 来改变5%的默认设置,比如只预留1%的空间。可不可以设成0%呢?当然可以,但是不推荐。

调整 /dev/sdd1,只预留1%的空间:

# tune2fs -m 1 /dev/sdd1
tune2fs 1.41.12 (17-May-2010)
Setting reserved blocks percentage to 1% (2684381 blocks)

调整后检查数据如下:

问题发生的时候:

[[email protected] ~]#df -Th

Filesystem                   Type   Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root ext4    75G  2.1G   69G   3% /

tmpfs                        tmpfs   16G     0   16G   0% /dev/shm

/dev/sda1                    ext4   485M   33M  427M   8% /boot

/dev/sdb1                    ext4   3.0T  2.8T  126G  100% /opt

[[email protected] ~]#tune2fs  -l /dev/sdb1

tune2fs 1.41.12 (17-May-2010)

Filesystem volume name:   <none>

Last mounted on:          /opt

Filesystem UUID:          5886b7c0-2301-4d20-a009-a5be5ccd30bb

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

Filesystem flags:         signed_directory_hash

Default mount options:    (none)

Filesystem state:         clean

Errors behavior:          Continue

Filesystem OS type:       Linux

Inode count:              201326592

Block count:              805306359

Reserved block count:     8053063  ##保留块

Free blocks:              644464000

Free inodes:              201325541

First block:              0

Block size:               4096

Fragment size:            4096

Reserved GDT blocks:      832

Blocks per group:         32768

Fragments per group:      32768

Inodes per group:         8192

Inode blocks per group:   512

Flex block group size:    16

Filesystem created:       Fri Sep 23 00:55:38 2016

Last mount time:          Thu Oct 27 13:51:01 2016

Last write time:          Mon Apr 10 09:58:45 2017

Mount count:              4

Maximum mount count:      38

Last checked:             Fri Sep 23 00:55:38 2016

Check interval:           15552000 (6 months)

Next check after:         Wed Mar 22 00:55:38 2017

Lifetime writes:          18 TB

Reserved blocks uid:      0 (user root)

Reserved blocks gid:      0 (group root)

First inode:              11

Inode size:               256

Required extra isize:     28

Desired extra isize:      28

Journal inode:            8

Default directory hash:   half_md4

Directory Hash Seed:      7f85d235-189b-4c8a-be27-a9bd0535b763

Journal backup:           inode blocks

[[email protected] ~]#

8053063.0/805306359 =0.0099999999999  = 1%

参考:

http://www.361way.com/mke2fs-dumpe2fs-tune2fs/4091.html

另外的一种情况是:

机器df和du的结果为啥不一样...

处理方法是lsof | grep delete

时间: 2024-10-08 08:36:36

磁盘有剩余空间,但是使用了是100%的相关文章

SQL Server自动化运维系列——监控磁盘剩余空间及SQL Server错误日志(Power Shell)

原文:SQL Server自动化运维系列--监控磁盘剩余空间及SQL Server错误日志(Power Shell) 需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在所有的自检流程中最基础的一个就是磁盘剩余空间检测.作为一个高效的DBA不可能每天都要上生产机上查看磁盘剩余或者直到磁盘无剩余空间报错后才采取扩容措施. 当然,作为微软的服务器有着自己的监控软件:SCCM(System Center

获取windows磁盘的可用空间函数

<?php /* *获取某个磁盘的剩余空间 *$param 关联数组,下标是哪个盘,单位,可以是B,KB,MB,GB *可以设置获取多个磁盘,例如:array('C'=>'KB','D'=>'MB','E'=>'GB','F'=>'B') *假如出错,返回false */ function Space($arr){ //检查参数 if(is_array($arr)){ //初始化存储值 $memory = array(); foreach($arr as $disk=>

sqlserver 出现 因为文件组 &#39;PRIMARY&#39; 已满 的解决办法 有可能是磁盘剩余空间不足 导致的

一般虚拟主机提供商是通过限制数据库文件的大小来实现提供定制的数据库空间的.当你把从虚拟数据库空间备份下来的文件恢复到自己的服务器上时,这个限制还是存在的.找到数据库文件 给增加个数据文件就好了 解决办法: 1.检查你的磁盘剩余空间是否足够,如果没有磁盘剩余空间,则清理磁盘,腾出空间. 2.检查你的磁盘分区格式:如果是FAT16,则数据文件最大只能是2G,如果是FAT32,则数据文件最大只能是4G,改为NTFS分区则没有这种限制. 3.检查一下你有没有限制数据库文件的大小: 企业管理器--右键你的

Linux 查看文件夹大小,磁盘剩余空间(du/df)

1. 简介 du查看目录大小,df查看磁盘使用情况. 2. du disk usage (1)基本功能 递归查看文件夹下所有文件的大小 (2)常用参数: -h, –human-readable 以可读性较好的方式显示尺寸(例如:1K 234M 2G) -s, –summarize 只分别计算命令列中每个参数所占的总用量 (3)其它参数说明: -a, –all 输出所有文件的磁盘用量,不仅仅是目录 –apparent-size 显示表面用量,而并非是磁盘用量:虽然表面用量通常会小一些,但有时它会因

一次排错-当磁盘明明还有空间,却写不进去

今天上班有一周了,总算开始进行对平台的运维,遇到了第一个实战上的错误. 今天遇到一个告警,说磁盘不能写入,然后查看了一下磁盘空间 使用 df -h  发现磁盘并没有写满,还有很多的剩余空间,然后就想是什么问题,会不会是磁盘出故障什么的了. 然后咨询了一下其他人,通过df -i 查看磁盘的inode号,结果发现inode号在这个磁盘中使用为百分之百. 解决办法: 卸载磁盘 格式化磁盘,并增加inode 然后再重新挂载回原来的地方.

Sqlserver查询数据库文件大小和剩余空间

在MS Sql Server中可以能过以下的方法查询出磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率: 1.查询各个磁盘分区的剩余空间:Exec master.dbo.xp_fixeddrives 2.查询数据库的数据文件及日志文件的相关信息(包括文件组.当前文件大小.文件最大值.文件增长设置.文件逻辑名.文件路径等)select * from [数据库名].[dbo].[sysfiles]转换文件大小单位为MB:select name, convert(float,size)

fdisk硬盘分区(1)——系统盘剩余空间创建分区

想必大家都应该会windows下创建新分区吧(如果不熟悉的话,下面的就不用浪费时间看了) 简单回顾分区的关键步骤 1.指定分区大小 2.分区格式化 3.指定访问入口 为啥分区要经过这几个步骤呢?我们可以用制作练习本的流程 1.我们采购一批白纸回来肯定是很大张的,所以第一步要裁剪到练习本的大小--这一步类似指定分区大小 2.然后要在纸上印上横线或者格子,方便人们写字的时候对其--这一步类似格式化 3.最后要把练习本装订成册--这一步类似指定访问入口 所以在centos上分区也要经过以上几个步骤,但

实时监控本机内存和硬盘剩余空间,剩余内存小于 500M、根分区剩余空间小于 1000M 时,发送报警

#!/bin/bashgen_size=$(df / |awk '/\//{print $4}') #提取根分区剩余空间mem_size=$(free |awk '/Mem/{print $4}') #提取内存剩余空间while :do#注意内存和磁盘提取的空间大小都是以 Kb 为单位if [ $gen_size -le 512000 -a $mem_size -le 1024000 ];thenmail -s Warning root <<EOFInsufficient resources,

如何在linux下查看目录的剩余空间大小

df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式: df -hl 显示格式为: 文件系统 容量 已用 可用 已用% 挂载点 Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G 44% / /dev/hda1 494M 19M 450M 4% /boot /dev/hda6 4.9G 2.2G 2.5G 47% /home /dev/hda5 9.7G 2.9G 6.4G