We are running a web workload on system with 8 cores, each core has two hyper threads. The workload is network intensive. During test we find that the system is very busy in kernel and has very high cross call rates. Dtrace shows that most xcalls are caused by memory free in kernel. Any suggestion to lower sys utilization and reduce xcalls?
"mpstat -a 2" output: SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze 0 805 14 322274 348634 17344 50496 7537 3396 14842 185 59338 2 18 0 80 16 SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze 0 11027 1 2748955 2864793 89324 148049 30088 5111 123434 22 281361 7 92 0 0 16 SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze 0 10304 0 2772163 2890354 90325 155787 31692 5456 108526 12 262906 6 94 0 0 16 SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze 0 18048 0 2776165 2891182 88630 152517 29913 5077 100318 19 247422 6 94 0 0 16 SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze 0 11260 0 2782578 2902024 91238 160978 31941 5604 125821 24 279300 6 94 0 0 16 SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze 0 7861 0 2733062 2864302 96346 193671 38932 6320 168122 12 313714 7 93 0 0 16 SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze 0 7633 0 2783807 2902558 90803 166278 32752 6122 126578 10 273982 6 94 0 0 16 "nicstat 2" output: Time Int rKB/s wKB/s rPk/s wPk/s rAvs wAvs %Util Sat 05:01:55 lo0 0.00 0.00 2179.7 2179.7 0.00 0.00 0.00 0.00 05:01:55 igb0 0.06 0.33 1.00 1.00 64.00 338.0 0.00 0.00 05:01:55 igb1 3825.5 686.5 4424.8 4554.2 885.3 154.4 3.70 0.00 05:01:55 ixgbe2 12399.1 446438 145339 340749 87.36 1341.6 37.6 0.00 05:01:55 ixgbe4 10792.8 434197 128687 332963 85.88 1335.3 36.5 0.00 Time Int rKB/s wKB/s rPk/s wPk/s rAvs wAvs %Util Sat 05:01:57 lo0 0.00 0.00 2258.3 2258.3 0.00 0.00 0.00 0.00 05:01:57 igb0 0.06 0.29 1.00 1.00 64.00 298.0 0.00 0.00 05:01:57 igb1 3830.8 690.9 4497.1 4588.1 872.3 154.2 3.70 0.00 05:01:57 ixgbe2 12596.9 438299 148012 334978 87.15 1339.8 36.9 0.00 05:01:57 ixgbe4 11330.4 459088 136182 349905 85.20 1343.5 38.5 46.00 Time Int rKB/s wKB/s rPk/s wPk/s rAvs wAvs %Util Sat 05:01:59 lo0 0.00 0.00 2168.9 2168.9 0.00 0.00 0.00 0.00 05:01:59 igb0 0.06 0.29 1.00 1.00 64.00 298.0 0.00 0.00 05:01:59 igb1 3805.1 690.9 4472.3 4590.2 871.2 154.1 3.68 0.00 05:01:59 ixgbe2 12303.5 422444 144187 324561 87.38 1332.8 35.6 0.00 05:01:59 ixgbe4 10944.4 454153 129900 349436 86.27 1330.9 38.1 4.50 "vmstat 2" output kthr memory page disk faults cpu r b w swap free re mf pi po fr de sr s2 s3 s4 s5 in sy cs us sy id 14 0 0 36683132 29407588 1101 5602 559 1 1 0 3487 35 -0 1171 -0 919649 98705 90237 2 30 67 79 0 0 31365632 23477712 1 9242 0 0 0 0 0 0 0 2169 0 3027764 159718 68502 3 97 0 80 0 0 31293276 23373552 0 5452 0 0 0 0 0 0 0 2291 0 3020344 172791 73594 3 97 0 55 0 0 31067468 23217816 0 5946 0 0 0 0 0 0 0 2164 0 3029687 201127 87720 3 97 0 86 0 0 30961960 23115928 0 5676 0 0 0 0 0 0 0 2253 0 3025300 154396 71515 3 97 0 56 0 0 30798796 22959692 0 6597 0 0 0 0 0 0 0 2340 0 3026345 161389 56838 3 96 0 81 0 0 30796128 22963332 0 6638 0 0 0 0 0 0 0 2396 0 3025128 172106 68770 3 97 0 dtrace -n 'xc_common:xcal...@[stack()]=count();}' -c "sleep 10" output: ..... unix`xc_do_call+0x135 unix`xc_call+0x4b unix`hat_tlb_inval+0x2af unix`x86pte_inval+0xaa unix`hat_pte_unmap+0xfd unix`hat_unload_callback+0x193 unix`hat_unload+0x41 unix`segkmem_free_vn+0x6f unix`segkmem_free+0x27 genunix`vmem_xfree+0x104 genunix`vmem_free+0x29 genunix`kmem_free+0x44 genunix`dblk_lastfree_oversize+0x69 genunix`dblk_decref+0x64 genunix`freemsg+0x84 ixgbe`ixgbe_free_tcb+0x43 ixgbe`ixgbe_tx_recycle_head_wb+0x1d4 ixgbe`ixgbe_intr_rx_tx+0x101 unix`av_dispatch_autovect+0x7c unix`dispatch_hardint+0x33 29517 unix`xc_do_call+0x135 unix`xc_call+0x4b unix`hat_tlb_inval+0x2af unix`x86pte_inval+0xaa unix`hat_pte_unmap+0xfd unix`hat_unload_callback+0x193 unix`hat_unload+0x41 unix`segkmem_free_vn+0x6f unix`segkmem_free+0x27 genunix`vmem_xfree+0x104 genunix`vmem_free+0x29 genunix`kmem_free+0x44 genunix`dblk_lastfree_oversize+0x69 genunix`dblk_decref+0x64 genunix`freeb+0x80 ip`tcp_rput_data+0x24ac ip`squeue_drain+0x179 ip`squeue_enter+0x3f4 ip`tcp_sendmsg+0xfb sockfs`so_sendmsg+0x1c7 45907 unix`xc_do_call+0x135 unix`xc_call+0x4b unix`hat_tlb_inval+0x2af unix`x86pte_inval+0xaa unix`hat_pte_unmap+0xfd unix`hat_unload_callback+0x193 unix`hat_unload+0x41 unix`segkmem_free_vn+0x6f unix`segkmem_zio_free+0x27 genunix`vmem_xfree+0x104 genunix`vmem_free+0x29 genunix`kmem_slab_destroy+0x87 genunix`kmem_slab_free+0x2bb genunix`kmem_magazine_destroy+0x39a genunix`kmem_depot_ws_reap+0x65 genunix`taskq_thread+0x193 unix`thread_start+0x8 541781 unix`xc_do_call+0x135 unix`xc_call+0x4b unix`hat_tlb_inval+0x2af unix`x86pte_inval+0xaa unix`hat_pte_unmap+0xfd unix`hat_unload_callback+0x193 unix`hat_unload+0x41 unix`segkmem_free_vn+0x6f unix`segkmem_free+0x27 genunix`vmem_xfree+0x104 genunix`vmem_free+0x29 genunix`kmem_free+0x44 genunix`dblk_lastfree_oversize+0x69 genunix`dblk_decref+0x64 genunix`freeb+0x80 ip`tcp_rput_data+0x24ac ip`squeue_drain+0x179 ip`squeue_enter+0x3f4 ip`ip_input+0xa8e mac`mac_rx_soft_ring_drain+0xdf 1118445 unix`xc_do_call+0x135 unix`xc_call+0x4b unix`hat_tlb_inval+0x2af unix`x86pte_inval+0xaa unix`hat_pte_unmap+0xfd unix`hat_unload_callback+0x193 unix`hat_unload+0x41 unix`segkmem_free_vn+0x6f unix`segkmem_free+0x27 genunix`vmem_xfree+0x104 genunix`vmem_free+0x29 genunix`kmem_free+0x44 genunix`dblk_lastfree_oversize+0x69 genunix`dblk_decref+0x64 genunix`freeb+0x80 ip`tcp_rput_data+0x24ac ip`squeue_drain+0x179 ip`squeue_polling_thread+0x1dd unix`thread_start+0x8 1919538 unix`xc_do_call+0x135 unix`xc_call+0x4b unix`hat_tlb_inval+0x2af unix`x86pte_inval+0xaa unix`hat_pte_unmap+0xfd unix`hat_unload_callback+0x193 unix`hat_unload+0x41 unix`segkmem_free_vn+0x6f unix`segkmem_free+0x27 genunix`vmem_xfree+0x104 genunix`vmem_free+0x29 genunix`kmem_free+0x44 genunix`dblk_lastfree_oversize+0x69 genunix`dblk_decref+0x64 genunix`freeb+0x80 ip`tcp_rput_data+0x24ac ip`squeue_drain+0x179 ip`squeue_enter+0x3f4 ip`ip_input+0xc17 mac`mac_rx_soft_ring_drain+0xdf 3678526 Thanks Zhihui
_______________________________________________ perf-discuss mailing list perf-discuss@opensolaris.org