VirtualBox + CentOS6.5 + Mac OSX (Mavericks) で シェルのキー操作が遅いのを調べてる
ここに書いたネタの続き http://d.hatena.ne.jp/hiboma/20140318
perf top -p <sshd>でシェルプロンプトを表示しているプロセスを perf- シェルのプロンプトの表示を請け負っているのは sshd。 bash じゃないのに注意
- シェルプロンプトでエンターキーを押しっぱなしにする
- ネットワークからの割り込みが続く状態で
- ネットワーク(irq 19 = virio-net) の smp_affinity を変える
- デフォルトだと遅い
- コア数が一番大きいのに割り込みさせると何故か快適になる
何故か快適になる を解明したい
- シェルのキー操作のレスポンスがもたついてておっそい
# irq19 は virtio-net
$ echo f | sudo tee /proc/irq/19/smp_affinity
perf top -p の結果はこんなん。_spin_unlock_irqrestore がトップになっとる
Samples: 3K of event 'cpu-clock', Event count (approx.): 1249
29.62% [kernel] [k] _spin_unlock_irqrestore // スピンロックなのに割合デカ過ぎでないですか?
17.61% libcrypto.so.1.0.1e [.] vpaes_encrypt
15.93% [kernel] [k] finish_task_switch
8.97% sshd [.] 0x00000000000547c0
6.65% libcrypto.so.1.0.1e [.] 0x00000000000e3671
3.76% [kernel] [k] iowrite16
1.76% libz.so.1.2.3 [.] 0x0000000000007360
1.52% [kernel] [k] ioread8
1.36% [kernel] [k] __do_softirq
1.20% [kernel] [k] __audit_syscall_exit
1.20% [kernel] [k] copy_user_generic_string
0.96% libc-2.12.so [.] sigemptyset
0.88% libc-2.12.so [.] memcpy
- cpu3 だけに割り込みさせる
- キー操作のレスポンスがいい
$ echo 8 | sudo tee /proc/irq/19/smp_affinity
perf top -p の結果はこんなん。iowrite16 がボトルネックになった
Samples: 2K of event 'cpu-clock', Event count (approx.): 1202
70.38% [kernel] [k] iowrite16 // 文字出力?が時間かかってるのはいいのかな
9.40% [kernel] [k] finish_task_switch
5.24% libcrypto.so.1.0.1e [.] vpaes_encrypt
5.16% [kernel] [k] _spin_unlock_irqrestore
3.49% sshd [.] 0x000000000004a251
3.33% libcrypto.so.1.0.1e [.] 0x00000000000e3671
0.75% libz.so.1.2.3 [.] 0x0000000000004e16
0.58% libc-2.12.so [.] memcpy
0.58% [kernel] [k] __do_softirq
0.58% [kernel] [k] do_select
0.17% [kernel] [k] __audit_syscall_exit
0.08% libz.so.1.2.3 [.] deflate
0.08% libc-2.12.so [.] sigemptyset