问题标签 [hard-drive]
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.
linux - 同时处理多个文件——通过 NFS 复制文件还是读取文件?
我需要同时处理大量文件(数千个不同的文件,每个文件的平均大小为 2MB)。
所有信息都存储在一个 (1.5TB) 网络硬盘上,将由大约 30 台不同的机器处理。为了提高效率,每台机器将读取(和处理)不同的文件(有数千个文件需要处理)。
每台机器——在从 1.5TB 硬盘上的“传入”文件夹中读取文件之后——将处理信息并准备将处理后的信息输出回 1.5TB 硬盘上的“已处理”文件夹。每个文件的处理信息与输入文件的平均大小大致相同(每个文件约 2MB)。
有什么更好的做法:
(1) 对于每台处理机M ,将M将要处理的所有文件复制到其本地硬盘中,然后在机器M上本地读取和处理文件。
(2) 不是将文件复制到每台机器,而是每台机器将直接访问“传入”文件夹(使用 NFS),并从那里读取文件,然后在本地处理它们。
哪个想法更好?当一个人做这样的事情时,是否有任何“做”和“不做”?
我很好奇,让 30 台左右的机器同时读取(或写入)信息到同一个网络驱动器是否有问题?
(注意:现有文件只会被读取,不会被追加/写入;新文件将从头开始创建,因此不存在多次访问同一文件的问题......)。有没有我应该预料到的瓶颈?
(如果一切都很重要,我会在所有机器上使用 Linux、Ubuntu 10.04 LTS)
python - 使用 python 从磁盘处理大量数据的最有效方法是什么?
我正在编写一个简单的 python 脚本来读取和重建失败的 RAID5 阵列的数据,我无法以任何其他方式重建该阵列。我的脚本正在运行,但速度很慢。我的原始脚本以大约 80MB/分钟的速度运行。此后我改进了脚本,它以 550MB/分钟的速度运行,但这似乎仍然有点低。python 脚本位于 100% CPU,所以它似乎是 CPU 而不是磁盘受限,这意味着我有机会进行优化。因为脚本根本不是很长,所以我无法有效地分析它,所以我不知道是什么在吃掉它。这是我现在的脚本(或者至少是重要的部分)
粗体表示这个巨大文本块中的实际问题:
我可以做些什么来使这更快/更好吗?如果什么都没想到,我能做些什么来更好地研究是什么让这件事进展缓慢?(有没有办法在每行级别上分析 python?)我是否以正确的方式处理这个问题,还是有更好的方法来处理大量二进制数据?
我问的原因是我有一个 3TB 驱动器重建,即使它工作正常(我可以挂载图像 ro,循环和浏览文件很好)它需要很长时间。我用旧代码测量它需要到一月中旬,现在它要到圣诞节(所以它要好得多,但它仍然比我预期的要慢。)
Before you ask, this is an mdadm RAID5 (64kb blocksize, left symmetric) but the mdadm metadata is missing somehow and mdadm does not allow you to reconfigure a RAID5 without rewriting the metadata to the disk, which I am trying to avoid at all costs, I don't want to risk screwing something up and losing data, however remote the possibility may be.
c# - 如何在 C#(无 WMI)中获取硬盘序列号?
我知道 CodeProject 中有两篇文章(一篇使用 WMI,另一篇没有 WMI,但使用 C++)。我试过WMI的方式,不仅慢,而且不可靠。所以,这就是为什么我决定不走这条路。我想通过 pInvoke 在 C# 中做到这一点。我试过了,但卡在 DeviceIoControl API 中。任何人都可以给我一个提示吗?这是我的代码:
windows - 谁能推荐适用于 Windows 的磁盘 I/O 基准测试软件?
我想测试文件系统在不同条件下的性能。
具体来说,我想在“普通硬盘”和 USB 磁盘上测试没有压缩和压缩的 Windows 虚拟机的性能,因为看看到底有什么区别会很有趣。
我需要的是一个程序,它可以测试文件系统的不同方面(随机访问、顺序读/写等)并制作与我的博客相得益彰的漂亮图表。最好应用程序应该是自动化的,这样我就可以将它添加到启动中,这样每次运行的时间都是相同的,我可以重复运行以进行验证。
当我开始测试它时,我可以在此处发布结果链接。现在它只是在计划阶段。
c# - File.Copy 挂在损坏的文件上
我一直在尝试将文件从旧驱动器复制到新驱动器。问题是,旧驱动器(我只能假设)磁盘上有一些损坏的地方,任何从其中一些文件中读取的尝试都会导致似乎是某种无限循环。在我要复制的文件中散布着很多问题文件,当它遇到第一个时,我的应用程序只是坐在那里什么都不做,直到我停止它。我希望我可以通过编写一个自定义程序来递归遍历目录,一个一个地复制文件,并捕获在单个复制操作中弹出的任何错误来解决这个问题,但它永远不会引发错误 - -只是坐在那里,坐在那里,坐在那里。阻止这种情况的唯一方法是物理关闭有问题的硬盘驱动器 - 可以'
我对如何继续感到有些困惑。鉴于这种错误将会发生,有没有办法自动化这个过程?有人对这个有经验么?
optimization - 过度使用硬盘会降低硬盘驱动器的性能吗?
过度使用硬盘会降低硬盘驱动器的性能吗?
背景:一些代码我读取特定文件的频率超过了它需要的频率。降低它读取文件的频率并不是出于速度问题的理由,但如果它对运行它的硬盘驱动器造成长期损坏(它只在一台计算机上运行),那么改变它是合理的。
php - 是否可以从 PHP 获取特殊的本地磁盘信息?
我在本地计算机上运行我的 PHP 代码,所以,我只想知道 PHP 有什么功能可以获取本地硬盘信息。例如磁盘名称、磁盘空间、可用空间等。
非常感谢你!!
c# - 存储设备、文件传输和复制操作逻辑
我正在尝试创建一个文件复制实用程序,它应该可以替代标准的 Windows 文件复制过程。这样做的主要原因是添加复制/移动队列支持,并希望通过仅在文件传输不涉及相同目标物理介质时启用多个文件传输来进行某种优化(您知道当有使用相同的目标媒体进行多次传输?)
我想澄清一下,我几乎没有现实世界的编程经验。我打算将 C#/.net 用于该项目。
本质上,我打算创建与 teracopy 功能相似的东西(如果性能提升不同)。
以下是我需要专家建议的几件事:
文件复制/移动速度如何取决于存储介质(硬盘、闪存驱动器等)?
从一个硬盘到另一个硬盘的读/写速度。(例如,将文件从硬盘 A 复制到 B,从 A 复制到 A)。
如果同时执行,什么样的同时复制/移动操作不会相互显着影响(我不考虑处理器或设备控制器上的负载......或者我应该吗?)?
我承认我可能对这些问题不是很清楚,所以如果您需要更多详细信息才能提供答案,请告诉我。
谢谢你。
c++ - 从 C++ 程序获取 Linux 上的 SCSI 硬盘驱动器串行
我想从没有 root 权限的 C++ 程序中检索 Linux (Ubuntu) 上的 SCSI 硬盘驱动器串行。我试过 ioctl(fd, HDIO_GET_IDENTITY, &id) 但它似乎只适用于 ATA 设备。有人有 SCSI HDD 的解决方案吗?我正在寻找的解决方案不应该要求用户拥有 root 权限。任何源代码将不胜感激
c - 如何防止磁盘分区显示在 Windows 资源管理器中?
假设我有一个 100GB 的驱动器,并且我想使用 1GB 放置重新安装软件。我希望他隐藏 1GB - 不是来自用户,而是来自操作系统。假设 Windows XP 及更高版本。我可以使用一系列 API 调用来做到这一点吗?还有哪些其他技术可以“隐藏”硬盘的一部分?