linux 内存盘的使用方式与验证
linux 内存盘的使用方式与验证
背景
某些情况下, 硬盘的写入是一个很大的瓶颈
使用 内存文件系统的方式应该能够极大的提高IO的速度.
内存盘的优点是比较快, 缺点就是数据不是持久化的.
其实还是有很多可以持续优化的方式与方法的.
可以最大化的 磁盘的IO速度等.
内存盘的多种模式与区别
ramfs tmpfs ramdisk 等
需要说明集中模式多少有一些区别.
ramfs 因为追求高效和简单,去掉了容量计数;所以当使用的值超过分配的值的时候,将会继续使用;
tmpfs 使用了虚拟内存,其会使用swap和内存, 其会将一些不必要的文件内容写入到swap当中;
并且会使用计数,来统计当前使用的容量,并进行容量限制;使用df -h 操作可以显示其具体使用的容量和可用容量信息;
现在系统中,大多使用 tmpfs 作为内存文件系统;
ramdisk 是块设备,ramfs 是文件系统;
ramdisk 的内存空间大小是固定的,一经设定就不能改变大小了;
tmpfs 带来了一定的管理机制,但是也是意味着 相对于 ramfs,tmpfs 性能较差一点;不过使用方式上基本相同;
来源:https://www.cnblogs.com/xuyaowen/p/ramfs-tmpfs-ramdisk.html
挂载使用-ramfs
mkdir /testRam
mount -t ramfs none /testRAM
缺省情况下,Ramfs被限制最多可使用内存大小的一半。可以通过maxsize(以kbyte为单位)选项来改变。
mount -t ramfs none /testRAM -o maxsize=2000
挂载使用-tmpfs
mkdir -p /mnt/tmpfs
mount tmpfs /mnt/tmpfs -t tmpfs
mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m
性能验证
1. nvme SSD
dd if=/dev/zero of=/nvme03/zhaobsh.test bs=8k count=102400
记录了102400+0 的读入
记录了102400+0 的写出
838860800字节(839 MB,800 MiB)已复制,0.826526 s,1.0 GB/s
2. sata SSD
dd if=/dev/zero of=/root/zhaobsh.test bs=8k count=102400
记录了102400+0 的读入
记录了102400+0 的写出
838860800字节(839 MB,800 MiB)已复制,2.15439 s,389 MB/s
3. tmpfs 文件系统
dd if=/dev/zero of=/tmp/zhaobsh.test bs=8k count=102400
记录了102400+0 的读入
记录了102400+0 的写出
838860800字节(839 MB,800 MiB)已复制,0.260812 s,3.2 GB/s
4. ramfs文件系统
dd if=/dev/zero of=/testRAM/zhaobsh.test bs=8k count=102400
记录了102400+0 的读入
记录了102400+0 的写出
838860800字节(839 MB,800 MiB)已复制,0.252449 s,3.3 GB/s
结论
ramfs 的性能最好.
tmpfs 的性能次之.
nvme 的磁盘性能再次之
sata SSD的性能最差.
需要说明:
[root@clickhouse1 ~]# dd if=/dev/zero of=/nvme03/zhaobsh.test bs=8k count=102400 oflag=dsync
记录了102400+0 的读入
记录了102400+0 的写出
838860800字节(839 MB,800 MiB)已复制,8.66098 s,96.9 MB/s
如果采用 dsync 的oflag 模式 下 sata和nvme的 ssd 都会有明显的降速. 但是tmpfs和ramfs 资源基本上一致.
[root@clickhouse1 ~]# dd if=/dev/zero of=/testRAM/zhaobsh.test bs=8k count=102400 oflag=dsync
记录了102400+0 的读入
记录了102400+0 的写出
838860800字节(839 MB,800 MiB)已复制,0.259044 s,3.2 GB/s
[root@clickhouse1 ~]# dd if=/dev/zero of=/tmp/zhaobsh.test bs=8k count=102400 oflag=dsync
记录了102400+0 的读入
记录了102400+0 的写出
838860800字节(839 MB,800 MiB)已复制,0.329865 s,2.5 GB/s
linux 内存盘的使用方式与验证的更多相关文章
- 关于linux建立u盘legacy启动方式引导
前言 我一直在用linux,但是我在linux制作pe启动盘无法实现,windows有很多制作pe启动盘的软件,如大白菜,u深度什么的,但是linux没有对应的软件,所以我想写一个类似的工具,那么就有 ...
- Linux进程分配内存的两种方式--brk() 和mmap()
如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看. majflt代表major fault,中文名叫大错误,minflt代表minor faul ...
- linux内存分配机制
这几天在观察apache使用内存情况,所以特意了解了下linux的内存机制,发现一篇写得还不错.转来看看. 一般来说在ps aux中看到的rss就是进程所占用的物理内存.但是如果将所有程序的rss加起 ...
- linux 内存管理——内核的shmall 和shmmax 参数
内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好. SHMMIN= 最小的内存seg ...
- 《嵌入式Linux内存使用与性能优化》笔记
这本书有两个关切点:系统内存(用户层)和性能优化. 这本书和Brendan Gregg的<Systems Performance>相比,无论是技术层次还是更高的理论都有较大差距.但是这不影 ...
- 伙伴系统之伙伴系统概述--Linux内存管理(十五)
在内核初始化完成之后, 内存管理的责任就由伙伴系统来承担. 伙伴系统基于一种相对简单然而令人吃惊的强大算法. Linux内核使用二进制伙伴算法来管理和分配物理内存页面, 该算法由Knowlton设计, ...
- Linux内存管理 (9)mmap(补充)
之前写过一篇简单的介绍mmap()/munmap()的文章<Linux内存管理 (9)mmap>,比较单薄,这里详细的梳理一下. 从常用的使用者角度介绍两个函数的使用:然后重点是分析内核的 ...
- [转帖]linux 内存管理——内核的shmall 和shmmax 参数
(转)linux 内存管理——内核的shmall 和shmmax 参数 内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个 ...
- (转)linux 内存管理——内核的shmall 和shmmax 参数
内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好. SHMMIN= 最小的内存seg ...
- Linux内存 性能调优
内存是影响Linux性能的主要因素之一,内存资源的充足与否直接影响应用系统的使用性能. free命令:监控Linux内存使用状况. 由上图可知,空闲内存是free+buffers+cached=155 ...
随机推荐
- Blazor入门100天 : 身份验证和授权之 OpenID 与 OAuth2
目录: OpenID 与 OAuth2 基础知识 Blazor wasm Gitee 码云登录 Blazor wasm GitHub 登录 Blazor wasm Google 登录 Blazor w ...
- 斯坦福 UE4 C++ ActionRoguelike游戏实例教程 15.创建持续效果BUFF
斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论 概述 本篇文章对应Lecture 18 – Creating Buffs, World Interaction, 71 ...
- 斯坦福 UE4 C++ ActionRoguelike游戏实例教程 11.认识GAS & 创建自己的能力系统
斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论 概述 本篇文章对应Lecture 16 - Writing our own Gameplay Ability Syst ...
- Vue 2 和 Vue 3 中 toRefs的区别
摘要:本文将介绍 Vue 2 和 Vue 3 中 toRefs 函数的不同用法和行为,并解释其在各个版本中的作用. 正文: Vue 是一款流行的 JavaScript 框架,用于构建用户界面.在 Vu ...
- Mybatis源码3 CachingExecutor, 二级缓存,缓存的实现
Mybatis CachingExecutor, 二级缓存,缓存的实现 一丶二级缓存概述 上一章节,我们知道mybaits在构造SqlSession的时候,需要让SqlSession持有一个执行器,如 ...
- 文心一言 VS 讯飞星火 VS chatgpt (41)-- 算法导论5.4 5题
五.在大小为n的集合中,一个k字符串构成一个k排列的概率是多少?这个问题和生日悖论有什么关系? 文心一言: 在大小为n的集合中,一个k字符串构成一个k排列的概率是1/k!,这是由于排列的总数是k!,而 ...
- hutool的常用方法
https://www.hutool.cn/docs/#/ 官方文档 Hutool 是一个 Java 开发工具包,提供了丰富实用的工具类,包括字符串处理.日期处理.文件操作.加密解密.网络请求等等.以 ...
- 用GaussDB(for Redis)存画像,推荐业务轻松降本60%
摘要:用户画像存储是推荐业务核心,但开源Redis无法胜任.华为云高斯Redis是最佳存储选型,轻松降本60%,同时获得企业级高稳定性. 本文分享自华为云社区<华为云GaussDB(for Re ...
- 8种桌面IDE CodeArts智能代码补全类型
摘要:代码补全可以有效的提升开发效率.减少拼写错误和输入代码量.CodeArts 依赖于 codearts.smartassist-java-ls 插件实现代码补全功能. 本文分享自华为云社区< ...
- AI专家一席谈:复用算法、模型、案例,AI Gallery带你快速上手应用开发
摘要: 华为云社区邀请到了AI Gallery的负责人严博,听他谈一谈AI Gallery的设计初衷.经典案例以及未来规划. 本文分享自华为云社区<AI专家一席谈:复用算法.模型.案例,AI G ...