首页 > 编程知识 正文

linux查看目录下文件,yum源的配置文件在哪个目录

时间:2023-05-03 11:03:40 阅读:152649 作者:1772

在截至去年的传感器数据管理框架中,使用mmap实现了多个进程之间的数据共享。 为了更快地将传感器数据写入mmap,并更方便地查看和调试写入的数据,不使用传统的文件进行mmap映射,而是将/dev/shm目录作为临时文件与mmap的源和a .使用dat的原因是,/dev/shm可以视为文件目录,但都存储在内存中,重新启动后会消失,因此作为临时存储非常高效,只能存储最新的帧数据最好的是,可以使用相关软件直接打开它,看到其内容。

当时想深入了解/dev/shm的什么原理,因为事情很多,所以忘了。 前几天看了帖子,发现介绍了/dev/shm,说了好话就搬家了。

一、/dev/shm理论

的缺省Linux分发内核配置将打开tmpfs,并映射到/dev/下的shm目录。 可以用df命令查看结果。

/dev/shm/是linux上的以下非常有用的目录: 因为这个目录不在硬盘上,而是在内存中。 因此,在linux上,构建ramdisk不需要费力,直接使用/dev/shm/就可以获得优化效果。 缺省系统将加载/dev/shm。 这就是所谓的tmpfs,称为ramdisk (虚拟磁盘),但不是(后面会有所不同)。 与虚拟磁盘一样,tmpfs可以使用RAM,但也可以使用交换分区进行保存。 此外,传统的虚拟磁盘是块设备,需要mkfs等命令才能实际使用。 tmpfs是文件系统,而不是块设备。 只需安装,即可使用。

tmpfs有以下优势:

动态文件系统的大小/dev /shm/需要注意的一个问题是容量问题。 在linux上,缺省大小为最大内存的一半,可以通过df -h命令查看。 但是,并不实际消耗这个内存。 如果/dev/shm/下没有文件,实际上会消耗0字节的内存。 如果最多1G包含100米的文件,则其他APP应用程序也可以使用剩下的900米,但使用的100米内存不会被系统重新分割,tmpfs的另一个主要优点是闪存速度。 典型的tmpfs文件系统完全驻留在RAM中,因此几乎可以立即进行读写。 由于虚拟内存本质上是易失性的,因此tmpfs数据在重新启动后不会保留。 所以,需要进行加载、绑定等操作的脚本。二、修改/dev/shm大小

在某些情况下,默认的最大一半内存大小可能不足够。 此外,如果缺省inode数量较少,则通常会稍微提高一点。 在这种情况下,可以使用mount命令进行管理。

# mount-osize=1500 m-onr _ inodes=1000000-o noatime,nodiratime -o remount /dev/shm

在2G机器上,将最大容量设为1.5G,并将inode数量设为1000000,意味着大致最多可以存储100万个小文件。

如果需要永久更改/dev/shm的值,则必须更改/etc/fstab

代码是下一个:

tmpfs /dev/shm tmpfs defaults,size=1.5G 0 0

mount -o remount /dev/shm

三、/dev/shm应用

首先在/dev/shm中创建tmp文件夹,然后将其绑定到实际的/tmp

代码是下一个:

#mkdir /dev/shm/tmp

#chmod 1777 /dev/shm/tmp

# mountbind/dev/shm/tmp/tmp (-bind ) )。

使用mountbindolderdirnewerdir命令将一个目录挂载到另一个目录会更改所有信息,包括newerdir的权限和所有者。 挂载的目录将继承挂载目录的所有属性,但名称除外。

三、tmpfs和ramfs的区别

ramfs和tmpfs是在内存中构建的文件系统(文件系统)。 读写速度快,但具有因停电而有丢失风险的优点。 当某个进程的性能瓶颈是硬盘读写时,可以考虑在ramfs或tmpfs上进行大文件的读写操作。

ramfs和tmpfs之间的区别:

ramfs和tmpfs之间的差异如果tmpfsramfs达到容量上限,则继续写入提示错误消息,并确定可以继续写入的未分配容量是否为固定大小,是否具有swap,以及系统是否具有易失性,方法如下

