Default my.cnf for (very) high performance servers....

2009-05-06 Thread Craig Dunn




Hi All,

We're setting up a group of servers using MySQL Enterprise 5.1 - Rather 
than starting with a blank canvas I wondered if there was a suitable 
my.cnf that is tuned to the kind of environment I'm running where I can 
tweak it from there.


We're running on RHEL, on Sunfire X4140's - 8 disks, 16G RAM, 2 x dual 
core 3000mhz 64bit... which is reasonably beefy.  Environment is more 
read than write, but write speed is important.


Anyone know where I can look?
Cheers
Craig


--
Linux web infrastructure consulting, cr...@codenation.net
Free live poker tournament listings, http://www.g5poker.com





--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



Re: Default my.cnf for (very) high performance servers....

2009-05-06 Thread Craig Dunn

Craig Dunn wrote:




Hi All,

We're setting up a group of servers using MySQL Enterprise 5.1 - Rather 
than starting with a blank canvas I wondered if there was a suitable 
my.cnf that is tuned to the kind of environment I'm running where I can 
tweak it from there.


We're running on RHEL, on Sunfire X4140's - 8 disks, 16G RAM, 2 x dual 
core 3000mhz 64bit... which is reasonably beefy.  Environment is more 
read than write, but write speed is important.


Anyone know where I can look?
Cheers
Craig




I should add, I wanted something a bit more up to date than my-huge.cnf, 
which seems to think a huge server is a system with memory of 1G-2G



--
Linux web infrastructure consulting, cr...@codenation.net
Free live poker tournament listings, http://www.g5poker.com



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



RE: Default my.cnf for (very) high performance servers....

2009-05-06 Thread Andrew Braithwaite
There's no such thing as a generic my.cnf for high performance MySQL
servers, you will need to provide more information..

