标签: io

谁能准确解释一下 IOWait 是什么?

就我所读到的关于 iowait 的内容而言,它对我来说仍然是个谜。

我知道这是 CPU 等待 IO 操作完成所花费的时间,但是究竟是什么样的 IO 操作呢?我也不确定,为什么它如此重要?CPU 不能在 IO 操作完成时做其他事情,然后再返回处理数据吗?

还有什么是正确的工具来诊断哪些进程确实在等待 IO。

以及有哪些方法可以最大限度地减少 IO 等待时间?

io iowait

238
推荐指数
5
解决办法
27万
查看次数

网络现在比磁盘快吗?

这是一个软件设计问题

我曾经按照以下速度规则工作

cache memory > memory > disk > network
Run Code Online (Sandbox Code Playgroud)

每一步都是前一步的 5-10 倍(例如,高速缓存比主存储器快 10 倍)。

现在,似乎千兆以太网的延迟比本地磁盘少。因此,也许读取大型远程内存数据库的操作比本地磁盘读取快。对于像我这样的老前辈来说,这感觉就像异端邪说。(我只是花了一些时间在磁盘上构建本地缓存以避免必须进行网络往返 - 因此我的问题)

有人在这方面有任何经验/数字/建议吗?

是的,我知道唯一真正的方法是构建和测量,但我想知道一般规则。

编辑

这是来自顶级答案的有趣数据:

  • 同一数据中心内的往返 500,000 ns

  • 磁盘寻道 10,000,000 ns

这对我来说是一个冲击;我的心智模型是网络往返本质上是缓慢的。它不是 - 它比磁盘“往返”快 10 倍。

Jeff attwood 在http://blog.codinghorror.com/the-infinite-space-between-words/上发布了这个很好的博客

performance io

146
推荐指数
3
解决办法
7万
查看次数

如何检查每个进程的磁盘 I/O 利用率?

我在使用 Linux 系统时遇到问题,我发现sysstatsar报告了磁盘 I/O、平均服务时间以及平均等待时间的巨大峰值。

下次发生这些峰值时,我如何确定哪个过程导致了这些峰值?

有可能sar吗?我可以从已经录制的sar文件中找到这些信息吗?

的输出sar -d,系统停顿发生在下午 12.58-13.01 左右。

12:40:01          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
12:40:01       dev8-0     11.57      0.11    710.08     61.36      0.01      0.97      0.37      0.43
12:45:01       dev8-0     13.36      0.00    972.93     72.82      0.01      1.00      0.32      0.43
12:50:01       dev8-0     13.55      0.03    616.56     45.49      0.01      0.70      0.35      0.47
12:55:01       dev8-0     13.99      0.08    917.00     65.55      0.01      0.86      0.37      0.52
13:01:02       dev8-0      6.28      0.00    400.53     63.81      0.89    141.87    141.12     88.59 …
Run Code Online (Sandbox Code Playgroud)

linux storage io

57
推荐指数
5
解决办法
18万
查看次数

Linux - 如何查看等待磁盘 IO 的内容

我有一台负载非常高的服务器。就 CPU 使用率而言,我没有任何反应,也没有交换。

我认为这是因为某些进程正在等待磁盘 IO,我想看看在等待什么。

是否有任何程序可以显示哪些进程正在等待 IO?我知道,iotop但这显示了当前正在执行 IO 的操作。

或者这是一个愚蠢的问题?(如果是这样解释如何:))

linux io top

46
推荐指数
3
解决办法
7万
查看次数

在 Linux 下测量“写入的总字节数”

我们对探索在服务器环境中使用 SSD 驱动器的可能性非常感兴趣。但是,我们需要确定的一件事是预期驱动器寿命。根据这篇文章,制造商以“写入的总字节数”(TBW)来报告驱动器的耐用性。例如,从那篇文章中可以看出,Crucial C400 SSD 的额定容量为 72TB TBW。Linux 生态系统下是否存在任何脚本/工具来帮助我们衡量 TBW?(然后对使用 SSD 驱动器的可行性做出更明智的决定)

linux ssd io measurement

41
推荐指数
3
解决办法
3万
查看次数

如何识别 Linux 服务器上的 I/O 瓶颈?

您如何确定 Linux 服务器的性能受 I/O 限制,也许更重要的是,哪个或哪些进程导致了问题?

linux performance tuning io

34
推荐指数
2
解决办法
7万
查看次数

如何在 Linux 下监控每个进程的网络 I/O 使用情况?

诸如 iftop/iptraf 之类的已知工具显示每个接口和每个连接的网络 I/O。有没有办法查看每个进程的网络 I/O 统计信息?

networking linux io

33
推荐指数
2
解决办法
4万
查看次数

kworker 消耗 +90% IO 和零磁盘写入

这是 AWS Linux AMI + EBS 上的标准 apache Web 服务器。我们注意到高平均负载 (+8) 并iotop -a显示:

Total DISK READ: 0.00 B/s | Total DISK WRITE: 2.37 M/s

  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND             
 3730 be/4 root          0.00 B      0.00 B  0.00 % 91.98 % [kworker/u8:1]
  774 be/3 root          0.00 B   1636.00 K  0.00 % 15.77 % [jbd2/xvda1-8]
 3215 be/4 apache        0.00 B     40.39 M  0.00 %  0.88 % httpd
 3270 be/4 apache        0.00 B     38.20 M  0.00 …
Run Code Online (Sandbox Code Playgroud)

linux io amazon-web-services apache-2.2

25
推荐指数
1
解决办法
3万
查看次数

确定哪个进程导致大量磁盘 I/O?

我见过这个问题: 如何识别大量写入磁盘?

而且我之前使用过dstatatop ……但它们似乎没有指出是什么进程导致了磁盘 I/O。例如,来自 dstat:

dstat -ta --top-bio
----system---- ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- ----most-expensive----
     time     |usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw |  block i/o process
14-12 16:16:25| 22   3  49  26   0   0|2324k    0 |  17k 6144B|   0     0 |1324     0 |
14-12 16:16:26| 24   3  30  43   0   0|4960k 8192B|1498B 4322B|   0     0 |1494     0 |wget          0  4096B
14-12 16:16:27| 25   4  38  33   0 …
Run Code Online (Sandbox Code Playgroud)

linux performance io

21
推荐指数
1
解决办法
4万
查看次数

有没有办法在 Linux 中获得块设备的缓存命中率/未命中率?

是否可以在 Linux 中看到有多少来自用户空间的读写请求最终导致块设备的缓存命中和未命中?

linux cache io

20
推荐指数
2
解决办法
1万
查看次数