磁盘告警之---神奇的魔法(Sparse file)
一、问题来源



二、出现的问题
- [root@ip-XXXXXXXX data]# ls -lh test.dat
- -rw------- root root 60G Sep : test.dat
- [root@ip-XXXXXXXX data]# du -sh test.dat
- .4G test.dat
三、排查过程
- [root@ip---- data]# du -h --apparent-size test.dat
- 60G test.dat
四、Sparse file
既然找到问题了,就得好好看看这是个啥东西,看了之后第一反应就是这个文件预分配了60G,但实际上只使用了4.4G...,蒽~~,就这么个意思......
1、定义

2、其他使用场景


- dd of=sparse-file bs=7M seek= count= # 相当于创建一个7G的空文件,不占磁盘上的存储数据
或者
- truncate -s 7G lile # 相当于创建一个7G的空文件,不占磁盘上的存储数据
4、测试
- # 可以看到/run目录下是7.7G
- [root@master run]# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/nvme0n1p2 200G .0G 195G % /
- devtmpfs .7G .7G % /dev
- tmpfs .7G .7G % /dev/shm
- tmpfs .7G 428K .7G % /run
- tmpfs .7G .7G % /sys/fs/cgroup
- tmpfs .6G .6G % /run/user/
- # 创建一个7G的sparse file
- [root@master run]# truncate -s 7G lile
- [root@master run]# ls -lh lile
- -rw-r--r-- root root .0G Sep : lile
- # lile这个文件只是一个空的文件,不占存储空间
- [root@master run]# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/nvme0n1p2 200G .0G 195G % /
- devtmpfs .7G .7G % /dev
- tmpfs .7G .7G % /dev/shm
- tmpfs .7G 428K .7G % /run
- tmpfs .7G .7G % /sys/fs/cgroup
- tmpfs .6G .6G % /run/user/
- # 使用dd创建一个大小为7G的普通文件
- [root@master run]# dd if=/dev/zero of=output bs=1G count=
- + records in
- + records out
- bytes (7.5 GB) copied, 3.5524 s, 2.1 GB/s
- # 可以看到是成功的,这就说明sparse文件预分配的大小不影响磁盘存储空间,不影响其他文件使用存储空间
- [root@master run]# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/nvme0n1p2 200G .0G 195G % /
- devtmpfs .7G .7G % /dev
- tmpfs .7G .7G % /dev/shm
- tmpfs .7G .1G 704M % /run
- tmpfs .7G .7G % /sys/fs/cgroup
- tmpfs .6G .6G % /run/user/
5、总结及注意
1)Sparse files并不占用磁盘存储空间
2)平时我们使用ls -lh查看文件大小、find / -size +1G 找出来的日志大小并不一定准确,尽量再一遍使用du -sh确认
3)ls命令和du命令在一定程度上可以这样表示
五、其他
1、本想看一下跟sparse file相关的unix系统方面的,但是感觉自己知识点不太足,有点难度....
磁盘告警之---神奇的魔法(Sparse file)的更多相关文章
- 第17章 内存映射文件(3)_稀疏文件(Sparse File)
17.8 稀疏调拨的内存映射文件 17.8.1 稀疏文件简介 (1)稀疏文件(Sparse File):指的是文件中出现大量的0数据,这些数据对我们用处不大,但是却一样的占用空间.NTFS文件系统对此 ...
- SQL Server ->> Sparse File(稀疏文件)
Sparse File(稀疏文件)不是SQL Server的特性.它属于Windows的NTFS文件系统的一个特性.如果某个大文件中的数据包含着大量“0数据”(这个应该从二进制上看),这样的文件就可以 ...
- Linux 磁盘告警分析
硬件配置 cat /etc/redhat-release && dmidecode -s system-product-name && cat /proc/cpuinf ...
- 转 由一次磁盘告警引发的血案:du 和 ls 的区别
如果你完全不明白或者完全明白图片含义, 那么你不用继续往下看了. 否则, 这篇文章也许正是你需要的. 背景 确切地说,不是收到的自动告警短信或者邮件告诉我某机器上的磁盘满了,而是某同学人肉发现该机器写 ...
- 用windows自带的fsutil来创建1G稀疏文件(sparse file)
fsutils file createnew a.dat 1073741824 fsutil sparse setflag a.dat fsutil sparse setrange a.dat 0 ...
- 基于【磁盘】操作的IO接口:File
基本操作Api import org.apache.commons.lang3.time.DateFormatUtils; import java.io.*; import java.util.Dat ...
- 神奇的魔法数字0x61c88647
来源JDK源码,产生的数字分布很均匀 用法代码如下. # -*- coding: utf-8 -*- HASH_INCREMENT = 0x61c88647 def magic_hash(n): fo ...
- KVM虚拟化技术(六)磁盘管理
KVM支持的虚拟磁盘类型 raw 这并非是一种真正的磁盘格式,而是代表虚拟机所使用的原始镜像:它并不存储元数据,因此可以作为保证虚拟机兼容性的候选方案,然而也正因为 它不存储元数据,因此不能支持某些高 ...
- Python监控SQL Server数据库服务器磁盘使用情况
本篇博客总结一下Python采集SQL Server数据库服务器的磁盘使用信息,其实这里也是根据需求不断推进演化的一个历程,我们监控服务器的磁盘走了大概这样一个历程: 1:使用SQL Server作业 ...
随机推荐
- python+unittest框架第二天unittest之简单认识Test Suite:测试套件
今天了解下测试套件Test Suite,什么是测试套件,测试套件是由多个Test Case测试用例组成的,当然也可以由多个子测试套件组成. 接下来看下如果构建测试套件,构建测试套件的方法: 1.用un ...
- 在使用Lists.transform时,不会直接生成PurchaseOrderVo的集合对象,而是生成一个Function的集合
但是在使用Lists.transform时,不会直接生成PurchaseOrderVo的集合对象,而是生成一个Function的集合,在循环的时候,会去调用apply 生成一个PurchaseOrde ...
- Zabbix遇到的问题集锦
一.Web界面上显示Zabbix server is not running 二.Zabbix显示中文字体 三.利用Python发送告警注意细节 四.zabbix上发告警信息不发恢复信息 五.Agen ...
- Hive 系列(五)—— Hive 分区表和分桶表
一.分区表 1.1 概念 Hive 中的表对应为 HDFS 上的指定目录,在查询数据时候,默认会对全表进行扫描,这样时间和性能的消耗都非常大. 分区为 HDFS 上表目录的子目录,数据按照分区存储在子 ...
- EOS源码分析:transaction的一生
最近在处理智能合约的事务上链问题,发现其中仍旧有知识盲点.原有的认识是一个事务请求会从客户端设备打包签名,然后通过RPC传到非出块节点,广播给超级节点,校验打包到可逆区块,共识确认最后变为不可逆区块. ...
- 01 Python网络爬虫简介
什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后去互联网上爬取/获取数据的过程. 爬虫的分类 - 通用爬虫:就是爬取互联网中的一整张页面内容. - 聚焦爬虫:根据指定的需求爬取页面中指定的局部内容 ...
- 程序员过关斩将--cookie和session的关系其实很简单
月高风下,下班路上.... 菜菜哥,告诉你一个秘密,但是不允许告诉任何人 这么秘密,你有男票了?~ 不是,昨天我偷偷去面试了,结果挂了 这不是好事吗,上天让公司留住你..... 好吧,不过还是要请教你 ...
- ECMAScript---数据类型的分类
数据值是一门编程语言生产的材料,JS中包含的值有以下类型: 1.基本数据类型(值类型):包含 数字 number.字符串string .布尔 boolean .null(其他语言都有的类型) .und ...
- unity_小功能实现(敌人追踪主角)
1.敌人发现主角有两种形式: a.看见主角(主角出现在敌人的视野之内) b.听见主角(听见主角走路声或者是跑步声) a:看(see) 首先判断主角是否在敌人视野角度内,那么我们只需要判断B<0. ...
- Mac OS 下包管理器 homebrew的安装
homebrew :熟悉mac os的小伙伴们一定都知道这个包管理工具,它非常方便且好用,安装它只需要打开终端并将以下代码粘贴到终端中运行即可: /usr/bin/ruby -e "$(cu ...