Some questions:  Are you going to run InnoDB or MyISAM or both (if both,
what's the split?)

Is there anything else running on that server?  i.e. how much of the
16GB is available for MySQL to use?

Can you partition your disks as you wish?  (How much data do you need
host?)

Will this server be a master or slave or standalone? (Do we need to deal
with binlogs here?)

Andrew

-Original Message-
From: Craig Dunn [mailto:li...@codenation.net] 
Sent: 06 May 2009 14:02
To: mysql@lists.mysql.com
Subject: Re: Default my.cnf for (very) high performance servers

Craig Dunn wrote:
 
 
 
 Hi All,
 
 We're setting up a group of servers using MySQL Enterprise 5.1 -
Rather 
 than starting with a blank canvas I wondered if there was a suitable 
 my.cnf that is tuned to the kind of environment I'm running where I
can 
 tweak it from there.
 
 We're running on RHEL, on Sunfire X4140's - 8 disks, 16G RAM, 2 x dual

 core 3000mhz 64bit... which is reasonably beefy.  Environment is more 
 read than write, but write speed is important.
 
 Anyone know where I can look?
 Cheers
 Craig
 
 

I should add, I wanted something a bit more up to date than my-huge.cnf,

which seems to think a huge server is a system with memory of 1G-2G


-- 
Linux web infrastructure consulting, cr...@codenation.net
Free live poker tournament listings, http://www.g5poker.com



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:
http://lists.mysql.com/mysql?unsub=andrew.braithwa...@lovefilm.com


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



Re: Default my.cnf for (very) high performance servers....

2009-05-06 Thread Craig Dunn

Andrew Braithwaite wrote:

There's no such thing as a generic my.cnf for high performance MySQL
servers, you will need to provide more information..



Well, I was more after something a bit more up to date than my-huge.cnf 
that I could use as a starting point, I see a few example ones posted to 
Mysql Forge, but they are very innodb orientated.



Some questions:  Are you going to run InnoDB or MyISAM or both (if both,
what's the split?)


Both, 90% MyISAM


Is there anything else running on that server?  i.e. how much of the
16GB is available for MySQL to use?


It's a dedicated MySQL box


Can you partition your disks as you wish?  (How much data do you need
host?)


About 50G of databases - I've currently got 6 disks with RAID 10 running 
soley /var/lib/mysql (datadir) on an LVM with the binlogs being written 
to the other 2 disks (which has the OS on them too)



Will this server be a master or slave or standalone? (Do we need to deal
with binlogs here?)


There are 3 in total, 1 master and 2 slaves (one of which is capable of 
being failed over to as a master)


The current MySQL 4.1 servers that they are replacing have at any one 
time on average about 1000 open tables, about double the number of 
selects than inserts, between 2000 and 5000 qps - if thats any use.



Cheers
Craig

--
Linux web infrastructure consulting, cr...@codenation.net
Free live poker tournament listings, http://www.g5poker.com



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



RE: Default my.cnf for (very) high performance servers....

2009-05-06 Thread Andrew Braithwaite
Your disk config is good and you'll need all the nessesary my.cnf
entries to point all the logs and data to the correct place.  Slaves
should have the relay-logs going to the OS disk too.  I assume you've
set up the master slave config in the my.cnf too.

Here's my brain dump on what you need:

skip-locking
max_allowed_packet = 16M
key_buffer_size = 9000M
max_allowed_packet = 16M
table_cache = 1024
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 1000
query_cache_size  = 256M

# Nice big key_buffer_size - the most important one for read-heavy
MyISAM DBs
# query cache nice and high too - if your tables change a lot you may
want to turn this off as it will be ineffective

tmpdir  = /somedir/tmp/
#You may want to point this somewhere else if you are writing a lot of
tmp tables to disk

innodb_data_home_dir = /somedir/mysql/
innodb_data_file_path = ibdata1:512M:autoextend
innodb_log_group_home_dir = /somedir/mysql/
innodb_log_arch_dir = /somedir/mysql/
innodb_buffer_pool_size=1000M
set-variable = innodb_additional_mem_pool_size=128M
innodb_log_file_size=200M
set-variable = innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=0
set-variable = innodb_lock_wait_timeout=50
innodb_thread_concurrency = 8
innodb_file_per_table

# Keep a GB of InnoDB in memory as you're not using that much

# use the innodb_file_per_table param for easier management of disk
space

The most important part is your caches.  You can keep an eye on your
MyISAM key cache efficiency by running 'SHOW STATUS' and 'SHOW
VARIABLES' and calculating the following:

Cache hit ratio:

100 - ((Key_reads * 100) / Key_read_requests)

Percentage of buffer in use:

100 - ((Key_blocks_unused * key_cache_block_size) * 100 /
key_buffer_size)

And tweak them as you need.

Of course you have to remember that these caches (and the filesystem
cache) will take a while to warm up before they become super-efficient.

Hope this helps,

ANdrew





-Original Message-
From: Craig Dunn [mailto:li...@codenation.net] 
Sent: 06 May 2009 14:31
To: Andrew Braithwaite
Cc: mysql@lists.mysql.com
Subject: Re: Default my.cnf for (very) high performance servers

Andrew Braithwaite wrote:
 There's no such thing as a generic my.cnf for high performance MySQL
 servers, you will need to provide more information..
 

Well, I was more after something a bit more up to date than my-huge.cnf 
that I could use as a starting point, I see a few example ones posted to

Mysql Forge, but they are very innodb orientated.

 Some questions:  Are you going to run InnoDB or MyISAM or both (if
both,
 what's the split?)

Both, 90% MyISAM

 Is there anything else running on that server?  i.e. how much of the
 16GB is available for MySQL to use?

It's a dedicated MySQL box

 Can you partition your disks as you wish?  (How much data do you need
 host?)

About 50G of databases - I've currently got 6 disks with RAID 10 running

soley /var/lib/mysql (datadir) on an LVM with the binlogs being written 
to the other 2 disks (which has the OS on them too)

 Will this server be a master or slave or standalone? (Do we need to
deal
 with binlogs here?)

There are 3 in total, 1 master and 2 slaves (one of which is capable of 
being failed over to as a master)

The current MySQL 4.1 servers that they are replacing have at any one 
time on average about 1000 open tables, about double the number of 
selects than inserts, between 2000 and 5000 qps - if thats any use.


Cheers
Craig

-- 
Linux web infrastructure consulting, cr...@codenation.net
Free live poker tournament listings, http://www.g5poker.com



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



Re: Default my.cnf for (very) high performance servers....

2009-05-06 Thread Craig Dunn

Andrew Braithwaite wrote:

Your disk config is good and you'll need all the nessesary my.cnf
entries to point all the logs and data to the correct place.  Slaves
should have the relay-logs going to the OS disk too.  I assume you've
set up the master slave config in the my.cnf too.



Yeah the replication and file location stuff is fine, I was after a 
rough idea of buffer sizes...etc, thanks for all that, most helpful..


Cheers

Craig

--
Linux web infrastructure consulting, cr...@codenation.net
Free live poker tournament listings, http://www.g5poker.com



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



Re: Default my.cnf for (very) high performance servers....

2009-05-06 Thread mos

At 07:56 AM 5/6/2009, you wrote:




Hi All,

We're setting up a group of servers using MySQL Enterprise 5.1 - Rather 
than starting with a blank canvas I wondered if there was a suitable 
my.cnf that is tuned to the kind of environment I'm running where I can 
tweak it from there.


We're running on RHEL, on Sunfire X4140's - 8 disks, 16G RAM, 2 x dual 
core 3000mhz 64bit... which is reasonably beefy.  Environment is more read 
than write, but write speed is important.


Anyone know where I can look?
Cheers
Craig


Take a look at High Performance MySQL 2nd Edition Chapter 6 - starting 
around page 265.

Online:
http://books.google.ca/books?id=BL0NNoFPuAQCprintsec=frontcoverdq=high+performance+mysql+baron+schwartz#PPA288,M1

Buy from:
http://www.amazon.com/High-Performance-MySQL-Optimization-Replication/dp/0596101716/ref=sr_1_1?ie=UTF8s=booksqid=1241622110sr=8-1

Mike 



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



default my.cnf?

2008-03-18 Thread kalin m

hi all...

i have a 5.0.33 build from source on a freebsd 4.10 machine...

i'm looking for a my.cnf file.

ps tells me that the base dir is /usr/local but there is no my.cnf 
there. and i cant find one anywhere.
i can get all the variables set up from the cli but i need to change 
some of them.  i guess i can use mysqladmin but just wondering - can i 
just do a cnf under /usr/local/etc with the variables i need to change?


ktrace is showing me that mysqld is not looking for any .cnf?!

i mean i can try that but it's a very busy server and i wouldn't mess to 
much with it.


thanks...

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



Re: default my.cnf?

2008-03-18 Thread Mike Spreitzer
I had the same problem. I found the distribution contains some prototypes, 
with slightly more elaborate names.

Regards,
Mike



kalin m [EMAIL PROTECTED] 
03/18/08 01:06 PM

To
mysql@lists.mysql.com
cc

Subject
default my.cnf?






hi all...

i have a 5.0.33 build from source on a freebsd 4.10 machine...

i'm looking for a my.cnf file.

ps tells me that the base dir is /usr/local but there is no my.cnf 
there. and i cant find one anywhere.
i can get all the variables set up from the cli but i need to change 
some of them.  i guess i can use mysqladmin but just wondering - can i 
just do a cnf under /usr/local/etc with the variables i need to change?

ktrace is showing me that mysqld is not looking for any .cnf?!

i mean i can try that but it's a very busy server and i wouldn't mess to 
much with it.

thanks...

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




Re: default my.cnf?

2008-03-18 Thread Baron Schwartz
Hi,

On Tue, Mar 18, 2008 at 1:06 PM, kalin m [EMAIL PROTECTED] wrote:
 hi all...

  i have a 5.0.33 build from source on a freebsd 4.10 machine...

  i'm looking for a my.cnf file.

  ps tells me that the base dir is /usr/local but there is no my.cnf
  there. and i cant find one anywhere.
  i can get all the variables set up from the cli but i need to change
  some of them.  i guess i can use mysqladmin but just wondering - can i
  just do a cnf under /usr/local/etc with the variables i need to change?

  ktrace is showing me that mysqld is not looking for any .cnf?!

  i mean i can try that but it's a very busy server and i wouldn't mess to
  much with it.

You can ask mysqld where it looks for its configuration files.  Here's
a Debian system:

[EMAIL PROTECTED] ~ $ mysql --help --verbose | grep cnf
/etc/mysql/my.cnf ~/.my.cnf /usr/etc/my.cnf

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



Re: default my.cnf vs huge.cnf nearly same performance with sql-bench/run-all-tests

2005-09-12 Thread Daniel
To its benchmarking limits, yes. But benchmarks and real-world 
performance almost
never closely parallel. If the purpose here is to set my.cnf optimally, 
then it needs to

be set in accordance with your real usage patterns.

You probably won't see a big improvement in the benchmark between my.cnf 
configs
because the benchmark is mostly generalized. If it were, however, 
designed to benchmark
more specific things like a large spread of various queries on various 
large indexes causing
MySQL to really use its key_buffer, then there would be a more 
noticeable difference

between a 16M key_buffer and 384M.

-Daniel

Matthew Lenz wrote:


so the sql-bench stuff doesn't push the mysqld to its limits?

- Original Message - From: Daniel [EMAIL PROTECTED]
To: Matthew Lenz [EMAIL PROTECTED]
Cc: mysql mysql@lists.mysql.com
Sent: Sunday, September 11, 2005 1:12 PM
Subject: Re: default my.cnf vs huge.cnf nearly same performance with 
sql-bench/run-all-tests



I think it's a common misconception that MySQL will grow to meet the 
settings in my.cnf.
That is, if you have 32M of actively used indexes, there is no 
difference between key_buffer = 64M
and key_buffer = 512M. Similarly, if you have a need for 128 cached 
tables, you'll gain
no benefit with table_cache =  1024. MySQL uses only what it needs 
to, when it needs to.
Large values in my.cnf just set the upper limit. If operating below 
these limits, no increase
in them will have affect. When you hit the upper limit, then these 
settings can have a dramatic
affect. E.g., you have 32M of actively used indexes, but key_buffer = 
16M; this will probably
cause your key read ratio to exceed 0.01 as MySQL resorts to reading 
indexes from the

hard drive, completely negating their usefulness.

In short, I would not worry about benchmarking defaults against 
my-huge.cnf. Make my.cnf

fit your server, then optimize your queries.

-Daniel

Matthew Lenz wrote:


infact .. the default debian config (some of these are just explicit
defaults but this is what debian provides):

[mysqld]
user= mysql
pid-file= /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port= 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir  = /tmp
language= /usr/share/mysql/english
skip-external-locking
old_passwords   = 1
key_buffer  = 16M
max_allowed_packet  = 16M
thread_stack= 128K
query_cache_limit   = 1048576
query_cache_size= 16777216
query_cache_type= 1
log-bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 104857600
skip-bdb

outperforms the huge.cnf example:

[mysqld]
user= mysql
pid-file= /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port= 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir  = /tmp
language= /usr/share/mysql/english
old_passwords   = 1
key_buffer  = 384M
max_allowed_packet  = 16M
table_cache = 512
sort_buffer_size= 2M
read_buffer_size= 2M
read_rnd_buffer_size= 8M
myisam_sort_buffer_size = 64M
query_cache_size= 32M
thread_concurrency  = 8
log-bin = /var/log/mysql/mysql-bin.log
server-id   = 1
skip-bdb
skip-external-locking

in almost every regard.  What gives? :)  This is a pretty beefy config:

dual 3ghz HT xeon .. 2gig 800mhz fsb mem .. U320 SCSI RAID5.  I've
attached a compare-results for a few machines.  the only important ones
are 1 and 2.  1 is debians my.cnf and 2 is the slightly modified
huge.cnf example.  What about that thread_concurrency setting in
huge.cnf.. it doesn't seem to show up in a 'show variables' when using
it.. is it deprecated?

-Matt

 



The result logs which where found and the options:
1 mysql-Linux_2.4.27_2_686_smp_i686   : MySQL 4.1.11 
Debian_4sarge1 log
2 mysql-Linux_2.4.27_2_686_smp_i686_db0_te: MySQL 4.1.11 
Debian_4sarge1 log
3 mysql-Linux_2.4.27_2_686_smp_i686_db1   : MySQL 4.1.11 
Debian_4sarge1 log

4 mysql-Linux_2.6.10-1.770_FC3smp_i686: MySQL 4.1.12 standard
5 mysql-Linux_2.6.10-1.770_FC3smp_i686_rai: MySQL 4.1.12 standard
6 mysql-Linux_2.6.11-1.14_FC3_x86_64  : MySQL 4.1.11 standard
7 mysql-Linux_2.6.8_2_686_smp_i686_kevinz : MySQL 4.1.11 
Debian_4sarge1 log


= 

Operation   |  1|  2|  3|  
4| 5|  6|  7|


|mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|
- 


Results per test in seconds: |
- 

ATIS

Re: default my.cnf vs huge.cnf nearly same performance with sql-bench/run-all-tests

2005-09-12 Thread Matthew Lenz
I guess I can understand that.  I still think it blows that using
huge.cnf vs. the standard config results in the huge.cnf showing worse
benchmarking results.  if what you are saying is correct (I don't doubt
your statements in the slightest) I would have hoped to at least seen
identical performance between the two.  One of mysql's strong point has
always been its ease of configuration (as far as I'm concerned anyway)
it would be nice if tuning was similar.  maybe some kind of built in
tuning functionality that allows it to grow its needs inside the
constraints of the servers physical memory or something. :)


On Mon, 2005-09-12 at 09:35 -0600, Daniel wrote:
 To its benchmarking limits, yes. But benchmarks and real-world 
 performance almost
 never closely parallel. If the purpose here is to set my.cnf optimally, 
 then it needs to
 be set in accordance with your real usage patterns.
 
 You probably won't see a big improvement in the benchmark between my.cnf 
 configs
 because the benchmark is mostly generalized. If it were, however, 
 designed to benchmark
 more specific things like a large spread of various queries on various 
 large indexes causing
 MySQL to really use its key_buffer, then there would be a more 
 noticeable difference
 between a 16M key_buffer and 384M.
 
 -Daniel
 
 Matthew Lenz wrote:
 
  so the sql-bench stuff doesn't push the mysqld to its limits?
 
  - Original Message - From: Daniel [EMAIL PROTECTED]
  To: Matthew Lenz [EMAIL PROTECTED]
  Cc: mysql mysql@lists.mysql.com
  Sent: Sunday, September 11, 2005 1:12 PM
  Subject: Re: default my.cnf vs huge.cnf nearly same performance with 
  sql-bench/run-all-tests
 
 
  I think it's a common misconception that MySQL will grow to meet the 
  settings in my.cnf.
  That is, if you have 32M of actively used indexes, there is no 
  difference between key_buffer = 64M
  and key_buffer = 512M. Similarly, if you have a need for 128 cached 
  tables, you'll gain
  no benefit with table_cache =  1024. MySQL uses only what it needs 
  to, when it needs to.
  Large values in my.cnf just set the upper limit. If operating below 
  these limits, no increase
  in them will have affect. When you hit the upper limit, then these 
  settings can have a dramatic
  affect. E.g., you have 32M of actively used indexes, but key_buffer = 
  16M; this will probably
  cause your key read ratio to exceed 0.01 as MySQL resorts to reading 
  indexes from the
  hard drive, completely negating their usefulness.
 
  In short, I would not worry about benchmarking defaults against 
  my-huge.cnf. Make my.cnf
  fit your server, then optimize your queries.
 
  -Daniel
 
  Matthew Lenz wrote:
 
  infact .. the default debian config (some of these are just explicit
  defaults but this is what debian provides):
 
  [mysqld]
  user= mysql
  pid-file= /var/run/mysqld/mysqld.pid
  socket  = /var/run/mysqld/mysqld.sock
  port= 3306
  basedir = /usr
  datadir = /var/lib/mysql
  tmpdir  = /tmp
  language= /usr/share/mysql/english
  skip-external-locking
  old_passwords   = 1
  key_buffer  = 16M
  max_allowed_packet  = 16M
  thread_stack= 128K
  query_cache_limit   = 1048576
  query_cache_size= 16777216
  query_cache_type= 1
  log-bin = /var/log/mysql/mysql-bin.log
  max_binlog_size = 104857600
  skip-bdb
 
  outperforms the huge.cnf example:
 
  [mysqld]
  user= mysql
  pid-file= /var/run/mysqld/mysqld.pid
  socket  = /var/run/mysqld/mysqld.sock
  port= 3306
  basedir = /usr
  datadir = /var/lib/mysql
  tmpdir  = /tmp
  language= /usr/share/mysql/english
  old_passwords   = 1
  key_buffer  = 384M
  max_allowed_packet  = 16M
  table_cache = 512
  sort_buffer_size= 2M
  read_buffer_size= 2M
  read_rnd_buffer_size= 8M
  myisam_sort_buffer_size = 64M
  query_cache_size= 32M
  thread_concurrency  = 8
  log-bin = /var/log/mysql/mysql-bin.log
  server-id   = 1
  skip-bdb
  skip-external-locking
 
  in almost every regard.  What gives? :)  This is a pretty beefy config:
 
  dual 3ghz HT xeon .. 2gig 800mhz fsb mem .. U320 SCSI RAID5.  I've
  attached a compare-results for a few machines.  the only important ones
  are 1 and 2.  1 is debians my.cnf and 2 is the slightly modified
  huge.cnf example.  What about that thread_concurrency setting in
  huge.cnf.. it doesn't seem to show up in a 'show variables' when using
  it.. is it deprecated?
 
  -Matt
 
   
 
 
  The result logs which where found and the options:
  1 mysql-Linux_2.4.27_2_686_smp_i686   : MySQL 4.1.11 
  Debian_4sarge1 log
  2 mysql-Linux_2.4.27_2_686_smp_i686_db0_te: MySQL

Re: default my.cnf vs huge.cnf nearly same performance with sql-bench/run-all-tests

2005-09-11 Thread Daniel
I think it's a common misconception that MySQL will grow to meet the 
settings in my.cnf.
That is, if you have 32M of actively used indexes, there is no 
difference between key_buffer = 64M
and key_buffer = 512M. Similarly, if you have a need for 128 cached 
tables, you'll gain
no benefit with table_cache =  1024. MySQL uses only what it needs to, 
when it needs to.
Large values in my.cnf just set the upper limit. If operating below 
these limits, no increase
in them will have affect. When you hit the upper limit, then these 
settings can have a dramatic
affect. E.g., you have 32M of actively used indexes, but key_buffer = 
16M; this will probably
cause your key read ratio to exceed 0.01 as MySQL resorts to reading 
indexes from the

hard drive, completely negating their usefulness.

In short, I would not worry about benchmarking defaults against 
my-huge.cnf. Make my.cnf

fit your server, then optimize your queries.

-Daniel

Matthew Lenz wrote:


infact .. the default debian config (some of these are just explicit
defaults but this is what debian provides):

[mysqld]
user= mysql
pid-file= /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port= 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir  = /tmp
language= /usr/share/mysql/english
skip-external-locking
old_passwords   = 1
key_buffer  = 16M
max_allowed_packet  = 16M
thread_stack= 128K
query_cache_limit   = 1048576
query_cache_size= 16777216
query_cache_type= 1
log-bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 104857600
skip-bdb

outperforms the huge.cnf example:

[mysqld]
user= mysql
pid-file= /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port= 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir  = /tmp
language= /usr/share/mysql/english
old_passwords   = 1
key_buffer  = 384M
max_allowed_packet  = 16M
table_cache = 512
sort_buffer_size= 2M
read_buffer_size= 2M
read_rnd_buffer_size= 8M
myisam_sort_buffer_size = 64M
query_cache_size= 32M
thread_concurrency  = 8
log-bin = /var/log/mysql/mysql-bin.log
server-id   = 1
skip-bdb
skip-external-locking

in almost every regard.  What gives? :)  This is a pretty beefy config:

