Linux特种文件系统--tmpfs文件系统
tmpfs类似于RamDisk(只能使用物理内存),使用虚拟内存(简称VM)子系统的页面存储文件。tmpfs完全依赖VM,遵循子系统的整体调度策略。说白了tmpfs跟普通进程差不多,使用的都是某种形式的虚拟内存,至于数据存储在物理内存中还是在交换分区中,全权交由VM子系统。
tmpfs 文件系统
-
定义:
tmpfs
是一个基于内存的文件系统,它在 RAM 中存储数据,因此访问速度非常快。 -
用途:
tmpfs
通常用于存储临时文件,这些文件不需要永久保存,而且频繁读写。使用tmpfs
可以减少对物理磁盘的磨损,并提高性能。 -
示例路径:常见的
tmpfs
挂载点包括/dev/shm
、/run
、/tmp
等。 -
持久性:系统重启后,
tmpfs
中的数据会被清空。
devtmpfs 文件系统
-
定义:
devtmpfs
也是一种基于内存的文件系统,主要用于动态创建设备节点。 -
用途:
devtmpfs
在系统启动时自动创建,用来存放动态设备文件。它减少了手动创建设备节点的需要,并且可以根据当前硬件自动创建所需的设备文件。 -
示例路径:
devtmpfs
通常挂载在/dev
目录下。 -
持久性:与
tmpfs
类似,系统重启后,devtmpfs
中的设备文件也会重新创建
查看tmpfs文件系统挂载情况
使用mount或df命令来查看tmpfs挂载情况,mount可以看到挂在点的一些属性信息;df可以查看挂载点大小以及使用率等。
mount | grep tmpfsdevtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930460k,nr_inodes=232615,mode=755)tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188216k,mode=700)df -hTFilesystem Type Size Used Avail Use% Mounted ondevtmpfs devtmpfs 909M 0 909M 0% /devtmpfs tmpfs 920M 0 920M 0% /dev/shmtmpfs tmpfs 920M 17M 903M 2% /runtmpfs tmpfs 920M 0 920M 0% /sys/fs/cgroup/dev/sda3 xfs 14G 3.2G 11G 24% //dev/sda1 xfs 1014M 181M 834M 18% /boottmpfs tmpfs 184M 0 184M 0% /run/user/0
使用tmpfs文件系统
创建tmpfs并挂在到/test-tmpfs,对使用内存大小未做限制,但是分配了一个920M大小,当向其拷贝大于920M的数据,并未动态扩展超过920M(虽未指定size,会有一个缺省值:刚好是我内存的50%),仍然会报错:No space left on device。
mount tmpfs /test-tmpfs -t tmpfs~]# dd if=/dev/zero of=/test-tmpfs/bigfile bs=1M count=1000
dd: error writing ‘/test-tmpfs/bigfile’: No space left on device
920+0 records in
919+0 records out
963661824 bytes (964 MB) copied, 0.788749 s, 1.2 GB/s
创建tmpfs并挂在到/test-tmpfs2,最大只能使用64m内存空间,很显然到存储文件大小超过64m时,报错:No space left on device
mount tmpfs /test-tmpfs2/ -t tmpfs -o size=64m~]# dd if=/dev/zero of=/test-tmpfs2/bigfile bs=1M count=65
dd: error writing ‘/test-tmpfs2/bigfile’: No space left on device
65+0 records in
64+0 records out
67108864 bytes (67 MB) copied, 0.10594 s, 633 MB/s
第一个试验,默认大小920M,且当超过920M时并没有动态扩展,那么是不是最大只能设置size=920M呢?显然不是!经过查资料,不设置size,则默认使用物理内存的50%(我擦,从这里我可以逆向推机器的物理内存大小了~~)
mount tmpfs /test-tmpfs3/ -t tmpfs -o size=2048m ~]# df -hT|grep test-tmpfs
tmpfs tmpfs 2.0G 0 2.0G 0% /test-tmpfs3
既然tmpfs存储在内存中,那么tmpfs占用的内存是哪一部分呢?答案是shared memory。
~]# free -m
total used free shared buff/cache available
Mem: 1838 162 72 920 1602 590
Swap: 1638 61 1577~]# rm -rf /test-tmpfs/bigfile
~]# free -m
total used free shared buff/cache available
Mem: 1838 162 992 1 683 1509
Swap: 1638 61 1577
通过tmpfs赋能应用加速
给squid代理加速,据说可以将系统负载从12降低到0.3。
1、创建并挂在tmpfs
mkdir /squid_tmp
chmod 1777 /squid_tmp
~]# cat /etc/fstab |grep squid
tmpfs /squid_tmp tmpfs size=256m
2、修改squid代理配置
~]# cat /etc/squid/squid.conf|grep -i cache
# Only allow cachemgr access from localhost
# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid 100 16 256
cache_dir ufs /squid_tmp 256 16 256
- ufs,缓存存储机制,具体参考Squid的使用手册
- /squid_tmp,就是一个tmpfs
- 第一个256,指定缓存目录的大小,这是Squid可以使用的上限,可以根据实际情况酌情设定
- 16和第二个256,针对ufs机制,Squid在缓存目录下创建二级目录树。分别指定了第一级和第二级目录的数量。默认就是16和256,可以根据具体情况酌情设定。如下图:一级目录刚好16个。
3、重启Squid服务
systemctl restart squid
相关文章:

