Mainline kernel OLTP performance update

From: Ma, Chinang
Date: Mon Jan 12 2009 - 13:31:17 EST


Here is the latest 2.6.28 kernel OLTP performance comparing to 2.6.24.2 and 2.6.27.2.

Linux OLTP Performance summary
Kernel# Speedup(x) Intr/s CtxSw/s us% sys% idle% iowait%
2.6.24.2 1.000 21969 43425 76 24 0 0
2.6.27.2 0.973 30402 43523 74 25 0 1
2.6.28 0.967 30400 42640 74 25 0 0

Server configurations:
Intel Xeon Quad-core 2.0GHz 2 cpus/8 cores/8 threads
64GB memory, 3 qle2462 FC HBA, 450 spindles (30 logical units)

======oprofile CPU_CLK_UNHALTED for top 30 functions
Cycles% 2.6.24.2 Cycles% 2.6.27.2
1.0500 qla24xx_start_scsi 1.2125 qla24xx_start_scsi
0.8089 schedule 0.6962 kmem_cache_alloc
0.5864 kmem_cache_alloc 0.6209 qla24xx_intr_handler
0.4989 __blockdev_direct_IO 0.4895 copy_user_generic_string
0.4152 copy_user_generic_string 0.4591 __blockdev_direct_IO
0.3953 qla24xx_intr_handler 0.4409 __end_that_request_first
0.3596 scsi_request_fn 0.3729 __switch_to
0.3188 __switch_to 0.3716 try_to_wake_up
0.2889 lock_timer_base 0.3531 lock_timer_base
0.2519 task_rq_lock 0.3393 scsi_request_fn
0.2474 aio_complete 0.3038 aio_complete
0.2460 scsi_alloc_sgtable 0.2989 memset_c
0.2445 generic_make_request 0.2633 qla2x00_process_completed_re
0.2263 qla2x00_process_completed_re0.2583 pick_next_highest_task_rt
0.2118 blk_queue_end_tag 0.2578 generic_make_request
0.2085 dio_bio_complete 0.2510 __list_add
0.2021 e1000_xmit_frame 0.2459 task_rq_lock
0.2006 __end_that_request_first 0.2322 kmem_cache_free
0.1954 generic_file_aio_read 0.2206 blk_queue_end_tag
0.1949 kfree 0.2205 __mod_timer
0.1915 tcp_sendmsg 0.2179 update_curr_rt
0.1901 try_to_wake_up 0.2164 sd_prep_fn
0.1895 kref_get 0.2130 kref_get
0.1864 __mod_timer 0.2075 dio_bio_complete
0.1863 thread_return 0.2066 push_rt_task
0.1854 math_state_restore 0.1974 qla24xx_msix_default
0.1775 __list_add 0.1935 generic_file_aio_read
0.1721 memset_c 0.1870 scsi_device_unbusy
0.1706 find_vma 0.1861 tcp_sendmsg
0.1688 read_tsc 0.1843 e1000_xmit_frame


======oprofile CPU_CLK_UNHALTED for top 30 functions
Cycles% 2.6.27.2 Cycles% 2.6.28
1.2125 qla24xx_start_scsi 1.4257 qla24xx_start_scsi
0.6962 kmem_cache_alloc 0.8784 kmem_cache_alloc
0.6209 qla24xx_intr_handler 0.6876 qla24xx_intr_handler
0.4895 copy_user_generic_string 0.5834 copy_user_generic_string
0.4591 __blockdev_direct_IO 0.4945 scsi_request_fn
0.4409 __end_that_request_first 0.4846 __blockdev_direct_IO
0.3729 __switch_to 0.4187 try_to_wake_up
0.3716 try_to_wake_up 0.3518 aio_complete
0.3531 lock_timer_base 0.3513 __end_that_request_first
0.3393 scsi_request_fn 0.3483 __switch_to
0.3038 aio_complete 0.3271 memset_c
0.2989 memset_c 0.2976 qla2x00_process_completed_re
0.2633 qla2x00_process_completed_re0.2905 __list_add
0.2583 pick_next_highest_task_rt 0.2901 generic_make_request
0.2578 generic_make_request 0.2755 lock_timer_base
0.2510 __list_add 0.2741 blk_queue_end_tag
0.2459 task_rq_lock 0.2593 kmem_cache_free
0.2322 kmem_cache_free 0.2445 disk_map_sector_rcu
0.2206 blk_queue_end_tag 0.2370 pick_next_highest_task_rt
0.2205 __mod_timer 0.2323 scsi_device_unbusy
0.2179 update_curr_rt 0.2321 task_rq_lock
0.2164 sd_prep_fn 0.2316 scsi_dispatch_cmd
0.2130 kref_get 0.2239 kref_get
0.2075 dio_bio_complete 0.2237 dio_bio_complete
0.2066 push_rt_task 0.2194 push_rt_task
0.1974 qla24xx_msix_default 0.2145 __aio_get_req
0.1935 generic_file_aio_read 0.2143 kfree
0.1870 scsi_device_unbusy 0.2138 __mod_timer
0.1861 tcp_sendmsg 0.2131 e1000_irq_enable
0.1843 e1000_xmit_frame 0.2091 scsi_softirq_done


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/