我正在运行FLOW3 快速入门在 Fedora 机器上(如果有帮助的话,在 Windows 上虚拟化)。每个请求大约需要 1.2 秒来运行这个框架最简单的示例。我运行了一下,top
希望看到一些中央处理器或者输入/输出等待但相反,这台机器似乎只是在等待某件事,硬中断请求100% 时:
top - 13:21:42 up 57 min, 3 users, load average: 3.49, 2.05, 1.29
Tasks: 147 total, 2 running, 145 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa,100.0%hi, 0.0%si, 0.0%st
Mem: 768208k total, 485356k used, 282852k free, 5524k buffers
Swap: 1507324k total, 19424k used, 1487900k free, 102724k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2315 apache 20 0 102m 24m 10m S 2.3 3.2 0:00.82 httpd
2316 apache 20 0 102m 24m 10m S 1.7 3.2 0:00.86 httpd
2319 apache 20 0 102m 24m 10m S 1.7 3.3 0:00.78 httpd
1734 test 20 0 73688 12m 7388 S 0.7 1.6 0:16.96 gnome-terminal
1041 root 20 0 70788 27m 2496 S 0.3 3.7 0:31.71 Xorg
2472 apache 20 0 23160 5104 3712 R 0.3 0.7 0:00.01 php
1 root 20 0 5208 1932 1464 S 0.0 0.3 0:01.11 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.75 ksoftirqd/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
7 root RT 0 0 0 0 S 0.0 0.0 0:00.08 watchdog/0
8 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset
9 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 sync_supers
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 bdi-default
13 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd
软件版本:Fedora 15,PHP 5.3.6,MySQL 5.6.2-m5
信息:一个简单的<?php phpinfo(); ?>
脚本在5毫秒内运行。
知道这个硬件 IRQ 来自哪里吗?
答案1
听起来延迟是由于虚拟机托管虚拟机所产生的开销造成的。我认为,如果您切换到其他虚拟化解决方案(Hyper-V、Xen、KVM、VMWare 等),这种延迟就会消失。
我相信虚拟盒并非旨在提供低延迟硬件访问,而只是为客户操作系统提供一个方便的容器(以牺牲性能为代价)。