Thanks all for the suggestions. I *think* I've finally figured it out.

At the end of the day I think it was because the new drives were formatted
with ext3. I recreated them in ext2 and performance is back to where it was
on those queries..

I hadn't realised that ext3 would give that much of a degradation with
journaling!

This page gives a rough indication of the time spent in various queries on
one of my runs.

http://stats.free-dc.org/stats.php?page=statsrun&proj=fah

You can see after 12pm on sunday 20th when I installed the drives as ext3
and then 8pm tonight (PST) where I put them to ext2. Users RankRAC and
rankinteams was dramatically dfferent.

Phil



On Mon, Jul 21, 2008 at 12:39 PM, Wm Mussatto <[EMAIL PROTECTED]> wrote:

> On Mon, July 21, 2008 09:14, Brent Baisley wrote:
> > Copying 5GB files shows you what kind of performance you would get for
> > working with say video, or anything with large contiguous files.
> > Database access tends to be random, so you want a drive with faster
> > random access, not streaming speed. Try copying thousands of small
> > files and compare the speeds.
> >
> > One odd thing to check is if the "old" drive supports command queueing
> > and the new one does not. I assume that are both SATA drives. All SCSI
> > drives support command queueing and it can make a huge difference
> > depending on access patterns.
> Also that its turned ON.
> > Brent
> >
> > On Mon, Jul 21, 2008 at 8:42 AM, Phil <[EMAIL PROTECTED]> wrote:
> >> Nothing else running and no queries go against that table, it's
> >> effectively
> >> created just for this, so I would expect the table lock.
> >>
> >> Show (full) processlist has nothing but this running..
> >>
> >> Confirmed the faster disks by copying 5Gb files between two of the same
> >> type
> >> of disk (I installed two of them). 2xfaster than previous disks.
> >>
> >> my.cnf
> >>
> >> [mysqld]
> >> datadir=/var/lib/mysql
> >> socket=/var/lib/mysql/mysql.sock
> >> user=mysql
> >> # Default to using old password format for compatibility with mysql 3.x
> >> # clients (those using the mysqlclient10 compatibility package).
> >> old_passwords=1
> >> key_buffer_size=3072M
> >> max_allowed_packet=16M
> >> thread_stack=128K
> >> thread_cache_size=64
> >> thread_concurrency=8
> >> sort_buffer_size=32M
> >> join_buffer_size=3M
> >> read_buffer_size=16M
> >> query_cache_size=64M
> >> query_cache_limit=8M
> >> table_cache=300
> >> max_connections=500
> >> max_heap_table_size=1024M
> >> tmp_table_size=1024M
> >> myisam_sort_buffer_size=128M
> >> wait_timeout=3000
> >>
> >> set-variable=long_query_time=6
> >> log-slow-queries=/var/log/mysql-slow-queries.log
> >>
> >> 8Gb Ram on this machine which is an intel quad core.
> >>
> >> Anything else I'm missing? It's *possible* a colleague had changed the
> >> my.cnf in the last few weeks and mysqld hadn't been restarted, but I
> >> don't
> >> see anything obvious in there and he can't remember.
> >>
> >> :(
> >>
> >>
> >>
> >> On Mon, Jul 21, 2008 at 7:08 AM, Ananda Kumar <[EMAIL PROTECTED]>
> wrote:
> >>
> >>> Is there any other job running while the update is happening. Because,
> >>> myisam does a table level lock. Please check the "show full
> >>> processlist".
> >>>
> >>> Also run mysqladmin -uroot -pxxx status. This would write lock
> >>> information
> >>> into the machine.err log file. Check in this file also if there is any
> >>> locking happening.
> >>>
> >>> R u sure, this disk is a FASTER disk then the earlier one.
> >>>
> >>>
> >>>
> >>>
> >>> On 7/21/08, Phil <[EMAIL PROTECTED]> wrote:
> >>>>
> >>>> Hi All,
> >>>>
> >>>>
> >>>> Given a fairly simple table as follows
> >>>>
> >>>> CREATE TABLE `common_userx2` (
> >>>> `t_proj` char(6) default NULL,
> >>>> `t_id` int(11) NOT NULL default '0',
> >>>> `t_nick` varchar(50) character set latin1 collate latin1_bin NOT NULL
> >>>> default '',
> >>>> `t_country` varchar(50) NOT NULL default '',
> >>>> `t_cpid` varchar(50) NOT NULL default '',
> >>>> `t_url` varchar(50) default NULL,
> >>>> `t_create_date` int(11) default NULL,
> >>>> `t_create_time` bigint(20) NOT NULL,
> >>>> `t_has_profile` char(1) NOT NULL,
> >>>> `t_team0` int(11) default NULL,
> >>>> `t_metric1` double(20,6) NOT NULL default '0.000000',
> >>>> `t_metric2` double NOT NULL default '0',
> >>>> `t_metric3` double NOT NULL default '0',
> >>>> `t_metric4` double default NULL,
> >>>> `t_active` char(1) NOT NULL default '',
> >>>> `t_rev_metric1` double(20,6) NOT NULL default '10000000000.000000',
> >>>> `t_projrank0` int(11) default NULL,
> >>>> `t_rev_metric2` double(20,6) NOT NULL default '10000000000.000000',
> >>>> `t_racrank0` int(11) default NULL,
> >>>> `t_teamrank0` int(11) default NULL,
> >>>> `t_countryrank0` int(11) default NULL,
> >>>> `t_createdaterank0` int(11) default NULL,
> >>>> PRIMARY KEY  (`t_id`),
> >>>> KEY `prank` (`t_rev_metric1`,`t_id`),
> >>>> KEY `trank` (`t_team0`,`t_rev_metric1`,`t_id`),
> >>>> KEY `countryrank` (`t_country`,`t_rev_metric1`,`t_id`),
> >>>> KEY `createdaterank` (`t_create_date`,`t_rev_metric1`,`t_id`),
> >>>> KEY `racrank` (`t_rev_metric2`,`t_id`)
> >>>> ) ENGINE=MyISAM DEFAULT CHARSET=latin1
> >>>>
> >>>> I have a ranking update statement as follows
> >>>>
> >>>> set @rank = 0;
> >>>> update common_userx2 set projrank0 = @rank:[EMAIL PROTECTED] order by
> >>>> t_rev_metric1,t_id;
> >>>>
> >>>> For the largest case this has close to 1M rows.
> >>>>
> >>>> For weeks it was taking around 10seconds to do this. Yesterday I
> >>>> replaced
> >>>> the main data drive in the machine with a faster SATA Raptor drive. No
> >>>> problems occurred, but since then (and the subsequent reboot of the
> >>>> machine)
> >>>> this particular query is taking 45 minutes!
> >>>>
> >>>> I can't, for the life of me figure out why performance would be
> >>>> degraded
> >>>> so
> >>>> much. At first I thought perhaps it might be just disk/mysql caching
> >>>> but
> >>>> the
> >>>> performance has not increased any in subsequent runs.
> >>>>
> >>>> Any advice on where to look ?
> >>>>
> >>>> Phil
> >>>>
> >>>> --
> >>>> Help build our city at http://free-dc.myminicity.com !
> >>>>
> >>>
> >>>
> >>
> >>
> >> --
> >> Help build our city at http://free-dc.myminicity.com !
> >>
> >
> > --
> > MySQL General Mailing List
> > For list archives: http://lists.mysql.com/mysql
> > To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]
> >
> >
>
>
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]
>
>


-- 
Help build our city at http://free-dc.myminicity.com !

Reply via email to