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 ...
随机推荐
- JavaFx之全局异常捕获(二十)
JavaFx之全局异常捕获(二十) javafx开发时,我们有时候需要捕获未处理的异常.手动抛出的异常,在main方法中添加下面代码: public static void main(String[] ...
- 用C#实现简单的线性回归
前言 最近注意到了NumSharp,想学习一下,最好的学习方式就是去实践,因此从github上找了一个用python实现的简单线性回归代码,然后基于NumSharp用C#进行了改写. NumSharp ...
- Java数组中常见的方法
一.前言 代码: //给定一个数组 int[] arr = {234,312,32,1321,321,43}; int[] arr1 = new int[6]; int[] arr2 = {1,3,7 ...
- KubeEdge在国家工业互联网大数据中心的架构设计与应用
摘要:在18年的时候,工信部开展了一个叫国家创新发展工程,这个工程中提出了要建立一个国家工业大数据中心,中国移动在其中承担了边缘协同与数据采集相关功能的研发.本文将从该项目背景下面临的问题与挑战.技术 ...
- 带你掌握如何使用CANN 算子ST测试工具msopst
摘要:本期带您了解如何使用msopst工具. 本文分享自华为云社区<[CANN文档速递13期]算子ST测试工具[msopst]>,作者: 昇腾CANN . 如何获取msopst工具 mso ...
- Python 绑定:从 Python 调用 C 或 C++
摘要:您是拥有想要从 Python 中使用的C或 C++ 库的 Python 开发人员吗?如果是这样,那么Python 绑定允许您调用函数并将数据从 Python 传递到C或C++,让您利用这两种语言 ...
- Android 启动优化(二) - 有向无环图的原理以及解题思路
Android 启动优化(一) - 有向无环图 Android 启动优化(二) - 拓扑排序的原理以及解题思路 Android 启动优化(三) - AnchorTask 使用说明 Android 启动 ...
- ME21N 采购订单屏幕增强
1.业务需求 采购订单行项目新增"图号"和"价格类型"字段.其中图号只查询底表展示,不做修改:价格类型做下拉框: 2.增强实现 增强标准表EKPO结构CI_EK ...
- 【3rd Party】nlohmann json 基础用法
参考链接:Here 什么是nlohman json ? nlohman json GitHub - nlohmann/json: JSON for Modern C++ 是一个为现代C++(C++11 ...
- [kuangbin] 专题13 基础计算几何 题解 + 总结
kuangbin带你飞:点击进入新世界 [kuangbin] 专题7 线段树 题解 + 总结:https://www.cnblogs.com/RioTian/p/13413897.html kuang ...