Re: MySQL config [WAS: ]uilding a new workstation - dual or quad-core CPU for FreeBSD 7?

2007-09-18 Thread Kris Kennaway

Philip M. Gollucci wrote:

Is it worth having the port remove that recommendation from the
/usr/local/share/mysql/*.cnf files ?


It probably is worth it, yeah.

Kris

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: MySQL config [WAS: ]uilding a new workstation - dual or quad-core CPU for FreeBSD 7?

2007-09-18 Thread Kris Kennaway

Philip M. Gollucci wrote:

Philip M. Gollucci wrote:

my.cnf
innodb_thread_concurrency = 8

You want '0' or performance will suck.  There's a basic architectural
flaw in how mysql handles non-zero concurrency values here (innodb
accesses are serialized by a global mutex that protects a counter to
check if it should try to allow more innodb concurrency.  Duh.)

Anyway, assuming your disks can keep up you should see a big performance
boost when you switch to 7.0.  This is a fairly big "if" though: I don't
know if it's even feasible for a write-heavy database to saturate 8 CPUs
instead of being bottlenecked by disk speeds and leaving the CPUs mostly

from /usr/local/share/my-innodb-heavy-4G.cnf

# This permits the application to give the threads system a hint for the
# desired number of threads that should be run at the same time.  This
# value only makes sense on systems that support the
# thread_concurrency()
# function call (Sun Solaris, for example).
# You should try [number of CPUs]*(2..4) for thread_concurrency
thread_concurrency = 8

# Number of IO threads to use for async IO operations. This value is
# hardcoded to 4 on Unix, but on Windows disk I/O may benefit from a
# larger number.
innodb_file_io_threads = 4

# Number of threads allowed inside the InnoDB kernel. The optimal value
# depends highly on the application, hardware as well as the OS
# scheduler properties. A too high value may lead to thread thrashing.
innodb_thread_concurrency = 16


Apparently its only set in this file.

We should probably submit a bug to MySQL rather then add a patch to
ports or do both and remove the ports when its released.




I believe the performance bug is well known actually, at least to the 
www.mysqlperformanceblog.com people which is where I got my test config 
from.  I discovered the reason for it recently when I accidentally ran 
with a default config (innodb_thread_concurrency defaulted to 8 for me) 
and spent some time tracking down why performance was terrible until I 
set it back to 0.


Kris


___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: MySQL config [WAS: ]uilding a new workstation - dual or quad-core CPU for FreeBSD 7?

2007-09-18 Thread Philip M. Gollucci
Kris Kennaway wrote:
> libthr has been around (and performing better than libkse) since the 5.x
> days and has been recommended for use since 6.0.
Yeah I knew it had been around -- missed the recommend part.

>> sysctl kern.timecounter.choice
>>kern.timecounter.choice: TSC(-100) ACPI-fast(1000) i8254(0)
>> dummy(-100)
>>
>> sysctl kern.timecounter.hardware
>> kern.timecounter.hardware: TSC
I meant to say that this made a rather large difference.

>>   3) /tmp is a md0 malloc backed device
Eh -- I'll switch it.

> 
> Should be swap backed, but it won't make much difference on your workload.
> 
>>   (I'm thinking of using tmpfs in 7.0 when I switch)
> 
> tmpfs is not yet production-ready even though it performs better.
Yeah that I knew, but I haven't had any issues with it on any of my
desktops that run it.

>> my.cnf
>> innodb_thread_concurrency = 8
> 
> You want '0' or performance will suck.  There's a basic architectural
> flaw in how mysql handles non-zero concurrency values here (innodb
> accesses are serialized by a global mutex that protects a counter to
> check if it should try to allow more innodb concurrency.  Duh.)
> 
> Anyway, assuming your disks can keep up you should see a big performance
> boost when you switch to 7.0.  This is a fairly big "if" though: I don't
> know if it's even feasible for a write-heavy database to saturate 8 CPUs
> instead of being bottlenecked by disk speeds and leaving the CPUs mostly
> idle.
Ah boo!!!

I have DBs that are SELECT heavy and those that are WRITE heavy.

I suppose I'll attached the my.cnf I'm using.

Is it worth having the port remove that recommendation from the
/usr/local/share/mysql/*.cnf files ?






-- 

Philip M. Gollucci ([EMAIL PROTECTED]) c:323.219.4708 o:703.749.9295x206
Senior System Admin - Riderway, Inc.
http://riderway.com / http://ridecharge.com
1024D/EC88A0BF 0DE5 C55C 6BF3 B235 2DAB  B89E 1324 9B4F EC88 A0BF

Work like you don't need the money,
love like you'll never get hurt,
and dance like nobody's watching.

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: MySQL config [WAS: ]uilding a new workstation - dual or quad-core CPU for FreeBSD 7?

2007-09-18 Thread Philip M. Gollucci
Philip M. Gollucci wrote:
>>> my.cnf
>>> innodb_thread_concurrency = 8
>> You want '0' or performance will suck.  There's a basic architectural
>> flaw in how mysql handles non-zero concurrency values here (innodb
>> accesses are serialized by a global mutex that protects a counter to
>> check if it should try to allow more innodb concurrency.  Duh.)
>>
>> Anyway, assuming your disks can keep up you should see a big performance
>> boost when you switch to 7.0.  This is a fairly big "if" though: I don't
>> know if it's even feasible for a write-heavy database to saturate 8 CPUs
>> instead of being bottlenecked by disk speeds and leaving the CPUs mostly
from /usr/local/share/my-innodb-heavy-4G.cnf

# This permits the application to give the threads system a hint for the
# desired number of threads that should be run at the same time.  This
# value only makes sense on systems that support the
# thread_concurrency()
# function call (Sun Solaris, for example).
# You should try [number of CPUs]*(2..4) for thread_concurrency
thread_concurrency = 8

# Number of IO threads to use for async IO operations. This value is
# hardcoded to 4 on Unix, but on Windows disk I/O may benefit from a
# larger number.
innodb_file_io_threads = 4

# Number of threads allowed inside the InnoDB kernel. The optimal value
# depends highly on the application, hardware as well as the OS
# scheduler properties. A too high value may lead to thread thrashing.
innodb_thread_concurrency = 16


Apparently its only set in this file.

We should probably submit a bug to MySQL rather then add a patch to
ports or do both and remove the ports when its released.


-- 

Philip M. Gollucci ([EMAIL PROTECTED]) c:323.219.4708 o:703.749.9295x206
Senior System Admin - Riderway, Inc.
http://riderway.com / http://ridecharge.com
1024D/EC88A0BF 0DE5 C55C 6BF3 B235 2DAB  B89E 1324 9B4F EC88 A0BF

Work like you don't need the money,
love like you'll never get hurt,
and dance like nobody's watching.

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"