相关疑难解决方法(0)

iowait 是否包括等待网络调用的时间?

proc(5)手册页介绍IOWAIT为“为IO,完成时间的等待”。这主要在之前的问题中得到了解释。我的问题是:在等待阻塞 IO 时,这包括等待阻塞网络 IO 还是仅本地 IO?

linux unix iowait

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

为什么 CPU 花时间在 IO(wa) 上?

我知道wa(in top) 测量等待 I/O 的 CPU 时间。很多文章都这么说。

但我很困惑,基于 2 个知识点:

  1. 如果一个进程使用系统调用来读取磁盘,则该进程被阻塞。
  2. 如果一个进程被阻塞,它就不能被调度在 CPU 上运行。

对?

似乎没有时间让 CPU 等待 I/O...会发生什么?

如果推荐一些书籍或文章让我进一步阅读,那就更好了。

linux central-processing-unit io linux-kernel

19
推荐指数
1
解决办法
4322
查看次数

iowait 的百分比是多少被认为是高的?

当 iowait 被认为是高的?

iostat -x

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2,89    0,01    5,45   49,83    0,00   41,83

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
fd0               0,00     0,00    0,00    0,00     0,00     0,00     8,00     0,00   40,00  40,00   0,00
sda               0,18     0,86    2,82    0,60   181,20    21,92    59,35     0,03   10,22   5,02   1,72
sdb               3,96    39,67    6,27   20,94  2243,04   564,37   103,16     0,24    8,83   6,57  17,89
sdc              69,17     0,02   77,40   21,92 37365,20  1578,42   392,10     1,53   15,44   7,46  74,14
sdd               0,64 …
Run Code Online (Sandbox Code Playgroud)

top iowait iostat

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

Windows“iowait”CPU利用率报告

Windows 是否以与 Linux 相同的方式计算和报告“ iowait”?也就是说,进程进入“不间断睡眠”,他们花费的时间从“CPU空闲”中减去?

如果是这样,哪些 Perfmon 计数器适合检测“由于延迟服务 IO 而导致 CPU 繁忙”而不是“由于计算导致 CPU 繁忙”?

windows perfmon io iowait iostat

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

如何调查持续数小时的 100% CPU 事件的原因?

昨天我的基于 Xen 的 VPS 服务器上的 CPU 在两个小时内达到 100%,然后恢复正常,似乎很自然。

我检查了包括 syslog、auth.log 等在内的日志,似乎没有任何异常。

  • 在此期间,服务器似乎运行正常,如人们登录、收到的电子邮件等所示
  • 在此期间内存、磁盘和网络使用情况似乎正常。
  • 我已经好几个星期没有重新启动服务器了,那天早上我也没有在做这件事。
  • 我会使用安全更新等来更新它。这是 12.04 LTS。
  • 它运行 nginx、mysql 和 postfix 以及其他一些东西。

在事件系统日志的开始处包含以下条目:

Apr 27 07:55:34 ace kernel: [3791215.833595] [UFW LIMIT BLOCK] IN=eth0 OUT= MAC=___ SRC=209.126.230.73
 DST=___ LEN=40 TOS=0x00 PREC=0x00 TTL=244 ID=2962 PROTO=TCP SPT=49299 DPT=465 WINDOW=1024 RES=0x00 SYN URGP=0
Apr 27 07:55:34 ace dovecot: pop3-login: Disconnected (no auth attempts): rip=209.126.230.73, lip=___
Apr 27 07:55:34 ace kernel: [3791216.012828] [UFW LIMIT BLOCK] IN=eth0 OUT= MAC=___ SRC=209.126.230.73
 DST=___ LEN=40 TOS=0x00 PREC=0x00 TTL=244 ID=58312 …
Run Code Online (Sandbox Code Playgroud)

cpu-usage

9
推荐指数
1
解决办法
2770
查看次数

服务器内存占用近8GB

最近,我们的服务器面临内存问题。从几周前开始,我们的服务器加载非常缓慢。访问电子邮件和网站确实花费了太长时间。然后我们要求服务器技术支持为我们重新启动服务器。重启后,一切恢复正常。我们认为是时候升级 RAM 了。最初我们的服务器上只有 2GB RAM,因此我们将其升级为 8GB。

我们以为问题解决了。但是,升级RAM后,内存使用率越来越高。它就像总是达到其最大使用量(例如 7.8 GB 内存中有 456.5 MB 可用)。第二天,服务器完全宕机,我们不得不请求技术支持再次为我们重新启动服务器。每次遇到问题,都得请支持人员帮我们重启服务器。据支持人员介绍,如果他们的 SQL 访问,内存将恢复正常。但如果他们再上一次,内存会再次变高。因此,他们怀疑问题出在 SQL 查询上。

我想问一下,真的是SQL查询出问题吗?或者是硬件问题?如果是SQL,我怎么知道什么样的查询占用了这么大的内存?我该如何检查?我们的服务器正在运行以下详细信息:

OS: Linux 2.6.18
CPU: GenuineIntel, Intel(R)Xeon(R)CPU W3550 @ 3.07GHz
Average Load: 808.18;674.21;587.18
database records: 421,031 with 58 tables
Run Code Online (Sandbox Code Playgroud)

我可以从 PHPMyAdmin 提供的查询统计信息:

select  314 k   11.98 k 66.37%
set option  34 k    1,296.59    7.18%
show fields 19 k    712.00  3.94%
update  16 k    620.61  3.44%
alter table 16 k    610.32  3.38%
change db   15 k    569.08  3.15%
insert  15 k    560.20  3.10%
show …
Run Code Online (Sandbox Code Playgroud)

mysql linux memory

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