MySQL + LARGE innodb = thrashing HDD

MySQL + LARGE innodb = thrashing HDD

am 09.01.2007 23:39:46 von daniel

I have the following scenario.

A mysql database running 3 databases. It is version 5.0.27 on Windows
XP Prof.. All innodb databases. The one database is particularly large
(7.8GB of data)...pretty much held in 1 table....there are probabably
30 tables in the rest of the databases....combined they probably take
up 200MB. The machine is pretty well spec'ed AMD X2 4600+, 2GB RAM,
SATA RAID1. Normally the services that use the databases are idle until
our clients come online. Then it gets moderately busy. At the start of
this a single (possibly 2) query will "hang"....it will take 8-10
minutes to complete....it is always a insert or update. During this
time MySQL will write to the error log saying innodb semaphores are
timing out (but that makes sense). After this time the query completes
and the system runs normally.....running the same queries that it got
"stuck" on for a while, but this time taking microseconds to complete.

I've done some profiling using perfmon. During this "hang" the IO
writes byte for the mysql process goes from about <1MB per second to >
12MB per second. I then further ran some dianostics to see where it was
writing data using filemon...and it seems to be writing a ton to
c:\$logfile, which I understand is part of the NTFS transactional
system. I thought it might be the swap file, but I disabled this (set
it to 0MB) and the problem persists.

I have these servers set as masters for replication, so it is using
binary logging.

Can anyone think why this might happen?

Regards

D.

Re: MySQL + LARGE innodb = thrashing HDD

am 13.01.2007 04:06:25 von Michael Austin

daniel@mfaconsulting.com wrote:
> I have the following scenario.
>
> A mysql database running 3 databases. It is version 5.0.27 on Windows
> XP Prof.. All innodb databases. The one database is particularly large
> (7.8GB of data)...pretty much held in 1 table....there are probabably
> 30 tables in the rest of the databases....combined they probably take
> up 200MB. The machine is pretty well spec'ed AMD X2 4600+, 2GB RAM,
> SATA RAID1. Normally the services that use the databases are idle until
> our clients come online. Then it gets moderately busy. At the start of
> this a single (possibly 2) query will "hang"....it will take 8-10
> minutes to complete....it is always a insert or update. During this
> time MySQL will write to the error log saying innodb semaphores are
> timing out (but that makes sense). After this time the query completes
> and the system runs normally.....running the same queries that it got
> "stuck" on for a while, but this time taking microseconds to complete.
>
> I've done some profiling using perfmon. During this "hang" the IO
> writes byte for the mysql process goes from about <1MB per second to >
> 12MB per second. I then further ran some dianostics to see where it was
> writing data using filemon...and it seems to be writing a ton to
> c:\$logfile, which I understand is part of the NTFS transactional
> system. I thought it might be the swap file, but I disabled this (set
> it to 0MB) and the problem persists.
>
> I have these servers set as masters for replication, so it is using
> binary logging.
>
> Can anyone think why this might happen?
>
> Regards
>
> D.
>

You said you are running XP Professional on AMDx2 4600+. Is this classed as a
server or desktop. Is it XP Professional Desktop or Server. There is a big
difference in both cost and performance. If you want to us MS crap, us Sql
Server on Windows/. If you need a database server to
run MySQL - use Linux as the backend.

But a stab in the dark as to your problem, it sounds like your replication piece
needs to write a whole bunch of logs at the point in time when you start.

And lastly 7.8GB for MySQL or any database is a drop in the ocean - so, in order
to keep from embarassing your self with such comments - "particularly large"
begins at around 500-600GB. Moderately large is ~1-2TB, REALLY large is on the
order of 60-100TB and insanely large is >1PB. :) :) :)


--
Michael Austin.
Database Consultant
Domain Name Registration and
Web Hosting available at http://www.spacelots.com

Re: MySQL + LARGE innodb = thrashing HDD

am 13.01.2007 04:54:00 von Jerry Stuckle

Michael Austin wrote:
> daniel@mfaconsulting.com wrote:
>
>> I have the following scenario.
>>
>> A mysql database running 3 databases. It is version 5.0.27 on Windows
>> XP Prof.. All innodb databases. The one database is particularly large
>> (7.8GB of data)...pretty much held in 1 table....there are probabably
>> 30 tables in the rest of the databases....combined they probably take
>> up 200MB. The machine is pretty well spec'ed AMD X2 4600+, 2GB RAM,
>> SATA RAID1. Normally the services that use the databases are idle until
>> our clients come online. Then it gets moderately busy. At the start of
>> this a single (possibly 2) query will "hang"....it will take 8-10
>> minutes to complete....it is always a insert or update. During this
>> time MySQL will write to the error log saying innodb semaphores are
>> timing out (but that makes sense). After this time the query completes
>> and the system runs normally.....running the same queries that it got
>> "stuck" on for a while, but this time taking microseconds to complete.
>>
>> I've done some profiling using perfmon. During this "hang" the IO
>> writes byte for the mysql process goes from about <1MB per second to >
>> 12MB per second. I then further ran some dianostics to see where it was
>> writing data using filemon...and it seems to be writing a ton to
>> c:\$logfile, which I understand is part of the NTFS transactional
>> system. I thought it might be the swap file, but I disabled this (set
>> it to 0MB) and the problem persists.
>>
>> I have these servers set as masters for replication, so it is using
>> binary logging.
>>
>> Can anyone think why this might happen?
>>
>> Regards
>>
>> D.
>>
>
> You said you are running XP Professional on AMDx2 4600+. Is this classed
> as a server or desktop. Is it XP Professional Desktop or Server. There
> is a big difference in both cost and performance. If you want to us MS
> crap, us Sql Server on Windows/. If you need
> a database server to run MySQL - use Linux as the backend.
>

MySQL runs quite well in Windows platforms - although I agree it runs
better on Linux.

> But a stab in the dark as to your problem, it sounds like your
> replication piece needs to write a whole bunch of logs at the point in
> time when you start.
>

A good possibility. My recommendation would be to issue a couple of
"dummy" requests when the system starts up as a test. Then watch the
log files to see what changes. Any significant here could account for it.

> And lastly 7.8GB for MySQL or any database is a drop in the ocean - so,
> in order to keep from embarassing your self with such comments -
> "particularly large" begins at around 500-600GB. Moderately large is
> ~1-2TB, REALLY large is on the order of 60-100TB and insanely large is
> >1PB. :) :) :)
>
>

Yep. 8Gb is not a big database.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================