8コア

プロキオン通販案内通販商品ナビ・Flashバージョンがお世話になっている使えるねっとVPS(シルバー)では、なんと8コアが動いていました。
まずはCPU情報から(/proc/cpuinfoの抜粋)

-bash-3.1$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Xeon(R) CPU           E5310  @ 1.60GHz
stepping        : 7
cpu MHz         : 238.471
cache size      : 4096 KB

インテルのホームページのE5310によるとクアッドコアであることが判ります。キャッシュサイズが8Mとありcpuinfoの4Mとは食い違っています。それでは実際使えるねっとVPS(シルバー)では、何個のコアが割り当てられて調べてみましょう。linuxコマンドのtopでCPUの個数を調べてみることにします。
まずはtopを起動します。

top - 15:53:58 up 29 days,  4:23,  5 users,  load average: 0.00, 0.00, 0.00
Tasks:  61 total,   1 running,  60 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2% us,  0.1% sy,  0.0% ni, 99.5% id,  0.3% wa,  0.0% hi,  0.0% si
Mem:    524288k total,   202196k used,   322092k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND              
    1 root      16   0 10228  696  580 S    0  0.1   0:07.45 init                 
21758 root      16   0  5796  604  488 S    0  0.1   1:12.65 syslogd              
21794 named     20   0  200m 3844 1864 S    0  0.7   0:14.33 named                
21823 root      16   0 44216 1068  640 S    0  0.2   0:00.78 sshd                 
21835 root      16   0 21508  912  708 S    0  0.2   0:51.44 xinetd               

少し前のtopコマンドではcpu別に確認することができたのですが、今は1つにまとめられて表示されるようです。ここで1キーを入力してみます。するとcpu別に表示されるようになります。

top - 15:57:35 up 29 days,  4:26,  5 users,  load average: 0.04, 0.01, 0.00
Tasks:  60 total,   1 running,  59 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu1  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu2  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu3  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu4  :  0.0% us,  0.3% sy,  0.0% ni, 99.7% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu5  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu6  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu7  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:    524288k total,   201768k used,   322520k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND              
26314 ode       17   0 12500 1184  904 S    0  0.2   0:33.92 top                  
21758 root      15   0  5796  604  488 S    0  0.1   1:12.66 syslogd              
21794 named     20   0  200m 3844 1864 S    0  0.7   0:14.33 named                
21823 root      16   0 44216 1068  640 S    0  0.2   0:00.78 sshd                 

これでcpu別の使用率を確認することができます。早速単純ループのプロセス(loop.pl)を1つ起動してみます。

top - 16:15:33 up 29 days,  4:44,  5 users,  load average: 0.87, 0.89, 0.56
Tasks:  61 total,   2 running,  59 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu1  : 100.0% us,  0.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu2  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu3  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu4  :  0.3% us,  0.3% sy,  0.0% ni, 99.3% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu5  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu6  :  0.0% us,  0.3% sy,  0.0% ni, 99.7% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu7  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:    524288k total,   202428k used,   321860k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND              
29847 ode       25   0 23616 1712 1352 R  100  0.3   0:31.51 loop.pl              
26314 ode       16   0 12500 1184  904 S    0  0.2   0:35.37 top                  
28080 ode       16   0 80264 1760 1008 S    0  0.3   0:01.04 sshd                 
21758 root      15   0  5796  604  488 S    0  0.1   1:12.66 syslogd              

CPU1の使用率が100%になっています。もう少し負荷をかけることにします。合計4つのループプロセスを起動します。

top - 16:18:08 up 29 days,  4:47,  5 users,  load average: 1.84, 1.12, 0.68
Tasks:  64 total,   5 running,  59 sleeping,   0 stopped,   0 zombie
Cpu0  : 100.0% us,  0.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu1  : 98.9% us,  1.1% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu2  : 100.0% us,  0.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu3  : 100.0% us,  0.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu4  :  0.3% us,  0.0% sy,  0.0% ni, 99.7% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu5  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu6  :  0.0% us,  0.3% sy,  0.0% ni, 99.7% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu7  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:    524288k total,   203788k used,   320500k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND              
29847 ode       25   0 23616 1712 1352 R   31  0.3   2:51.45 loop.pl              
31932 ode       25   0 23616 1712 1352 R   30  0.3   0:06.70 loop.pl              
31936 ode       25   0 23616 1712 1352 R   30  0.3   0:06.10 loop.pl              
31940 ode       25   0 23616 1712 1352 R   30  0.3   0:05.78 loop.pl              
12059 ode       16   0 12500 1184  904 S    0  0.2   0:22.14 top                  
    1 root      16   0 10228  696  580 S    0  0.1   0:07.45 init                 

予想通り0,1,2,3のCPUの使用率がほぼ100%になりました。load averageが1.84になっていますが、特に重く感じることはありません。それでは8個のCPUを全部使い切ってみましょう。

top - 16:36:47 up 29 days,  5:05,  6 users,  load average: 8.10, 4.79, 3.25
Tasks:  72 total,  11 running,  61 sleeping,   0 stopped,   0 zombie
Cpu0  : 100.0% us,  0.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu1  : 97.9% us,  2.1% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu2  : 97.8% us,  2.2% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu3  : 100.0% us,  0.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu4  : 100.0% us,  0.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu5  : 100.0% us,  0.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu6  : 100.0% us,  0.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu7  : 100.0% us,  0.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:    524288k total,   211488k used,   312800k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND              
16050 ode       25   0 23616 1712 1352 R   15  0.3   0:28.21 loop.pl              
16066 ode       25   0 23616 1712 1352 R   15  0.3   0:28.67 loop.pl              
16070 ode       25   0 23616 1712 1352 R   15  0.3   0:28.53 loop.pl              
16089 ode       25   0 23616 1712 1352 R   15  0.3   0:28.43 loop.pl              
16110 ode       25   0 23616 1712 1352 R   15  0.3   0:26.55 loop.pl              
16052 ode       25   0 23616 1712 1352 R   15  0.3   0:28.76 loop.pl              
16038 ode       25   0 23616 1712 1352 R   14  0.3   0:30.46 loop.pl              
16064 ode       25   0 23616 1712 1352 R   14  0.3   0:27.38 loop.pl              
26314 ode       16   0 12500 1192  904 S    0  0.2   0:37.20 top                  

8つのループプロセスを起動させるとほぼ8コア全部を使い切ることができています。load averageが8.10になっていますが、少し重たいかなという程度です。load averageはコア数までは問題なし(軽い)というのは本当のようです。シングルコアであればload averageが8を越えるとかなり重くなります。

これらの実験により使えるねっとVPS(シルバー)では、8コアが実際に動いていることを確認できました。

今回のテストではループプロセスでCPUを占有しましたが、機会があったらまた別のテストをやってみようかなと思います。