Hi Hiro, we have noticed severe performance loss with HT enabled under
FreeBSD but not with MySQL. However, we could be having problems with
MySQL as well without knowing as we haven't done any testing as it is
operating fine. What operating system are you running?

We now disable HT on all servers wherever possible..


Atle
-
Flying Crocodile Inc, Unix Systems Administrator

On Thu, 2 Mar 2006, Hiro Yoshioka wrote:

> Hi,
>
> We found a severe performance degradation when Hyperthreading is on
> and thread_concurrency=20.
>
> We are using OSDL DBT-1 as the benchmark and got about 200 to 250
> BT (bogotransactions per second) HT is OFF normal case but 30 to
> 50 BT on HT is ON.
>
> innodb_thread_concurrency=20
>
> So we did profile (using oprofile tool) and got the following profiling
> data. My impression is that mutex_spin_wait (and ut_delay) is
> something wrong if HT is ON. (Spin-wait loop is too expensive if it is
> hyperthreading.)
>
> I added the following code but it does not help it.
>
> $ diff -pu ut0ut.c.orig ut0ut.c
> --- ut0ut.c.orig        2005-10-17 10:27:43.000000000 +0900
> +++ ut0ut.c     2006-02-28 11:59:16.777840496 +0900
> @@ -290,6 +290,13 @@ ut_delay(
>         j = 0;
>
>         for (i = 0; i < delay * 50; i++) {
> +               /* When executing a spin-wait loop on the Hyper-Threading
> +                  processor, the processor can suffer a severe performance
> +                   penalty. The pause instruction provides a hint to the
> +                   processor. Please refer IA-32 Intel Architecture
> +                   Software Developers Manual, Vol 3.                   */
> +               __asm__ __volatile__(
> +               "pause; \n");
>                 j += i;
>         }
>
> What do you think? Is there any hints?
>
> HT is OFF
> CPU: P4 / Xeon, speed 2793.26 MHz (estimated)
> Counted GLOBAL_POWER_EVENTS events (time during which processor is not 
> stopped) with a unit mask of 0x01 (mandatory)
> count 100000
> samples  %        image name               app name                 symbol 
> name
> 13159082  8.8445  libc-2.3.4.so            libc-2.3.4.so            memcpy
> 12565549  8.4456  libpthread-2.3.4.so      libpthread-2.3.4.so      
> pthread_mutex_trylock
> 11387363  7.6537  mysqld                   mysqld                   
> rec_get_offsets_func
> 9631916   6.4738  libpthread-2.3.4.so      libpthread-2.3.4.so      
> pthread_mutex_unlock
> 8794484   5.9110  mysqld                   mysqld                   
> btr_search_guess_on_hash
> 4949248   3.3265  mysqld                   mysqld                   
> row_search_for_mysql
> 4022481   2.7036  mysqld                   mysqld                   ut_delay
> 3754265   2.5233  mysqld                   mysqld                   
> cmp_dtuple_rec_with_match
> 2535190   1.7040  mysqld                   mysqld                   
> row_sel_store_mysql_rec
> 2520957   1.6944  mysqld                   mysqld                   
> btr_cur_search_to_nth_level
>
> HT is ON
> CPU: P4 / Xeon with 2 hyper-threads, speed 2793.26 MHz (estimated)
> Counted GLOBAL_POWER_EVENTS events (time during which processor is not 
> stopped) with a unit mask of 0x01 (mandatory)
> count 100000
> samples  %        image name               app name                 symbol 
> name
> 53221317 21.4225  libpthread-2.3.4.so      libpthread-2.3.4.so      
> pthread_mutex_lock
> 25743323 10.3621  mysqld                   mysqld                   ut_delay
> 12345146  4.9691  vmlinux                  vmlinux                  do_futex
> 12066038  4.8568  mysqld                   mysqld                   
> mutex_spin_wait
> 10395391  4.1843  vmlinux                  vmlinux                  
> LKST_ETYPE_PROCESS_SCHED_ENTER_HEADER_hook
> 9247281   3.7222  libpthread-2.3.4.so      libpthread-2.3.4.so      
> pthread_mutex_unlock
> 7407229   2.9815  vmlinux                  vmlinux                  
> futex_requeue
> 5921454   2.3835  libpthread-2.3.4.so      libpthread-2.3.4.so      
> pthread_mutex_trylock
> 5484279   2.2075  vmlinux                  vmlinux                  
> LKST_ETYPE_PROCESS_WAKEUP_HEADER_hook
> 4846067   1.9506  vmlinux                  vmlinux                  
> __switch_to
>
> Regards,
>   Hiro
>
>

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to