dual 3ghz HT xeon .. 2gig 800mhz fsb mem .. U320 SCSI RAID5.  I've
attached a compare-results for a few machines.  the only important ones
are 1 and 2.  1 is debians my.cnf and 2 is the slightly modified
huge.cnf example.  What about that thread_concurrency setting in
huge.cnf.. it doesn't seem to show up in a 'show variables' when using
it.. is it deprecated?

-Matt
 




The result logs which where found and the options:
1 mysql-Linux_2.4.27_2_686_smp_i686   : MySQL 4.1.11 Debian_4sarge1 log
2 mysql-Linux_2.4.27_2_686_smp_i686_db0_te: MySQL 4.1.11 Debian_4sarge1 log
3 mysql-Linux_2.4.27_2_686_smp_i686_db1   : MySQL 4.1.11 Debian_4sarge1 log
4 mysql-Linux_2.6.10-1.770_FC3smp_i686: MySQL 4.1.12 standard
5 mysql-Linux_2.6.10-1.770_FC3smp_i686_rai: MySQL 4.1.12 standard
6 mysql-Linux_2.6.11-1.14_FC3_x86_64  : MySQL 4.1.11 standard
7 mysql-Linux_2.6.8_2_686_smp_i686_kevinz : MySQL 4.1.11 Debian_4sarge1 log

