Linux 文件系统预留空间
在一次磁盘打满的场景下,使用了df -h命令来查看磁盘使用率。
[root@test tmp]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 28G 0 28G 0% /dev
tmpfs 28G 0 28G 0% /dev/shm
tmpfs 28G 2.8G 25G 11% /run
tmpfs 28G 0 28G 0% /sys/fs/cgroup
/dev/sda2 192G 183G 0G 100% /
/dev/sda1 488M 128M 325M 29% /boot
tmpfs 5.5G 0 5.5G 0% /run/user/0
惊奇的发现/dev/sda2的 容量≠可用+已用。diff小一点可以理解,但是有10G的差值就无法理解。这10G的空间到底哪里去了呢?
于是问了一下chatgpt,chatgpt告诉我:
在Linux系统中,磁盘的可用空间、已用空间和容量之间的关系是相互依赖的,但也可能存在一些差异。主要的原因包括:
- 文件系统的格式化和分配:在格式化磁盘并创建文件系统时,会为文件系统分配一部分空间作为文件系统的元数据、inode 表、日志等。这些分配给文件系统的空间将从总容量中减去,因此可用空间会小于磁盘的实际容量。
- 保留空间:文件系统通常会保留一部分空间,用于特定操作和系统的需要。这些保留空间用于存储特殊文件、文件系统元数据或者为写入操作提供缓冲空间。因此,这部分空间不包含在可用空间中。
- 超级用户权限:磁盘配额和权限设置可能导致某些空间仅对特定的用户或用户组可见和可用。超级用户(root)具有更高的权限,可能可以访问和使用其他用户没有权限的空间。
- 块大小:磁盘上的数据存储以块为单位进行管理。块大小的设置可能导致存储空间的浪费。当一个文件的大小不是块大小的整数倍时,将会浪费部分空间。
这些因素导致可用空间、已用空间和容量之间存在差异。要了解更准确的磁盘使用情况,可以使用命令行工具如
df命令来查看文件系统的实际使用情况,它会提供关于可用空间、已用空间和总容量的详细信息。
不甚理解,以至于我甚至怀疑是磁盘碎片化的问题,并且在机器上不小心及进行了清理碎片化的操作。结果无变化。
[root@test tmp]# e4defrag -v /dev/sda2
[255017/256401]/usr/share/tabset/stdcrt: 100% extents: 1 -> 1 [ OK ]
[255018/256401]/usr/share/tabset/vt100: 100% extents: 1 -> 1 [ OK ]
[255019/256401]/usr/share/tabset/vt300: 100% extents: 1 -> 1 [ OK ]
[255020/256401]/usr/share/tabset/std: 100% extents: 1 -> 1 [ OK ]
[255021/256401] “/usr/games”
File is not regular file [ NG ]Success: [ 212750/256401 ]Failure: [ 43651/256401 ]Total extents: 249310->219238Fragmented percentage: 1%->0%
于是又百度了一下发现可能是磁盘预留空间的问题。于是使用了这个工具进行了磁盘预留空间的查看
[root@test tmp]# tune2fs -l /dev/sda2
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name: <none>
Last mounted on: /
Filesystem UUID: d612809a-593c-43ef-8ab3-c81f3c14b0ec
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 12779520
Block count: 51117824
Reserved block count: 2555891
Free blocks: 24156089
Free inodes: 12455220
First block: 0
Block size: 4096
Fragment size: 4096
Group descriptor size: 64
Reserved GDT blocks: 1024
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Wed May 24 14:46:49 2023
Last mount time: Tue Jun 27 16:26:52 2023
Last write time: Tue Jun 27 16:26:48 2023
Mount count: 4
Maximum mount count: -1
Last checked: Wed May 24 14:46:49 2023
Check interval: 0 (<none>)
Lifetime writes: 56 GB
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
First orphan inode: 3149122
Default directory hash: half_md4
Directory Hash Seed: 9d3dd88a-0510-41d1-abd3-103dbee0f6c9
Journal backup: inode blocks
针对以上输出结果,chatgpt告诉我
根据提供的输出,我可以看到以下关于文件系统的预留空间大小的信息:
- 文件系统位于
/dev/sda2磁盘分区上。- 预留块数量为 2555891。
- 块大小为 4096 字节。
要计算预留空间的实际大小,您可以使用以下公式:
预留空间大小 = 预留块数量 × 块大小
在这种情况下,预留空间大小 = 2555891 × 4096 = 10,484,299,136 字节 或 9.77GB。
通过这个计算,您可以知道文件系统上的预留空间的实际大小。请注意,这个值是以字节为单位的,如果需要以其他单位表示,可以进行适当的转换。
破案了,那么如何调整这个预留空间的大小呢?
使用 tune2fs 命令可以调整文件系统的预留空间大小。预留空间是为了给文件系统保留一些空间供系统管理员使用,在磁盘空间快满的时候防止系统崩溃。
以下是通过 tune2fs 命令来调整文件系统预留空间大小的步骤:
1.打开终端或命令行界面。
2.运行以下命令,其中 /dev/sdX 是文件系统所在的磁盘设备。请将其替换为您实际使用的设备名称。
sudo tune2fs -m <percentage> /dev/sdX
是您想要设置的预留空间的百分比。例如,如果您想要将预留空间设置为 10%,则将 替换为 10。
3.输入管理员密码并确认命令。
4.命令执行成功后,文件系统的预留空间大小将被调整。
请注意,调整文件系统的预留空间可能会对系统的稳定性和性能产生影响。建议在进行此操作之前备份重要数据,并仔细评估所需的空间和系统需求。
此外,不同的文件系统可能具有不同的默认预留空间大小。您可以使用 tune2fs -l 命令查看当前文件系统的预留空间大小,并据此进行调整。
相关文章:
Linux 文件系统预留空间
在一次磁盘打满的场景下,使用了df -h命令来查看磁盘使用率。 [roottest tmp]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 28G 0 28G 0% /dev tmpfs 28G 0 28G 0% /dev/shm tmpfs 28G 2.8G …...
篇一:单例模式:C++中的独一无二
篇一:“单例模式:C中的独一无二” 设计模式在软件开发中起到了至关重要的作用,其中单例模式是最为常用且基础的设计模式之一。单例模式确保一个类只有一个实例,并提供全局访问点,以保证系统中的某个对象只有唯一的存在…...
JVM之内存结构
1.程序计数器 定义:程序计数器(Program Counter Register)是JVM中一块较小的内存空间。解释器在解释JVM指令为机器码以供CPU执行时,会去程序计数器当中找到jvm指令的执行地址。 作用:记住下一条jvm指令的执行地址 特…...
C#实现结构体与字节流的相互转化
unity项目中,涉及到与C的相互通信,而通信接口为C封好的动态库。所以,传输信息时,需要向C端发送字节流信息。 对此,需将结构体数据转为字节流,其代码如下: public static byte[] StructToBytes(…...
用LangChain开源框架实现知识机器人
前言 Large Language Models (LLMs)在2020年OpenAI 的 GPT-3 的发布而进入世界舞台 。从那时起,他们稳步增长进入公众视野。 众所周知 OpenAI 的 API 无法联网,所以大家如果想通过它的API实现联网搜索并给出回答、总结 PDF 文档、基于某个 Youtube 视频…...
HCIP——前期综合实验
前期综合实验 一、实验拓扑二、实验要求三、实验思路四、实验步骤1、配置接口IP地址2、交换机配置划分vlan10以及vlan203、总部分部,骨干网配置OSPF分部总部骨干网 4、配置BGP建立邻居关系总部骨干网分部 5、发布用户网段6、将下一跳改为本地7、允许AS重复8、重发布…...
【2023年电赛】运动目标控制与自动追踪系统(E 题)最简单实现
本方案的思路是最简单的不涉及复杂算法:识别矩形框,标记矩形框,输出坐标和中心点,计算长度,控制舵机移动固定长度!仅供完成基础功能参考,不喜勿喷! # 实现运动目标控制与自动追踪系…...
【IMX6ULL驱动开发学习】22.IMX6ULL开发板读取ADC(以MQ-135为例)
IMX6ULL一共有两个ADC,每个ADC都有八个通道,但他们共用一个ADC控制器 1.设备树 在imx6ull.dtsi文件中已经帮我们定义好了adc1的节点部分信息 adc1: adc02198000 {compatible "fsl,imx6ul-adc", "fsl,vf610-adc";reg <0x0219…...
宝塔安装ModStart,快速开启高效开发之旅!
宝塔面板是一款强大的服务器管理工具,而ModStart则是基于Laravel的模块化快速开发框架,二者的结合将为您的项目开发带来前所未有的便利和高效。在这篇文章中,我们将为您详细介绍如何在宝塔面板上安装ModStart,让您快速搭建功能丰富…...
第六章 HL7 架构和可用工具 - 定义新的消息类型和结构类型
文章目录 第六章 HL7 架构和可用工具 - 定义新的消息类型和结构类型编辑数据结构和代码表 第六章 HL7 架构和可用工具 - 定义新的消息类型和结构类型 消息类型标识消息并与 HL7 MSH:9 字段中的值匹配。定义消息类型时,指定发送消息结构类型(可能与消息类…...
通向架构师的道路之Tomcat性能调优
一、总结前一天的学习 从“第三天”的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是: 吞吐量 Responsetime Cpuload MemoryUsage 我 们也在第三天的学习中对Apache做过了一定的优化,使其最优化上…...
vue03 es6中对数组的操作,vue对数据监控的原理(分别对对象和数组的监控)
在js中,对数组的操作一般都是固定的模式:常用的函数,具体的方法在这个文章中去看: http://t.csdn.cn/Fn1Ik 一般会用到的函数有: pop() 这个函数是表示把数组中的元素(数组ÿ…...
微信小程序 - 解析富文本插件版们
一、html2wxml 插件版 https://gitee.com/qwqoffice/html2wxml 申请使用注意事项 插件版本解析服务是由 QwqOffice 完成,存在不稳定因素,如对稳定性有很高的要求,请自行搭建解析服务,或在自家服务器上直接完成解析。对于有关插…...
工厂方法模式(Factory Method)
工厂方法模式就是定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法模式将类的实例化(具体产品的创建)延迟到工厂类的子类(具体工厂)中完成,即由子工厂类来决定该实例化哪一个类。 Define a…...
js如何将图片转成BASE64编码,网页跟uniapp开发的app的区别?
Base64是一种用64个字符来表示任意二进制数据的方法,这篇文章主要为大家介绍了如何实现将图片转为base64格式,感兴趣的小伙伴可以学习一下 前言 前段时间在写我的VUE全栈项目的时候,遇到要把前端的照片上传到后端,再由后端存到数…...
1400*C. Computer Game
Example input 6 15 5 3 2 15 5 4 3 15 5 2 1 15 5 5 1 16 7 5 2 20 5 7 3 output 4 -1 5 2 0 1 解析: k个电, 第一种为 k>a 时,只玩游戏 k-a; 第二种,k>b,一边玩一边充电 k-b 问完成n轮游戏的情况下,优先第…...
windows10访问Ubuntu 18.04共享目录(已验证)
1、Ubuntu 18.04安装samba sudo apt-get install samba 2、创建一个共享目录文件夹,并设置777权限 ubt1804是用户名 mkdir/home/ubt1804/lsk sudo chmod 777 /home/ubt1804/lsk 3、添加用户及密码 sudo smbpasswd -a [用户名] 比如用户名为test sudo sm…...
Linux安装redis执行make命令报错:gcc not found和*** [adlist.o] Error 1
目录 第一章、问题分析与解决1.1)报错11.2)报错2 友情提醒 先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。 第一章、问题分析与解决 1.1)报错1 报错问题1:gcc: Command n…...
R语言glmnet包详解:横截面数据建模
R语言glmnet包详解:横截面数据建模 glmnet适用的模型glmnet建模补充glmnet适用的模型 glmnet程序包即适用于线性模型,也适用于添加惩罚项项的线性模型。如果数据中的变量个数大于样本量并且想用线性模型解决问题,那么glmnet再合适不过了! 根据glmnet函数中参数family的指定…...
LeetCode257. 二叉树的所有路径
257. 二叉树的所有路径 文章目录 257. 二叉树的所有路径一、题目二、题解方法一:深度优先搜索递归方法二:迭代 一、题目 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
OCR MLLM Evaluation
为什么需要评测体系?——背景与矛盾 能干的事: 看清楚发票、身份证上的字(准确率>90%),速度飞快(眨眼间完成)。干不了的事: 碰到复杂表格(合并单元…...
JDK 17 序列化是怎么回事
如何序列化?其实很简单,就是根据每个类型,用工厂类调用。逐个完成。 没什么漂亮的代码,只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...
从实验室到产业:IndexTTS 在六大核心场景的落地实践
一、内容创作:重构数字内容生产范式 在短视频创作领域,IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色,生成的 “各位吴彦祖们大家好” 语音相似度达 97%,单条视频播放量突破百万…...
