Php

100% 硬體 IRQ,而 PHP 似乎隻掛了一秒鐘

  • November 26, 2012

我在 Fedora 機器上執行FLOW3 快速入門(如果有幫助,在 Windows 上虛擬化)。每個請求大約需要 1.2 秒來執行這個框架最簡單的範例。我跑了top,期待看到一些CPUI/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 等),您會看到這種延遲消失。

我相信虛擬機並不是為了提供對硬體的低延遲訪問而設計的,它只是一個方便的客戶作業系統容器(以犧牲性能為代價)。

引用自:https://serverfault.com/questions/309463