Php
100% 硬體 IRQ,而 PHP 似乎隻掛了一秒鐘
我在 Fedora 機器上執行FLOW3 快速入門(如果有幫助,在 Windows 上虛擬化)。每個請求大約需要 1.2 秒來執行這個框架最簡單的範例。我跑了
top
,期待看到一些CPU或I/O 等待,但機器似乎只是在等待某些東西,硬 IRQ為 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 是從哪裡來的嗎?
聽起來延遲源於虛擬機託管您的虛擬機所產生的成本。我認為如果您切換到另一個虛擬化解決方案(Hyper-V、Xen、KVM、VMWare 等),您會看到這種延遲消失。
我相信虛擬機並不是為了提供對硬體的低延遲訪問而設計的,它只是一個方便的客戶作業系統容器(以犧牲性能為代價)。