可能的情况是:许多CPU同时读取同一个文件,从而降低了每个CPU的读取速度吗?

约翰尼·谭(Johnny Tam)

我正在cat分别结合file_X了众多的若干文件,例如file_1file_100000000000

由于数量众多,我将作业分配到具有64个CPU的节点上,以在每个CPU上并行运行。每个作业都在一个子文件夹中运行,因此有64个子文件夹。

令我惊讶的是,总体速度比预期的要慢得多。

由于我使用的Shell脚本仅将每个作业定向到file_X位于64个子文件夹的父目录中的同一单个文件,因此我想知道是否有许多CPU同时读取同一文件,这会减慢每个CPU的读取速度吗?

埃德·格林

是的,没有。

不管有多少处理器执行该文件,实际读取文件的速度均应相同。

但是,取决于操作系统及其配置,可能会发生文件锁定。尽管多个进程可以同时具有读锁,但获取锁和释放该锁必须在共享的互斥块中进行。如果您的系统正在执行此类锁定,则处理器必须排队以访问文件,然后必须排队以声明对文件没有进一步的兴趣。

根据存储file_X的文件系统以及与之结合的各种文件以及该文件系统的安装选项,每次cat读取file_X时,其访问时间可能都会更新。如果是这样,很可能在每次更新之前都会对file_X inode进行写锁定,然后将其释放。

降低速度的另一个可能原因是,所有这些作业中的所有64个都是并行写入文件,这些文件必须位于磁盘上的不同点上。除非使用固态驱动器(SSD),否则可能需要大量移动磁盘上的写磁头。这些文件位于64个不同的目录中,因此除了要创建的文件之外,还有64个要更新的位置。

在shell脚本中执行所有这些活动意味着每个文件副本都将被fork执行。Fork被视为相当昂贵的系统调用,但是在具有共享库的系统上,与exec系列系统调用的成本相比,它显得苍白,因为这需要搜索每个共享库,并加载所有共享库。库。这是另一个可能在文件上放置读取锁的地方,具体取决于它所在的UNIX以及其配置是什么。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

同时在同一个文件上以读取模式打开两个 FILE 句柄

来自分类Dev

可以让多个进程从同一个文本文件中读取吗?

来自分类Dev

C# Array 2 个线程同时读取同一个项目

来自分类Dev

Java:多个线程同时读取同一个InputStream

来自分类Dev

读取文件,查找模式,编辑并写回同一个二进制文件

来自分类Dev

熊猫可以同时写入同一个CSV文件吗?

来自分类Dev

在同一个脚本中读取多个文本文件

来自分类Dev

在 Fortran 中写入然后从同一个文件中读取

来自分类Dev

Dropbox和Google云端硬盘同时同步同一个文件夹,可以吗?

来自分类Dev

在一个线程中读取INI文件而不消耗CPU时间

来自分类Dev

我将如何在同一个 .dat 文件中保存和读取一个整数然后一个结构数组?

来自分类Dev

如何使用数据集在 Visual Basic/C# 中读取和写入同一个 XML 文件?

来自分类Dev

在同一个文件中或在一组文件的每个文件中具有多个类的速度更快?

来自分类Dev

几个nodejs应用共享同一个cpu0,还是在cpus之间划分?

来自分类Dev

C fork()使一个进程同时读取文件

来自分类Dev

我可以基于同一个镜像同时启动多个 Docker 容器吗?

来自分类Dev

为什么同一个磁盘读取测试结果如此不同

来自分类Dev

在 Flink / Kafka 中从同一个 Socket 读取和写入

来自分类Dev

如何使用节点 js 创建和读取同一个临时 SQL 表

来自分类Dev

读取文件时第一个字节可能为零吗?

来自分类Dev

nodejs 同时读取 4 个以上的大文件时速度慢吗?

来自分类Dev

在同一个PHP文件中同时执行INSERT和SELECT

来自分类Dev

BIOS升级降低了CPU温度

来自分类Dev

两个File指向同一个文件吗?

来自分类Dev

两个文件夹可以共享同一个localStorage吗?

来自分类Dev

两个File指向同一个文件吗?

来自分类Dev

对同一个过度使用的函数的许多并发调用会导致Lua中的阻塞吗?

来自分类Dev

多个Java进程可以同时读取同一文件吗?

来自分类Dev

两个线程可以同时使用同一个嵌入式python解释器吗?

Related 相关文章

  1. 1

    同时在同一个文件上以读取模式打开两个 FILE 句柄

  2. 2

    可以让多个进程从同一个文本文件中读取吗?

  3. 3

    C# Array 2 个线程同时读取同一个项目

  4. 4

    Java:多个线程同时读取同一个InputStream

  5. 5

    读取文件,查找模式,编辑并写回同一个二进制文件

  6. 6

    熊猫可以同时写入同一个CSV文件吗?

  7. 7

    在同一个脚本中读取多个文本文件

  8. 8

    在 Fortran 中写入然后从同一个文件中读取

  9. 9

    Dropbox和Google云端硬盘同时同步同一个文件夹,可以吗?

  10. 10

    在一个线程中读取INI文件而不消耗CPU时间

  11. 11

    我将如何在同一个 .dat 文件中保存和读取一个整数然后一个结构数组?

  12. 12

    如何使用数据集在 Visual Basic/C# 中读取和写入同一个 XML 文件?

  13. 13

    在同一个文件中或在一组文件的每个文件中具有多个类的速度更快?

  14. 14

    几个nodejs应用共享同一个cpu0,还是在cpus之间划分?

  15. 15

    C fork()使一个进程同时读取文件

  16. 16

    我可以基于同一个镜像同时启动多个 Docker 容器吗?

  17. 17

    为什么同一个磁盘读取测试结果如此不同

  18. 18

    在 Flink / Kafka 中从同一个 Socket 读取和写入

  19. 19

    如何使用节点 js 创建和读取同一个临时 SQL 表

  20. 20

    读取文件时第一个字节可能为零吗?

  21. 21

    nodejs 同时读取 4 个以上的大文件时速度慢吗?

  22. 22

    在同一个PHP文件中同时执行INSERT和SELECT

  23. 23

    BIOS升级降低了CPU温度

  24. 24

    两个File指向同一个文件吗?

  25. 25

    两个文件夹可以共享同一个localStorage吗?

  26. 26

    两个File指向同一个文件吗?

  27. 27

    对同一个过度使用的函数的许多并发调用会导致Lua中的阻塞吗?

  28. 28

    多个Java进程可以同时读取同一文件吗?

  29. 29

    两个线程可以同时使用同一个嵌入式python解释器吗?

热门标签

归档