如何以及何时使用/ dev / shm来提高效率?

时间:2017-03-19 07:35:15

标签: linux performance io filesystems shared-memory

/dev/shm如何比在常规文件系统上编写文件更有效率?据我所知,/dev/shm也是HDD上的空间,因此读/写速度是相同的。

我的问题是,我有96GB文件,只有64GB内存(+ 64GB交换)。然后,来自同一进程的多个线程需要读取文件的小随机块(大约1.5MB)。

/dev/shm是一个很好的用例吗? 它是否比从/home以只读模式打开文件然后传递给线程以读取所需的随机块更快?

1 个答案:

答案 0 :(得分:5)

您不使用$details = $database_gk->query("SELECT `meta_key`, `meta_value` FROM `fWR6qIN_postmeta` pm WHERE post_id = $pid AND (meta_key like 'product_shops_%_price' OR meta_key like 'product_shops_%_link' OR meta_key like 'product_shops_%_price_old' OR meta_key like 'product_shops_%_shop');"; 。它的存在使得POSIX C库可以通过POSIX API提供共享内存支持。不是这样,你可以在那里戳东西。

如果您需要自己的内存文件系统,可以在任何地方安装。

例如,

/dev/shm

Linux mount -t tmpfs tmpfs /mnt/tmp是一个仅存在于RAM中的临时文件系统。它通过一个文件缓存实现,后面没有任何磁盘存储。它会在内存压力下将其内容写入交换文件。如果您不想使用交换文件,则可以使用tmpfs

我不知道你在哪里使用ramfs来提高读取文件的效率,因为这根本不是它的作用。

也许您正考虑通过/dev/shm系统调用来使用内存映射?