=
Operation   |  1|  2|  3|  4|  5|   
   6|  7|
   
|mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|
-
Results per test in seconds:
|
-
ATIS|   8.00|   9.00|   8.00|  16.00|  17.00|  
13.00|  32.00|
alter-table |  14.00|  14.00|  13.00|  13.00|  10.00|  
21.00|  49.00|
big-tables  |  10.00|  10.00|  10.00|  13.00|  12.00|  
10.00|  36.00|
connect | 108.00| 105.00|  99.00|  72.00|  71.00|  
58.00| 394.00|
create  |  67.00|  89.00|  89.00| 223.00| 219.00|  
98.00| 475.00|
insert  | 904.00| 908.00| 873.00| 854.00| 845.00| 
959.00|3751.00|
select  |  76.00|  76.00|  73.00| 353.00| 351.00| 
250.00| 291.00|
wisconsin   |   7.00|   7.00|   7.00|   6.00|   5.00|   
5.00|  20.00|
-
The results per operation:

Re: default my.cnf vs huge.cnf nearly same performance with sql-bench/run-all-tests

2005-09-11 Thread Matthew Lenz

so the sql-bench stuff doesn't push the mysqld to its limits?

- Original Message - 
From: Daniel [EMAIL PROTECTED]

To: Matthew Lenz [EMAIL PROTECTED]
Cc: mysql mysql@lists.mysql.com
Sent: Sunday, September 11, 2005 1:12 PM
Subject: Re: default my.cnf vs huge.cnf nearly same performance with 
sql-bench/run-all-tests