Linux特种文件系统--tmpfs文件系统
tmpfs类似于RamDisk(只能使用物理内存),使用虚拟内存(简称VM)子系统的页面存储文件。tmpfs完全依赖VM,遵循子系统的整体调度策略。说白了tmpfs跟普通进程差不多,使用的都是某种形式的虚拟内存&a…...

《基于STMF103的FreeRTOS内核移植》
目录 1.FreeRTOS资料下载与出处 1.1官网下载,网址:www.freertos.org 1.2在正点原子官网,任意STM32F1的开发板资料A盘里, 2.FreeRTOS移植重要文件讲解 2.1 FreeRTOS与FreeRTOS-Plus文件夹 2.2 Demo、Lincence、Source ●Demo文件…...
一七二、Vue3性能优化方式
Vue 3 的性能优化相较于 Vue 2 有了显著提升,利用新特性和改进方法可以更高效地构建和优化应用。以下是 Vue 3 的常见性能优化方法及示例。 1. 使用组合式 API (Composition API) Vue 3 引入的组合式 API,通过逻辑拆分和复用来实现更高效的代码组织和性…...

软件测试--BUG篇
博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:MySQL数据库 JavaEE专栏:JavaEE 软件测试专栏:软件测试 关注博主带你了解更多知识 目录 1. 软件测试的⽣命周期 2. BUG 1. BUG 的概念 2. 描述bug的要素 3.bug级别 4.bug的⽣命周期 5 与开发产⽣争执怎…...
Scikit-learn和Keras简介
一,Scikit-learn是一个开源的机器学习库,用于Python编程语言。它建立在NumPy、SciPy和matplotlib这些科学计算库之上,提供了简单有效的数据挖掘和数据分析工具。Scikit-learn库包含了许多用于分类、回归、聚类和降维的算法,包括支…...

python在word的页脚插入页码
1、插入简易页码 import win32com.client as win32 from win32com.client import constants import osdoc_app win32.gencache.EnsureDispatch(Word.Application)#打开word应用程序 doc_app.Visible Truedoc doc_app.Documents.Add() footer doc.Sections(1).Footers(cons…...
Java面试题十四
一、Java中的JNI(Java Native Interface)是什么?它有什么用途? Java中的JNI(Java Native Interface)是Java提供的一种编程框架,它允许Java代码与本地(Native)代码&#x…...
yarn : 无法加载文件,未对文件 进行数字签名。无法在当前系统上运行该脚本。
执行这个命令时报错:yarn --registryhttps://registry.npm.taobao.org yarn : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\yarn.ps1。未对文件 C:\Users\Administ rator\AppData\Roaming\npm\yarn.ps1 进行数字签名。无法在当前系统上运行该脚本。有…...

