gpt4 book ai didi

hardware - 同时读取多个文件是个好主意吗?

转载 作者:行者123 更新时间:2023-12-04 17:19:12 26 4
gpt4 key购买 nike

我们公司的一台服务器有 32 个 CPU,我们有 1000 多个非常大的文件要处理。我不确定同时读取 32 个文件是否是个好主意,这样所有内核也可以同时执行独立计算。谁能简单解释一下硬盘的工作原理?如果我同时读取 32 个文件,会不会降低读取速度?谢谢!

最佳答案

hard disk传统上是一种机械数据存储设备。我假设服务器使用机械​​硬盘,而不是较新的 SSD 类型的硬盘,后者没有移动部件。我还假设有如此多的数据和处理能力,正在使用多个硬盘(RAID 或 NAS)。这些细节会显着影响性能,并可能导致以下大部分内容不准确。
硬盘是机械设备,内部有一个旋转的光盘,就像老式的唱机或 CD。它涂有一种可以记录和回放微小磁脉冲的 Material 。一个可定位的“读写”磁头在每个磁盘的表面上方飞行,通常在磁盘的两侧,准备在每个磁盘的表面上移动以定位、读取和写入这些磁脉冲。旋转和移动都需要时间。磁盘要做的“工作”越多,完成所需的时间就越长,这仅仅是因为它必须在磁盘表面上物理定位更多的微观区域。
也就是说,假设有 29 名员工被分配阅读大英百科全书的所有 29 卷。 (当然是 3 个主管。)每个卷都存储在一个硬盘上,因此有 29 个硬盘。有两种方法可以阅读整件事:

  • 拿起第一卷,然后让每位员工一次阅读一页,直到所有卷都读完。主管在处理所有页面时收集并重新排序,一次一卷。
  • 同时拿起所有 29 卷,并尝试随机阅读页面(最终效果),直到所有卷都读完。主管在处理时从 29 个随机章节中收集并重新排序所有页面...

  • 选项#1 似乎“过时”,但是关于这种方法的一个重要的事情是其他 28 个磁盘根本没有被使用。只有一个是。硬盘在顺序读取数据方面比随机读取数据要好得多。这是因为顺序读取避免了读写头来回寻找造成的延迟。
    选项#2 可行,而且听起来很合理,但它并不理想,原因有两个:a) 几乎没有顺序读取,以及 b) 所有磁盘都在使用中。这会使用更多的电力,并对服务器提出更大的要求以同时运行所有这些磁盘。
    所以是的,如果您尝试同时处理 32 个大文件,那么这会给磁盘带来巨大的负载,并且它们可能会缓慢爬行。更复杂,但可能是更好的解决方案,让 32 个内核一次“轮流”处理这些大文件中的一个,直到它们全部处理完毕。 (“轮流”是指将其分解为更小、更易于管理的块。)同样,目标是使磁盘尽可能按顺序读取,并避免随机来回查找。
    完成此操作的软件必须是 multi-threaded ,这意味着用户只启动一个程序,但它为其他 CPU 内核创建了 31 个新的“工作线程”。主程序开始按顺序读取数据,并将这些传入数据拆分为多个块,供其他线程(核心)处理。然后所有这些都“轮流”处理整个数据文件的一小部分,直到它被完全处理。

    关于hardware - 同时读取多个文件是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28614953/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com