I think it's a common misconception that MySQL will grow to meet the 
settings in my.cnf.
That is, if you have 32M of actively used indexes, there is no difference 
between key_buffer = 64M
and key_buffer = 512M. Similarly, if you have a need for 128 cached 
tables, you'll gain
no benefit with table_cache =  1024. MySQL uses only what it needs to, 
when it needs to.
Large values in my.cnf just set the upper limit. If operating below these 
limits, no increase
in them will have affect. When you hit the upper limit, then these 
settings can have a dramatic
affect. E.g., you have 32M of actively used indexes, but key_buffer = 16M; 
this will probably
cause your key read ratio to exceed 0.01 as MySQL resorts to reading 
indexes from the

hard drive, completely negating their usefulness.

In short, I would not worry about benchmarking defaults against 
my-huge.cnf. Make my.cnf

fit your server, then optimize your queries.

-Daniel

Matthew Lenz wrote:


infact .. the default debian config (some of these are just explicit
defaults but this is what debian provides):

[mysqld]
user= mysql
pid-file= /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port= 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir  = /tmp
language= /usr/share/mysql/english
skip-external-locking
old_passwords   = 1
key_buffer  = 16M
max_allowed_packet  = 16M
thread_stack= 128K
query_cache_limit   = 1048576
query_cache_size= 16777216
query_cache_type= 1
log-bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 104857600
skip-bdb

