标签: tmpfs

tmpfs docker容器中没有足够的可用空间

我正在运行一个似乎内存不足的Docker容器,但不确定如何解决此问题。

我实际上是在这个Docker容器上运行一个程序,该程序将映像下载到tmpfs中,执行一些操作,删除该映像并返回结果。但是,似乎我遇到了太大而无法存储在当前docker tmpfs中的图像。以下是df在容器内时linux 命令的输出:

Filesystem      Size  Used Avail Use% Mounted on
overlay          63G   11G   50G  18% /
tmpfs            64M     0   64M   0% /dev
tmpfs           6.9G     0  6.9G   0% /sys/fs/cgroup
/dev/sda1        63G   11G   50G  18% /etc/hosts
shm              64M  4.0K   64M   1% /dev/shm
tmpfs           6.9G     0  6.9G   0% /sys/firmware
Run Code Online (Sandbox Code Playgroud)

我曾尝试扩展docker的内存(因此两个tmpfs都有巨大的值),但我仍然遇到这个问题。

我想我有几个问题:

1)3个独立的tmpfs文件系统之间有什么区别?它们为什么存在?

2)大概我需要扩大第一个tmpfs的大小(小的)-我将如何去做呢?

最后,一些相关的系统信息:

操作系统-OSX

Docker版本-Docker版本17.09.0-CE,构建afdb6d4

让我知道您是否还需要了解其他内容!

感谢大家。

unix tmpfs docker

4
推荐指数
1
解决办法
1324
查看次数

使用 docker build 和 tmpfs 构建 Docker 映像?

问题:如何在 Dockerfile 或docker build命令行中指定要在构建容器中安装 tmpfs?这是在拆分构建的上下文中 - 第一个容器将使用 RAM 磁盘,从源构建应用程序,第二阶段将结果复制到新容器中。

这个问题看起来很相似,但我的动机不同。我不太关心持续存在的陈旧图像层,但我关心构建的性能。在 Docker 之外进行试验时,当整个源代码树在 RAM 中而不是在磁盘上时,构建我正在使用的特定应用程序的速度要快 4 倍以上。(该项目有许多中间构建和并行性,所以即使是 SSD 也会有一些颠簸)

由于 Docker 确实支持在正常docker run命令期间挂载 tmpfs ,似乎应该有一种方法可以将其包含在 Dockerfile 中?但是,我似乎无法在任何地方找到此信息 - 几乎所有对“tmpfs”和“dockerfile”或“build”或“ramdisk”等的搜索都指向上面链接的帖子或 Docker 中使用 tmpfs 的文档容器以docker run.

如果 tmpfs 甚至不会持续到第二个容器的程序集,那也是可以接受的。这可以通过在该容器退出之前从构建容器内的 tmpfs 中复制构建的应用程序,然后在复制时使用该新位置来简单地解决。

ramdisk tmpfs docker dockerfile

4
推荐指数
1
解决办法
6523
查看次数

dd无法写入tmpfs

我想用dd测量tmpfs的性能.但它失败了,如下所示:

# dd if=/dev/zero of=/tmp/128M bs=4M count=32 oflag=direct  
dd: failed to open ‘/tmp/128M’: Invalid argument
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

linux dd tmpfs

3
推荐指数
2
解决办法
2984
查看次数

Linux 上的所有 tmpfs 实例是否共享相同的内存池?

我有嵌入式 Linux 系统,它在 fstab 中定义了几个 tmpfs 挂载。其中一些挂载涉及到 systemd。

客户询问为什么不只有一个挂载所有易失性“RAM FS”的东西。

问题:

  1. 是否从相同的公共源(缓存或其他)为所有 tmpfs 实例分配物理内存,以便我们不必手动管理它?
  2. 当一个tmpfs挂载上的文件被删除时,内存可以被其他挂载重用吗?
  3. 是否存在静态分配 tmpfs 内存的 Linux 风格(或配置选项)?
  4. tmpfs 是否在内核中分配虚拟内存空间或消耗与 tmpfs 定义的大小成比例的其他宝贵资源?

linux tmpfs

3
推荐指数
1
解决办法
1275
查看次数

如何根据 Linux 上的路径判断文件是否位于 tmpfs 上?

这可能是一个愚蠢的问题,但假设我给出了一个文件路径,并且我想知道它是否指向 tmpfs 上的文件(即,它是内存中的文件)。如何仅使用 Linux 系统调用来做到这一点?(也就是说,我不能去shell。)

linux tmpfs

2
推荐指数
1
解决办法
1892
查看次数

xattr/扩展属性对于 /tmp 中的文件不可设置,而在同一安装上的 $home 中工作正常

我正在 Linux/Fedora 下使用扩展文件属性,目前我遇到了一些困难,因为我无法添加/更改文件的属性,而在/tmp我家里它工作正常 - 虽然两个路径都在同一个挂载点上,即,

/dev/mapper/fedora-root on / type ext4 (rw,relatime,seclabel,data=ordered)
Run Code Online (Sandbox Code Playgroud)

例如,我可以成功添加和检索主目录中文件的属性,例如

> setfattr -n user.test.md5 -v 58d8e4cd0e60facf386838cbe8b11767 ~/foo.bar
> getfattr -n user.test.md5 ~/foo.bar 
  # file: foo.bar
  user.test.md5="58d8e4cd0e60facf386838cbe8b11767"
Run Code Online (Sandbox Code Playgroud)

但是,对于 中的同一文件,同样会失败/tmp

> cp ~/foo.bar /tmp/foo.bar
> setfattr -n user.test.md5 -v 58d8e4cd0e60facf386838cbe8b11767 /tmp/foo.bar 
  setfattr: /tmp/foo.bar: Operation not supported
Run Code Online (Sandbox Code Playgroud)

我假设,对扩展属性的支持仅取决于使用 xattr 支持“正确”安装的文件系统。但是,它似乎也依赖于目录(??),我想知道,是什么阻止我在 /tmp 中设置扩展属性以及如何更改它?(这似乎与 SELinux 无关——至少我在审核日志中没有找到任何内容。)

linux file-attributes tmpfs xattr

2
推荐指数
1
解决办法
3220
查看次数

标签 统计

tmpfs ×6

linux ×4

docker ×2

dd ×1

dockerfile ×1

file-attributes ×1

ramdisk ×1

unix ×1

xattr ×1