ok @ Linux :~$ df-h|grep-e ' (tmpfs|ramfs ) ) dev tmpfs 1.9g 16k 1.9g1%/dev tmpfs 1.9g 27 m 1.9g2% /

dev/shmtmpfs 1.9G 4.3M 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgrouptmpfs 1.9G 4.3M 1.9G 1% /var/locktmpfs 1.9G 4.3M 1.9G 1% /var/run

我的系统(Ubuntu 20.04,)中,使用的都是tmpfs。我想原因可能是,当存在写溢出时,tmpfs比ramfs更加安全,因为前者会给出错误提示并禁止写操作。

创建

创建tmpfs:

ok@linux:~ # mkdir -p /mnt/tmpok@linux:~ # mount -t tmpfs -o size=20m tmpfs /mnt/tmp/ok@linux:~ # df -h | grep "/mnt/tmp"tmpfs 20M 0 20M 0% /mnt/tmp

创建ramfs:

ok@linux:~ # mkdir -p /mnt/ramok@linux:~ # mount -t ramfs -o size=20m ramfs /mnt/ram/ok@linux:~ # df -ah | grep "/mnt/ram"ramfs 0 0 0 - /mnt/ram

这里df只使用h选项是无法显示ramfs的内容的。tmpfs会对内存进行accounting(统计内存的使用情况),而ramfs被设计为尽可能的简单,所以不会进行accounting。因此,针对ramfs,在较新的内核中,使用df不会返回ramfs的信息。

ramfs是Linux下一种基于RAM做存储的文件系统。在使用过程中你就可以把ramfs理解为在普通的HDD上建立了一个文件系统,而现在HDD被替换成了RAM,因为是RAM做存储所以会有很高的存储效率。由于ramfs的实现就相当于把RAM作为最后一层的存储,所以在ramfs中不会使用swap。你什么时候听过会把HDD上的文件swap到哪里去吗?平常说的swap都是针对内存来说的,而ramfs底层的存储是RAM,虽然不是HDD,但是在Linux看来它就跟HDD一样。但是ramfs有一个很大的缺陷就是它会吃光系统所有的内存,即使你mount的时候指定了大小,同时它也只能被root用户访问。测试方法很简单:

sudo mount -t ramfs -o size=10M ramfs ./ramfs/

sudo dd if=/dev/zero of=./ramfs/test.file bs=1M count=20

测试时你会发现上面这个操作是能成功的,或者你再自己虚拟机上干脆做狠点,直接写一个比内存更大的文件,你会发现瞬间系统就卡主了。另外在dd命令如果不以root用户执行就会权限不够:

dd: opening `./ramfs/test.file': Permission denied

tmpfs也是Linux下的一个文件系统,它将所有的文件都保存在虚拟内存中,umount tmpfs后所有的数据也会丢失,tmpfs就是ramfs的衍生品。tmpfs使用了虚拟内存的机制,它会进行swap,但是它有一个相比ramfs的好处:mount时指定的size参数是起作用的,这样就能保证系统的安全,而不是像ramfs那样,一不留心因为写入数据太大吃光系统所有内存导致系统被hang住。在我文章最开始的那个例子中就是mount了一个10M大小的tmpfs,然后执行sql 命令(它需要创建的临时表大于10M),因为tmpfs限制了大小,因此也就报错。那么tmpfs适用的场景有哪些呢?在官方文档上主要有如下几点:

kernel 内部需要用到它,而我们是无法看到的

glibc 2.2以上的版本,必须有一个tmpfs被mount在/dev/shm用做POSIX shared memory

还有很多包括现在还不知道的用途

总结来说ramfs与tmpfs有如下几点异同:

ramfs会因为数据的写入自动增长空间,所以可能导致最后系统所有的内存耗完tmpfs可以再mount时限定大小,不会自动增长ramfs不会用swaptmpfs会使用swap

两者都是用来提升效率,但是tmpfs比ramfs的性能更好(结果是对的,原理有待进一步探究)

参考链接:

 https://blog.csdn.net/ChrisNiu1984/article/details/8202378

https://www.jb51.net/LINUXjishu/342876.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。