outperforms the huge.cnf example:

[mysqld]
user= mysql
pid-file= /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port= 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir  = /tmp
language= /usr/share/mysql/english
old_passwords   = 1
key_buffer  = 384M
max_allowed_packet  = 16M
table_cache = 512
sort_buffer_size= 2M
read_buffer_size= 2M
read_rnd_buffer_size= 8M
myisam_sort_buffer_size = 64M
query_cache_size= 32M
thread_concurrency  = 8
log-bin = /var/log/mysql/mysql-bin.log
server-id   = 1
skip-bdb
skip-external-locking

in almost every regard.  What gives? :)  This is a pretty beefy config:

dual 3ghz HT xeon .. 2gig 800mhz fsb mem .. U320 SCSI RAID5.  I've
attached a compare-results for a few machines.  the only important ones
are 1 and 2.  1 is debians my.cnf and 2 is the slightly modified
huge.cnf example.  What about that thread_concurrency setting in
huge.cnf.. it doesn't seem to show up in a 'show variables' when using
it.. is it deprecated?

-Matt



The result logs which where found and the options:
1 mysql-Linux_2.4.27_2_686_smp_i686   : MySQL 4.1.11 Debian_4sarge1 
log
2 mysql-Linux_2.4.27_2_686_smp_i686_db0_te: MySQL 4.1.11 Debian_4sarge1 
log
3 mysql-Linux_2.4.27_2_686_smp_i686_db1   : MySQL 4.1.11 Debian_4sarge1 
log

4 mysql-Linux_2.6.10-1.770_FC3smp_i686: MySQL 4.1.12 standard
5 mysql-Linux_2.6.10-1.770_FC3smp_i686_rai: MySQL 4.1.12 standard
6 mysql-Linux_2.6.11-1.14_FC3_x86_64  : MySQL 4.1.11 standard
7 mysql-Linux_2.6.8_2_686_smp_i686_kevinz : MySQL 4.1.11 Debian_4sarge1 
log


=
Operation   |  1|  2|  3|  4| 
5|  6|  7|


|mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|
-
Results per test in seconds: 
|

-
ATIS|   8.00|   9.00|   8.00|  16.00| 
17.00|  13.00|  32.00|
alter-table |  14.00|  14.00|  13.00|  13.00| 
10.00|  21.00|  49.00|
big-tables  |  10.00|  10.00|  10.00|  13.00| 
12.00|  10.00|  36.00|
connect | 108.00| 105.00|  99.00|  72.00| 
71.00|  58.00| 394.00|
create  |  67.00|  89.00|  89.00| 223.00| 
219.00|  98.00| 475.00|
insert  | 904.00| 908.00| 873.00| 854.00| 
845.00| 959.00|3751.00|
select  |  76.00|  76.00|  73.00| 353.00| 
351.00| 250.00| 291.00|
wisconsin

