问题标签 [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.
mysql - 内存 VS MyIsam tmpfs?
有许多列 TEXT 类型的表。有些表很大,服务是高负载的。InnoDB 中的所有表。
当 SQL 查询创建 tmp 表时,如果它有一个 TEXT 类型的字段,则该表在磁盘上创建为 MyISAM 类型。为了避免磁盘 I/O 操作 MySQL 临时目录 (tmpdir) 被挂载在内存 (tmpfs) 中。
1) MyISAM tmpfs 或 Memory 哪个会更快?有很大的不同吗?
2) 如果 MyISAM 用于临时表,我是否需要配置缓冲区,只有 MyISAM 表才需要:read_buffer_size read_rnd_buffer_size?这些 MyISAM 配置是否会对性能产生影响?(Myisam_sort_buffe_size, key_buffer_size)
我想将 TEXT 更改为 VARCHAR。
linux - tmpfs 使用的内存是否可以像页面缓存一样被回收?
我正在使用带有目录的tmpfs 。/tmp
但是,当我添加文件时,输出free -h
显示cached
列值也会增加。
但是,我想知道页面缓存使用信息也被添加到cached
. 当我们内存不足时,目录中文件使用的内存是否/tmp
可以回收,就像我们对页面缓存所做的那样。
c++ - 表示单生产者多消费者缓冲区的 ram (tmpfs) 中的文件
限制:我的系统有 250MB RAM 内存可用。生产者生成的数据量约为 5Mb/秒。我需要提供大约 30 秒的缓冲区。所以大约150MB...
我想要实现的目标:在 tmpfs 挂载中实现单生产者单消费者环缓冲区。一个线程应该作为生产者填充缓冲区,多个线程应该从缓冲区中获取数据。
到目前为止,我已经尝试过vectors
(c++) 都导致分配错误。似乎使用连续内存分配不起作用(大约 50 MB)。deque
另一方面,使用(非连续)工作正常。但我仅限于关于内存管理的内核响应,可用内存可能低于初始化缓冲区的预期数量......这就是为什么我宁愿使用tmpfs
它,因为它以预定义的大小安装。
使用包含具有相关并发安全方法和属性(可能是无锁?)的循环缓冲区的类,我可以使用一系列文件创建缓冲区,tmpfs
每个文件的持续时间为 1 秒。
与双端队列实现相比,这是否足够快,或者我会感觉到从多个线程同时访问文件引起的延迟?
你的想法是什么家伙......我错过了什么吗?......
ubuntu-16.04 - Ubuntu "/run" = 到 10% 可用 RAM
我注意到 Ubuntu(14.04 和 16.04)/run
根据可用 RAM 创建一个分区,在 3 个不同的服务器中,我注意到这个值始终等于服务器上安装的 RAM 的 10%。
如何正确绕过这个值并tmpfs
在 Ubuntu 上增加这个分区?
谢谢。
drone - 设置无人机代理以拥有自定义 /dev/shm
0.5 中的默认无人机代理具有固定大小 /dev/shm 但我想将其大小自定义为大约 1GB。
这可能吗?我尝试安装主机的 /dev/shm ,但这被忽略了。
我很高兴 /dev/shm 在构建后被丢弃,但我希望它在一个阶段内保持持久性,例如,所有命令都build:
应该看到相同的挂载 /dev/shm。
docker-compose - docker-compose tmpfs 不工作
我有一个 docker-compose 文件,我试图通过将它创建的容器的根卷设为只读来保护它。
的相关部分docker-compose.yml
:
麻烦的是,tmpfs
没有被创建。如果我使用 运行容器的实例,则docker-compose run --rm mysql /bin/bash
该/var/run/mysqld
目录仍然是只读的,尽管有tmpfs
条目,并且任何尝试都touch /var/run/mysqld/foo
失败了。因为这是 MySQL 放置它的套接字和 pid 文件的地方,所以这会导致整个事情失败。我不确定为什么该tmpfs
条目在这种情况下不起作用。
我可以验证目录的权限是否正确(并且mysql
用户的 UID 是 999):
但我仍然不能:
即使我以 root 身份运行。
任何想法我做错了什么?
顺便说一句,/tmp
文件系统工作正常。
python - 使用 tmpfs 改进 openCV VideoWriter
我目前正在尝试使用 tmpfs 提高 python/openCV 性能,因为我在尝试以 640x480 在树莓派 3 上录制 USB 摄像头时卡在 5-10 FPS 左右。
在我的系统上,我使用 dd 命令获得这些原始写入传输率: SD 卡:2.5Mo/s tmpfs:380 Mo/s
可悲的是,在 tmpfs 文件夹上编写我的 opencv 视频文件时,我没有得到任何改进。这是我的基准代码:
它给 :
SD卡占用:8.289990901947021 tmpfs占用:8.240657806396484
如mount命令所述,tmpfs 已很好地启用
mount | grep "/var/tmp"
:tmpfs on /var/tmp type tmpfs (rw,nosuid,nodev,relatime)
mount | grep "/ "
/dev/mmcblk0p2 on / type ext4 (rw,noatime,data=ordered)
有人知道为什么 tmfs 没有提高写入速度吗?
pipe - 管道 VS RAM 上的临时文件
这是一个经典问题的回归:在两个进程之间传输数据,我们应该使用“管道”还是“临时文件”。
在这里进行了辩论,以供参考:管道与临时文件
现在,仅考虑可以使用 tmpfs 或 ramfs(基于 RAM 的文件系统)的 UNIX 系统,我们可以非常快速地写入临时文件。
在我的具体情况下,数据是 100Ko PNG 图像文件。
你更喜欢什么选择?
apache-spark - 在 Apache Spark 中使用 ChronicleMap
我们想在工作人员的 Apache Spark 中使用 ChronicleMap 在 VM 中存储共享缓存。目前,我们正在使用 Hazelcast 共享缓存,但显然,能够免费使用堆外内存并避免 tcp-ip(甚至超过 127.0.0.1)是我们喜欢 ChronicleMap 的原因,这就是我们希望能够使用它。
这个想法是让位于同一物理机器中的所有执行程序共享缓存,并且缓存将被持久化,tmpfs
以便它在 VM 本身处于活动状态之前保持有效(我们不需要在实例生命周期中持久保存这些值)和任何加入的工人都可以开始使用它。理想情况下,我们需要对存储的键进行 LRU 驱逐,尽管 ChronicleMap 不支持它,但考虑到它使用堆外内存,我想我们可以忍受这个限制,但更令人担忧的是它要求在访问期间从崩溃中恢复,这是我们设置中的一个问题。
例如,假设我们有 5 个执行程序在同一个 VM 上运行,共享缓存,其中一个 VM 在访问损坏缓存期间崩溃。其他执行者无从得知,只能让其中一人恢复,大家等待。如果至少可以保证在恢复期间或在损坏的缓存上的并发恢复或访问会引发一些异常,那将有所帮助,因为那时,访问失败的每个人都可以尝试获取文件锁,然后开始恢复过程以及其他任何访问在此期间可能会收到另一个异常,表明恢复正在进行中,最后,缓存已修复并且事情恢复正常,但从文档看来,行为只是未定义,这留下了太多疑问。
是否可以让 ChronicleMap 在我们的设置中工作?考虑到这些要求,有没有其他人成功地让它在 Apache Spark 中工作?任何建议都会有所帮助。