Hadoop——HDFS
什么是HDFS HDFS(Hadoop Distributed File System)是Apache Hadoop的核心组件之一,是一个分布式文件系统,专门设计用于在大规模集群上存储和管理海量数据。它的设计目标是提供高吞吐量的数据访问和容错能力,以支持大数…...

计算机的一些基础知识
文章目录 编程语言 程序 所谓程序,就是 一组指令 以及 这组指令要处理的数据。狭义上来说,程序对我们来说,通常表现为一组文件。 程序 指令 指令要处理的数据。 编程语言发展 机器语言:0、1 二进制构成汇编语言:…...

学习RocketMQ(记录了个人艰难学习RocketMQ的笔记)
一、部署单点RocketMQ Docker 部署 RocketMQ (图文并茂超详细)_docker 部署rocketmq-CSDN博客 这个博主讲的很好,可食用,替大家实践了一遍 二、原理篇 为什么使用RocketMQ: 为什么选择RocketMQ | RocketMQ 关于一些原理,感觉…...

【设计模式】策略模式定义及其实现代码示例
文章目录 一、策略模式1.1 策略模式的定义1.2 策略模式的参与者1.3 策略模式的优点1.4 策略模式的缺点1.5 策略模式的使用场景 二、策略模式简单实现2.1 案例描述2.2 实现代码 三、策略模式的代码优化3.1 优化思路3.2 抽象策略接口3.3 上下文3.4 具体策略实现类3.5 测试 参考资…...

list与iterator的之间的区别,如何用斐波那契数列探索yield
问题 list与iterator的之间的区别是什么?如何用斐波那契数列探索yield? 2 方法 将数据转换成list,通过对list索引和切片操作,以及可以进行添加、删除和修改元素。 iterator是一种对象,用于遍历可迭代对象(如列表、元组…...

抖音店铺数据也就是抖店,如何使用小店数据集来挖掘价值?
抖音商家现在基本达到二百多万家抖店,有一些公司可能会根据开放的数据研究行业分布、GMV等等,就像是也出了专业的一些平台如“蝉妈妈”、“达多多”,对我来说受限制就是难受。 当然也有很多大型合法的数据平台有抖店数据集,但…...

KubeVirt 安装和配置 Windows虚拟机
本文将将介绍如何安装 KubeVirt 和使用 KubeVirt 配置 Windows 虚拟机。 前置条件 准备 Ubuntu 操作系统,一定要安装图形化界面。 安装 Docker(最新版本) 安装 libvirt 和 TigerVNC: apt install libvirt-daemon-system libvir…...

CM API方式设置YARN队列资源
简述 对于CDH版本我们可以参考Fayson的文章,本次是CDP7.1.7 CM7.4.4 ,下面只演示一个设置队列容量百分比的示例,其他请参考cloudera官网。 获取cookies文件 生成cookies.txt文件 curl -i -k -v -c cookies.txt -u admin:admin http://192.168.242.100:7180/api/v44/clusters …...

Mysql常用语法一篇文章速成
文章目录 前言前置环境数据库的增删改查查询数据查询所有条件查询多条件查询模糊查询分页查询排序查询分组查询⭐️⭐️关联查询关联分页查询 添加数据insert插入多条记录不指定列名(适用于所有列都有值的情况) 更新数据更新多条记录更新多个列更新不满足条件的记录 删除统计数…...
Intel nuc x15 重装系统步骤和注意事项(LAPKC71F、LAPKC71E、LAPKC51E)
注意本教程的对象是11代CPU,英伟达独显的nuc x15,不是12代arc显卡的。 x15安装win11 24h2,如果在装系统时联网,windows自动下载的最新驱动有兼容问题,会导致【英特尔显卡控制中心】装不上,或者【英特尔nuc…...

Linux之实战命令59:iwlist应用实例(九十三)
简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…...

数据库_SQLite3
下载 1、更新软件源: sudo apt-get update 2、下载SQLite3: sudo apt-get install sqlite3 3、验证: sqlite3启动数据库,出现以下界面代表运行正常。输入 .exit 可以退出数据库 4、安装sqlite3的库 sudo apt-get install l…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...

免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...

云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...