Re: default my.cnf vs huge.cnf nearly same performance with

2005-09-10 Thread Gleb Paharenko
Hello.



 huge.cnf example.  What about that thread_concurrency setting in

 huge.cnf.. it doesn't seem to show up in a 'show variables' when using

 it.. is it deprecated?



In the manual it is meant that thead_concurrency is used on Solaris.

In the source files I've seen that thread_concurrency supported on those

platforms which have thr_setconcurrency function. See: 

  configure.in (AC_CHECK_FUNCS macros)

http://dev.mysql.com/doc/mysql/en/server-system-variables.html







Matthew Lenz [EMAIL PROTECTED] wrote:

 [-- text/plain, encoding 7bit, charset: US-ASCII, 61 lines --]

 

 infact .. the default debian config (some of these are just explicit

 defaults but this is what debian provides):

 

 [mysqld]

 user= mysql

 pid-file= /var/run/mysqld/mysqld.pid

 socket  = /var/run/mysqld/mysqld.sock

 port= 3306

 basedir = /usr

 datadir = /var/lib/mysql

 tmpdir  = /tmp

 language= /usr/share/mysql/english

 skip-external-locking

 old_passwords   = 1

 key_buffer  = 16M

 max_allowed_packet  = 16M

 thread_stack= 128K

 query_cache_limit   = 1048576

 query_cache_size= 16777216

 query_cache_type= 1

 log-bin = /var/log/mysql/mysql-bin.log

 max_binlog_size = 104857600

 skip-bdb

 

 outperforms the huge.cnf example:

 

 [mysqld]

 user= mysql

 pid-file= /var/run/mysqld/mysqld.pid

 socket  = /var/run/mysqld/mysqld.sock

 port= 3306

 basedir = /usr

 datadir = /var/lib/mysql

 tmpdir  = /tmp

 language= /usr/share/mysql/english

 old_passwords   = 1

 key_buffer  = 384M

 max_allowed_packet  = 16M

 table_cache = 512

 sort_buffer_size= 2M

 read_buffer_size= 2M

 read_rnd_buffer_size= 8M

 myisam_sort_buffer_size = 64M

 query_cache_size= 32M

 thread_concurrency  = 8

 log-bin = /var/log/mysql/mysql-bin.log

 server-id   = 1

 skip-bdb

 skip-external-locking

 

 in almost every regard.  What gives? :)  This is a pretty beefy config:

 

 dual 3ghz HT xeon .. 2gig 800mhz fsb mem .. U320 SCSI RAID5.  I've

 attached a compare-results for a few machines.  the only important ones

 are 1 and 2.  1 is debians my.cnf and 2 is the slightly modified

 huge.cnf example.  What about that thread_concurrency setting in

 huge.cnf.. it doesn't seem to show up in a 'show variables' when using

 it.. is it deprecated?

 

 -Matt

 

 [-- text/plain, encoding 7bit, charset: UTF-8, 117 lines, name: results.txt 
 --]

 

 The result logs which where found and the options:

 1 mysql-Linux_2.4.27_2_686_smp_i686   : MySQL 4.1.11 Debian_4sarge1 log

 2 mysql-Linux_2.4.27_2_686_smp_i686_db0_te: MySQL 4.1.11 Debian_4sarge1 log

 3 mysql-Linux_2.4.27_2_686_smp_i686_db1   : MySQL 4.1.11 Debian_4sarge1 log

 4 mysql-Linux_2.6.10-1.770_FC3smp_i686: MySQL 4.1.12 standard

 5 mysql-Linux_2.6.10-1.770_FC3smp_i686_rai: MySQL 4.1.12 standard

 6 mysql-Linux_2.6.11-1.14_FC3_x86_64  : MySQL 4.1.11 standard

 7 mysql-Linux_2.6.8_2_686_smp_i686_kevinz : MySQL 4.1.11 Debian_4sarge1 log

 

 =

 Operation   |  1|  2|  3|  4|  5| 
  6|  7|


 |mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|

 -

 Results per test in seconds:  
   |

 -

 ATIS|   8.00|   9.00|   8.00|  16.00|  17.00| 
  13.00|  32.00|

 alter-table |  14.00|  14.00|  13.00|  13.00|  10.00| 
  21.00|  49.00|

 big-tables  |  10.00|  10.00|  10.00|  13.00|  12.00| 
  10.00|  36.00|

 connect | 108.00| 105.00|  99.00|  72.00|  71.00| 
  58.00| 394.00|

 create  |  67.00|  89.00|  89.00| 223.00| 219.00| 
  98.00| 475.00|

 insert  | 904.00| 908.00| 873.00| 854.00| 845.00| 
 959.00|3751.00|

 select  |  76.00|  76.00|  73.00| 353.00| 351.00| 
 250.00| 291.00|

 wisconsin   |   7.00|   7.00|   7.00|   6.00|   5.00| 
   5.00|  20.00|

 -

 The results per operation:
   |

 -

 alter_table_add (100)   

Re: default my.cnf vs huge.cnf nearly same performance with

2005-09-10 Thread Matthew Lenz
- Original Message - 
From: Gleb Paharenko [EMAIL PROTECTED]

Hello.


