问题标签 [iowait]
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.
android - android 中高 iowait 的 ANR
我正在运行 youtube 应用程序并获得 ANR 并且设备响应缓慢。
我得到 iowait 64%
那么我们如何识别导致iowait的应用程序或者它可以通过内核端的IO调度来处理。
android - iowait 扼杀了 Android 的性能
这是在Android上,我的应用程序在尝试创建大文件时会减慢UI交互,我的SD卡很慢,我可以观察到iowait
在创建大文件时出现高电平并且CPU处于空闲状态,在此过程中,应用程序缓慢,UI 交互无响应,这看起来很正常,因为我的 SD 卡很慢,这是 high 所期望的iowait
。
我在某处读到,只要使用异步 IO,iowait
就不会影响应用程序的性能,现在我不太明白的一件事是我正在后台线程中创建大文件,该线程同时与UI 线程,我认为不应该阻塞 UI 线程。是的,我没有使用 Java 非阻塞 IO API,但是使用后台线程进行异步还不够吗?
PS我正在通过将 aRandomAccessFile
和seek
ing 打开到指定位置来创建大文件。
regex - 使用 top 和 awk 获取 iowait
对于基准脚本,我需要在一些操作后立即提取 iowait %。
目前,我找到的最好方法是:IOWAIT=top -bn2 | awk '$1~/Cpu/ {print $6}' | sed -n '2p' | tr -d '%wa,'
正确的输出类似于 2.1:
首先,如果我没有精确“-bn2”,我不知道为什么,如果我只捕获 1 次,它总是 0.1%。所以我捕获了两次,然后我 awk 获取 iowait 字段,然后我 sed 第二行,然后我删除了“%wa”
仅供参考,这是输出top -bn2 | grep Cpu
我的问题如下:当我得到一列 100.0%(例如空闲)时,它改变了列号,所以我的 awk 不再工作,我得到“0.0%hi”字段。
我的问题如下:
- 如何告诉 awk 使用“%wa”进入列?
如果有人对我想做的事情有最好的方法,我当然非常愿意接受建议!
谢谢
performance - 高负载低cpu低iowait,为什么?
看看第一张图中的那些峰值,哪个因素会导致这种情况?
中央处理器 24X6
python - 在 python 中获取 IO 等待时间为 %
我正在编写一个 python 脚本来获取一些基本的系统统计信息。我大部分都使用 psutil ,除了我需要的一件事外,它工作正常。
我现在想记录平均 cpu 等待时间。从顶部输出,它将位于 %wa 下的 CPU 部分。
我似乎无法找到如何在 psutil 中获得它,有人知道如何获得它吗?我即将走上一条我真的不想走的路……
整个 CPU 行相当不错,因为它总计为 100,并且很容易记录和绘制。
提前致谢。
linux - Graphite Server 高 IO 等待时间
我们的 Graphite 服务器正面临 CPU 和磁盘瓶颈。主要问题是 %IO 等待时间总是在 40% 的范围内。我们在具有 7.5 GiB RAM 的 RHEL 服务器上的 2 核 CPU 上运行它。(同意,我们的 CPU 配置是原始的,但我们想在升级之前了解为什么会发生以下情况。)
我们的 Graphite 服务器每分钟处理超过 160,000 个数据点。但是磁盘 IO 统计数据显示 40% 的时间花在 IO 等待上。我们的磁盘 CISS 每秒可以写入 160 MiB,但 Graphite 每秒只能使用 2MiB。
有没有人遇到过这个问题?你的发现是什么?您对以上问题有什么建议吗?
非常感谢!
linux - 如果 iowait 现在是 99%,CPU 可以执行其他进程吗
如果只有一个cpu,IOwait是99%,cpu还能执行其他进程吗,如果是,是不是只能使用1%的cpu资源?或者其他进程也可以使用 100% cpu 资源,尽管在 99% Iowait 的场景下。
我在一本书中读到了下面这行“
如果是这样,99% iowait 并不意味着 cpu 处于空闲或等待状态,实际上它非常忙于接收和处理中断。如果这是真的,我猜其他进程只有 1% 的 cpu 资源可以使用。
cassandra - cassandra 读高 iowait
我有一个三节点的cassandra集群。当我从集群进行多线程查询时,io负载非常高。集群每个节点大约保存80GB数据。我使用时间窗口紧凑策略,时间窗口是十小时。一个sstable大约是 1GB。有人能帮我吗。谢谢。一个稳定
的信息
数据以每秒10000条的速度。集群拥有大约100亿条记录。以下是架构信息
并且查询是SELECT * from POINT_PERIOD where POINT_NAME=? AND YEAR='2017' AND TIME >'2017-05-23 12:53:24
按时间排序的 asc LIMIT 1 ALLOW FILTERING'
当同时执行此查询时,io 负载变得非常高,例如 200MB/s。谢谢你 。
python - 为什么读取文件的iowait为零?
找到psutil后,我做了一个简单的实验。有一个完整的 IO 基础函数,可以从文件中重复读取一些 numpy 数组(每个文件都有 763M 大小)。然后,在 100 秒后使用“cpu_times”测量函数的使用时间。我预计大部分时间都在 iowait 上,但结果如下:
为什么iowait为零?为什么系统的大部分时间都过去了?
代码如下:
这个写numpy数组的实验结果是合理的,74%的时间都是为了iowait。
python - sdcard 上的高 iowait - 进程卡住 5-15 秒
我有运行带有 SD 卡的 Ubuntu 的 IOT 设备(arm64)(格式化为带有日记功能的 ext4),其中我的应用程序日志记录(python 日志库)是对该 SD 卡上的文件进行的,总体写入速度(由 iotop 报告)约为 40KB /s(设备 24/7/365 运行)
我偶尔会看到(一周左右?)iowait 出现峰值(请参阅 netdata 的附加屏幕截图)。发生这种情况时,我的进程会卡住 5-15 秒,这已经很多了!
现在我知道我应该将我的日志记录更改为非阻塞以避免我的进程在磁盘出现问题时卡住,但考虑到写入速度非常低的事实,这段时间似乎过多。
自从我增加日志记录以来,情况变得更糟,但仍然不是很多数据。
我的下一步是:
- 使用 QueueHandler 做日志而不阻塞
- 禁用 SD 卡上的日记功能
- 禁用 docker 日志记录,因为它也在写入磁盘。
但我想了解导致这种停顿的根本问题,它可能是什么?