问题标签 [tmpfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1900 浏览

linux - linux中进程之间的写(2)/读(2)原子性

我有一个案例,其中有两个进程作用于同一个文件 - 一个作为编写器,一个作为读取器。该文件是一个单行文本文件,作者在循环中重写该行。读者阅读该行。伪代码如下所示:

作家进程

读者进程

在运行这两个进程一段时间后,我可以看到readbufisxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyxx.

我的理解是,对于最大 512 字节的大小,写入将是原子的。但从我的实验来看,原子性似乎只有 16 个字节。

手册页没有说明普通文件的原子性,它只提到了 512 字节的管道原子性。

我已经用 tmpfs 和 ext4 试过了,结果是一样的。使用O_SYNC, ext4 写入变得原子化,我理解它,因为写入在到达磁盘之前不会返回,但对 tmpfs ( )O_SYNC没有帮助。/dev/shm

0 投票
1 回答
669 浏览

lua - 执行后保留 Lua tmpfile

上传表示为 tmpfile() 的文件并将被删除然后脚本退出。删除 tmpfile 后如何硬链接此文件以保留其内容?

如何通过句柄获取文件名?

此文件太大,无法按字节复制到另一个文件。

0 投票
0 回答
455 浏览

linux - 如何了解 docker 容器磁盘空间使用情况?

我的主机磁盘空间使用情况是这样的:

启动一个docker容器后,这个容器的磁盘使用情况如下:

2对容器磁盘的使用有疑问:

(1) 容器中的tmpfsand/dev/mapper/rhel-root直接与主机共享同一个磁盘/内存空间?

(2)对于rootfs容器来说,这个文件系统存在哪里?正如打印的那样,它有99G,所以我可以使用所有99G磁盘空间吗?

0 投票
0 回答
248 浏览

mysql - 尝试在 Vagrant 中为 MySQL 使用 tmpfs 时出错

我有一台 Vagrant 机器来运行 Symfony,它与 MySQL 数据库进行了很多交互。为了加快速度,我想为数据目录使用 tmpfs 文件系统。数据目录位于/var/lib/mysql,所以这是我尝试的:

1)停止mysql服务:sudo service mysql stop

2)挂载tmpfs:sudo mount -t tmpfs -o size=512M tmpfs /var/lib/mysql

3)启动mysql:sudo service mysql start

然后我收到以下错误:

systemctl status mysql.service输出是:

哪个没有提供太多信息......关于如何调试这个或我做错了什么的任何想法?谢谢!

0 投票
1 回答
100 浏览

filesystems - 如何在 tmpfs 中找到 Linux 驱动程序的代码段?(实时)

我有一个名为drv1的字符驱动程序,一个用户应用程序用来ioctl与之通信,它将传输参数struct file *filp。现在我想找出drv1的代码段的地址,但是我遇到了一些问题。

起初,我想struct file *filp可能有用,所以我查看了源代码中的定义,并找到了一个指针struct inode *f_inode; /* cached value */。然后我粗略搜索了一下struct inode(tmpfs的时候不熟悉,不知道对不对);一个名为struct address_space *i_mapping的指针似乎是我需要的。但我不知道如何深入挖掘并陷入困境;中存在一些复杂的数据结构struct address_space,例如:

这是否意味着驱动程序drv1的数据以 的形式组织radix_tree_root?或者这是否意味着我错过了其他东西?

0 投票
1 回答
4999 浏览

python - python: IOError: [Errno 36] 文件名太长:

我想在 tmpfs(在 CentOS 6.5 下)中创建一个文件,如下所示:

但是我得到了IOError: [Errno 36] File name too long: ...错误,如何解决它?

0 投票
1 回答
28 浏览

linux - 比较目录和压缩目录(是否有新变化)

我想在不提取或压缩文件的情况下将目录与压缩目录进行比较并进行比较。有没有办法将目录与压缩目录进行比较?

示例:我在 tmpfs(ramdisk)中有一些文件,在服务器关闭之前,我需要将文件保存到磁盘。我认为最好的方法是压缩文件并像文件一样保存到磁盘。在启动服务器(系统)上,我想将文件解压缩到 ramdisk 中。但是几天后ramdisk文件将被更新(与压缩文件备份不同)。

如何比较和合并差异?

问候,内鲁斯。

0 投票
1 回答
1671 浏览

caching - Nginx 不删除缓存在 RAM 上的文件

我正在运行 Nginx 服务器为用户提供视频内容。这个 nginx 服务器从上游服务器中挑选内容,缓存它,也为用户服务。所有未来的请求都从此缓存中提供。我为此预留了 500GB 的缓存空间。当缓存已满时,如果缓存文件夹在硬盘上,nginx 缓存管理器可以根据我的 proxy_cache 指令删除旧的、未使用的文件。当我将此缓存文件夹挂载到 RAM (tmpfs) 上时,nginx 无法删除旧文件。我收到一条错误消息,提示“28:设备上没有剩余空间”。我在 RAM 和硬盘上都检查了缓存文件夹的权限。它具有相同的权限。

如果我从 RAM 中卸载它,它会再次开始正常工作。

0 投票
0 回答
209 浏览

linux - 在文件中写入全局变量时,是否可以在 tmpfs 中直接写入 ELF 文件的数据段?

我想,虽然我不太确定,就像 ELF 文件的文本段一样,tmpfs指令可以在其中执行,在程序尝试之前不需要复制文件中的数据段修改全局变量(或静态局部变量)的值。那就是所谓的COPY ON WRITE

然而,对于我的项目,tmpfs 中的 ELF 文件被修改并不重要。所以我想知道是否可以在写入全局变量的同时直接写入 ELF 文件的数据段。我认为这将节省大量的 RAM 空间。

0 投票
1 回答
1230 浏览

docker - Docker:是否可以使用覆盖的后备文件系统?

我想控制 docker 是在持久存储上运行还是在覆盖有易失性存储的持久存储上运行。

这是因为我在 SD 卡(Raspberry Pi)上有文件系统,它需要持续很长时间。我主要想在覆盖有 tmpfs(在其上运行容器)的只读文件系统(ext4)上进行操作,但是当我检测到更新可用时,我想卸载 overlayfs,将文件系统切换为读写,更新图像,然后将所有内容切换回 tmpfs 覆盖的只读文件系统。

我尝试了两个存储驱动程序:overlay2devicemapper(循环)。前者拒绝在overlayfs底层文件系统上工作(文档中也提到它不支持),后者消耗了我所有的内存,然后Docker被操作系统杀死。Raspberry Pi 和我的 PC 的行为是相同的。

唯一应该工作的存储是vfs,但根据我的阅读,它的存储效率非常低(没有写时复制),所以它对我没有用。

现在我正在尝试使用 aufs 存储驱动程序和 overlayfs 支持文件系统(Docker 文档没有说明它被禁用)。我希望它能工作,但它有一些缺点:主线 Linux 内核不支持 aufs。

还有其他方法可以在两个文件系统之间切换吗?还是可以通过一些完全不同的方式(例如运行内存容器)来保存 SD 卡?