huge.cnf example.  What about that thread_concurrency setting in
huge.cnf.. it doesn't seem to show up in a 'show variables' when using
it.. is it deprecated?


In the manual it is meant that thead_concurrency is used on Solaris.
In the source files I've seen that thread_concurrency supported on those
platforms which have thr_setconcurrency function. See:
 configure.in (AC_CHECK_FUNCS macros)
http://dev.mysql.com/doc/mysql/en/server-system-variables.html


Makes sense.  Its fine that its ignored.  I'm still curious as to why I'm 
not seeing better performance from the config that give mysql more resources 
to play with :( 


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



default my.cnf vs huge.cnf nearly same performance with sql-bench/run-all-tests

2005-09-09 Thread Matthew Lenz
infact .. the default debian config (some of these are just explicit
defaults but this is what debian provides):

[mysqld]
user= mysql
pid-file= /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port= 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir  = /tmp
language= /usr/share/mysql/english
skip-external-locking
old_passwords   = 1
key_buffer  = 16M
max_allowed_packet  = 16M
thread_stack= 128K
query_cache_limit   = 1048576
query_cache_size= 16777216
query_cache_type= 1
log-bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 104857600
skip-bdb

outperforms the huge.cnf example:

[mysqld]
user= mysql
pid-file= /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port= 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir  = /tmp
language= /usr/share/mysql/english
old_passwords   = 1
key_buffer  = 384M
max_allowed_packet  = 16M
table_cache = 512
sort_buffer_size= 2M
read_buffer_size= 2M
read_rnd_buffer_size= 8M
myisam_sort_buffer_size = 64M
query_cache_size= 32M
thread_concurrency  = 8
log-bin = /var/log/mysql/mysql-bin.log
server-id   = 1
skip-bdb
skip-external-locking

in almost every regard.  What gives? :)  This is a pretty beefy config:

dual 3ghz HT xeon .. 2gig 800mhz fsb mem .. U320 SCSI RAID5.  I've
attached a compare-results for a few machines.  the only important ones
are 1 and 2.  1 is debians my.cnf and 2 is the slightly modified
huge.cnf example.  What about that thread_concurrency setting in
huge.cnf.. it doesn't seem to show up in a 'show variables' when using
it.. is it deprecated?

-Matt
The result logs which where found and the options:
 1 mysql-Linux_2.4.27_2_686_smp_i686   : MySQL 4.1.11 Debian_4sarge1 log
 2 mysql-Linux_2.4.27_2_686_smp_i686_db0_te: MySQL 4.1.11 Debian_4sarge1 log
 3 mysql-Linux_2.4.27_2_686_smp_i686_db1   : MySQL 4.1.11 Debian_4sarge1 log
 4 mysql-Linux_2.6.10-1.770_FC3smp_i686: MySQL 4.1.12 standard
 5 mysql-Linux_2.6.10-1.770_FC3smp_i686_rai: MySQL 4.1.12 standard
 6 mysql-Linux_2.6.11-1.14_FC3_x86_64  : MySQL 4.1.11 standard
 7 mysql-Linux_2.6.8_2_686_smp_i686_kevinz : MySQL 4.1.11 Debian_4sarge1 log

=
Operation   |  1|  2|  3|  4|  5|   
   6|  7|

|mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|mysql-L|
-
Results per test in seconds:
|
-
ATIS|   8.00|   9.00|   8.00|  16.00|  17.00|  
13.00|  32.00|
alter-table |  14.00|  14.00|  13.00|  13.00|  10.00|  
21.00|  49.00|
big-tables  |  10.00|  10.00|  10.00|  13.00|  12.00|  
10.00|  36.00|
connect | 108.00| 105.00|  99.00|  72.00|  71.00|  
58.00| 394.00|
create  |  67.00|  89.00|  89.00| 223.00| 219.00|  
98.00| 475.00|
insert  | 904.00| 908.00| 873.00| 854.00| 845.00| 
959.00|3751.00|
select  |  76.00|  76.00|  73.00| 353.00| 351.00| 
250.00| 291.00|
wisconsin   |   7.00|   7.00|   7.00|   6.00|   5.00|   
5.00|  20.00|
-
The results per operation:  
|
-
alter_table_add (100)   |   6.00|   6.00|   5.00|   5.00|   4.00|   
9.00|  20.00|
alter_table_drop (91)   |   6.00|   6.00|   6.00|   6.00|   4.00|   
9.00|  18.00|
connect (1) |   6.00|   6.00|   6.00|   5.00|   5.00|   
5.00|  28.00|
connect+select_1_row (1)|   8.00|   8.00|   8.00|   7.00|   7.00|   
7.00|  33.00|
connect+select_simple (1)   |   8.00|   7.00|   8.00|   6.00|   6.00|   
6.00|  32.00|
count (100) |   8.00|   9.00|   8.00|   9.00|   8.00|   
6.00|  43.00|
count_distinct (1000)   |   1.00|   0.00|   1.00|  11.00|  11.00|   
6.00|   1.00|
count_distinct_2 (1000) |   0.00|   0.00|   0.00|  16.00|  15.00|   
8.00|   0.00|
count_distinct_big (120)|   8.00|   8.00|   7.00|  19.00|  20.00|  
14.00|  32.00|
count_distinct_group (1000) |