问题标签 [disk-io]
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.
c++ - 检索磁盘读/写最大速度(以编程方式)
我正在创建一个测量磁盘使用情况的 C++ 应用程序。/proc/diskstats我已经能够通过定期读取来检索当前的磁盘使用情况(读写速度) 。
我现在希望能够以百分比的形式显示此使用情况(我发现它比原始数字更易于使用,这可能很难解释)。因此,有谁知道在 Linux 上以编程方式检索最大(或标称)磁盘 I/O 速度的方法(API 调用、读取文件等)?
我知道有关测量磁盘速度的各种答案(例如https://askubuntu.com/questions/87035/how-to-check-hard-disk-performance),但都是通过测试。我想避免这样的方法,因为它们需要一些时间来运行并且在运行时需要大量的磁盘 I/O(因此可能会降低其他正在运行的应用程序的性能)。
docker - Windows 10 docker-compose 占用 100% 磁盘使用率
Docker 在 Windows 10 上非常慢。我执行了很多任务以使索引不在文件夹上运行,并试图加快速度。该进程似乎占用了 100% 的 CPU,这很好,但也占用了 100% 以上的磁盘 IO,这是一个巨大的瓶颈。在 linux 或 mac 上运行不到 10 秒的任务在 Windows 上需要 40 分钟以上才能完成。
这根本无法以任何有意义的方式使用。docker-compose 坚持将 150MB/s 写入磁盘而不是使用 ram 是否有原因?我有很多公羊。我实际上可以将整个 docker-container 系统存储在 ram 中,并且剩余大约 10GB。
顺便说一句,虽然坚持 docker 只在 Linux 上运行服务器是可行的,但开发必须支持 windows、linux 和 mac。我不敢相信测试并没有显示 Windows 10 支持严重缺乏,不,关闭防病毒绝对不是一种选择。许多 docker 开发人员没有这样做的适当权限,建议 docker 用户禁用防病毒是一个令人难以置信的请求。另外,禁用杀毒之类的仍然无法回答为什么 docker 会占用 100% 的磁盘 IO。
c - Linux 中的 mark_page_accessed 是什么?
我正在分析我的 I/O 密集型应用程序,并在执行read. 这是让我感到困惑的部分perf report:
可以看出,它mark_page_accessed占用了文件读取例程的 20%。它似乎与执行的块设备 I/O 无关,page_cache_async_readahead在我的情况下甚至没有调用它。所以所有文件数据都在缓存中。
void mark_page_accessed(struct page *page)使用以下文本对实现进行了注释:
因此,如果页面是inactiveor ,它似乎会发生unreferenced。
问题:这是什么原因mark_page_accessed?是因为页面是不是而发生inactive的unreferenced?可能是什么原因?该页面已从磁盘读取,因此不会发生页面错误(主要或次要)。
amazon-web-services - 为什么我的新 AWS EC2 实例上的磁盘 IO 这么慢?
我有一个A带有 200GB SSD 的常规 EC2 实例,其中充满了数据。我使用该磁盘创建了一个 AMI,并使用该 AMI 启动了另一个B具有相同规格的 EC2 实例。
B几乎立即启动,这让我感到惊讶,因为我认为 AWS 将我的 200GB EBS 复制到与新实例对应的 SSD 时会有延迟。但是我注意到 IO 非常慢B。解析B.
为什么会这样,我该如何克服呢?对于需要快速磁盘 IO 的应用程序来说,它太慢了。
macos - 如何在 Mac OSX 中查找磁盘 IO
我正在使用 Mac 10.15.1
在 Linux 中,我们可以读取 proc 文件系统中的“diskstats”文件以获取此信息。
我可以使用 CoreFoundation 和 IOKit 框架找到它,但无论如何都可以在不使用这些框架的情况下读取磁盘 IO 吗?
python-3.x - 如何获得读写百分比?
我正在尝试使用 Python 在 Windows 10 中获取图像中显示的值。我已经研究过有关此资源的类似问题,但没有找到任何可行的变体或明确的说明来获得所需的值。
c++ - 在将本地文件写入网络时流式传输本地文件的高性能方式
现在有一个系统可以在数据包捕获文件进入时将它们写入本地磁盘。出于容错的原因,将这些文件作为第一步删除到本地磁盘被认为是可取的。如果客户端死机并需要重新连接或在其他地方启动,我们享受从磁盘重播的能力。
数据管道的下一步是尝试将这些登陆到磁盘的数据发送到远程客户端。假设有足够的磁盘空间,我觉得使用本地磁盘(以及它上面的页面缓存)作为持久的无限先进先出非常方便。还希望使用文件系统来保持生产者和消费者之间的低耦合。
在我的研究中,我没有找到很多关于这种架构的指导。更具体地说,我还没有在流行的开源库/框架中看到用于在文件被写入流式传输时读取文件的成熟模式。
我的问题:
这个架构中是否存在我没有注意到或间接淡化的缺陷?
是否有建议在写入文件时使用它,并在文件中有更多可用数据时有效地阻止和/或异步通知?
目标是显式或隐式地让消费者从页面缓存温暖中受益。有没有关于如何优化这个的建议?
database - Postgres 内部结构
我想了解 postgres 如何将数据写入文件(FileFormat & Structure)。用于存储这些数据的编码方法和压缩方法是什么。压缩是单元级别还是整个表级别。数据修改如何在文件中发生。postgres 如何优化它的 IO 处理?任何人都可以发送与这些主题相关的链接或文档。
redis - Redis中快照的机制是什么?
我们可以在 Redis 配置文件中定义快照在一定时间间隔后发生。我想清楚的是,该快照过程是差异化的,还是它会创建驻留在 RAM 中的 Redis 数据库的全新转储并删除旧的转储。
另外,如果 Redis 中没有差异快照机制,那么这意味着如果我每隔 5 分钟对 Redis db 进行一次快照,那么我的磁盘 I/O 不会减少,并且会根据 db 的大小保持不变即使我只改变了一把钥匙。正确的?

