Why is MySQL nearly twice as fast on Linux?
JG
amd64list at jpgsworld.com
Sun May 23 12:19:23 PDT 2004
>last pid: 19842; load averages: 7.32, 1.70,
>0.67 up 5+10:01:49 21:33:44
>110 processes: 1 running, 99 sleeping, 10 lock
>CPU states: 55.6% user, 0.0% nice, 39.4% system, 0.8% interrupt, 4.2% idle
>Mem: 312M Active, 64M Inact, 103M Wired, 18M Cache, 60M Buf, 992K Free
>Swap: 3906M Total, 164K Used, 3906M Free
>
> PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU CPU COMMAND
> 646 mysql 20 0 285M 282M kserel 0 400:31 2.39% 2.39% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 2.39% 2.39% mysqld
> 646 mysql 98 0 285M 282M *Giant 0 400:31 2.34% 2.34% mysqld
> 646 mysql 20 0 285M 282M kserel 1 400:31 2.25% 2.25% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 2.15% 2.15% mysqld
> 646 mysql 20 0 285M 282M kserel 1 400:31 2.15% 2.15% mysqld
> 646 mysql 98 0 285M 282M *Giant 0 400:31 2.15% 2.15% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 2.05% 2.05% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 2.00% 2.00% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 2.00% 2.00% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 1.95% 1.95% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 1.95% 1.95% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 1.95% 1.95% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 1.95% 1.95% mysqld
> 646 mysql 98 0 285M 282M *Giant 0 400:31 1.95% 1.95% mysqld
> 646 mysql 20 0 285M 282M kserel 1 400:31 1.90% 1.90% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 1.90% 1.90% mysqld
> 646 mysql 20 0 285M 282M kserel 1 400:31 1.90% 1.90% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 1.86% 1.86% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 1.86% 1.86% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 1.81% 1.81% mysqld
> 646 mysql 97 0 285M 282M *Giant 0 400:31 1.81% 1.81% mysqld
> 646 mysql 20 0 285M 282M kserel 1 400:31 1.71% 1.71% mysqld
> 646 mysql 98 0 285M 282M *Giant 0 400:31 1.71% 1.71% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 1.66% 1.66% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 1.66% 1.66% mysqld
> 646 mysql 97 0 285M 282M *Giant 0 400:31 1.56% 1.56% mysqld
> 646 mysql 4 0 285M 282M sbwait 0 400:31 1.46% 1.46% mysqld
> 646 mysql 20 0 285M 282M kserel 0 400:31 1.37% 1.37% mysqld
> 646 mysql 20 0 285M 282M kserel 1 400:31 1.22% 1.22% mysqld
> 646 mysql 4 0 285M 282M sbwait 0 400:31 1.22% 1.22% mysqld
>19813 pete 4 0 2600K 1712K sbwait 0 0:00 1.19% 0.68%
>super-smack
>19835 pete 4 0 2600K 1712K sbwait 0 0:00 1.11% 0.63%
>super-smack
>19831 pete 96 0 2600K 1712K *Giant 0 0:00 1.11% 0.63%
>super-smack
>19837 pete 4 0 2600K 1712K sbwait 1 0:00 1.11% 0.63%
>super-smack
>
>Pete
Ok. Well this is definitely a significant discovery.
Maybe it's because I'm using SCHED_4BSD for the results I posted.. lets see..
/me switches kernels.....
Using SMP enabled kernel with SCHED_ULE I get:
last pid: 724; load
averages: 1.43, 0.46, 0.17
up 0+00:18:28 11:11:23
64 processes: 4 running, 60 sleeping
CPU states: 0.0% user, 0.0% nice, 50.2% system, 0.0% interrupt, 49.8%
idle
Mem: 66M Active, 6372K Inact, 59M Wired, 124K Cache, 25M Buf, 1846M Free
Swap: 4096M Total, 4096M Free
PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU CPU COMMAND
581 mysql 139 0 63568K 50164K CPU0 0 1:41 49.22% 49.22% mysqld
581 mysql 139 0 63568K 50164K RUN 0 1:41 42.19% 42.19% mysqld
581 mysql 76 0 63568K 50164K select 0 1:41 0.00% 0.00% mysqld
581 mysql 20 0 63568K 50164K ksesig 0 1:41 0.00% 0.00% mysqld
681 root 8 0 9300K 2088K wait 0 0:00 0.00% 0.00%
super-smack
(only 4 myqld's up there while its running... the rest are super-smack in
wait states)
But then I ran it again, same command, doing nothing different....
And now I get:
PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU CPU COMMAND
581 mysql 77 0 63584K 50628K RUN 0 3:23 60.16% 60.16% mysqld
742 root 88 0 9316K 2108K RUN 0 0:07 12.50% 12.50%
super-smack
732 root 4 0 9316K 2108K sbwait 1 0:07 8.59% 8.59%
super-smack
734 root 90 0 9316K 2108K RUN 0 0:05 7.81% 7.81%
super-smack
581 mysql 76 0 63584K 50628K select 1 3:23 0.00% 0.00% mysqld
581 mysql 20 0 63584K 50628K ksesig 0 3:23 0.00% 0.00% mysqld
581 mysql 4 0 63584K 50628K sbwait 0 3:23 0.00% 0.00% mysqld
581 mysql 4 0 63584K 50628K sbwait 0 3:23 0.00% 0.00% mysqld
581 mysql 4 0 63584K 50628K sbwait 0 3:23 0.00% 0.00% mysqld
581 mysql 4 0 63584K 50628K sbwait 1 3:23 0.00% 0.00% mysqld
581 mysql 4 0 63584K 50628K sbwait 1 3:23 0.00% 0.00% mysqld
581 mysql 4 0 63584K 50628K sbwait 1 3:23 0.00% 0.00% mysqld
581 mysql 4 0 63584K 50628K sbwait 1 3:23 0.00% 0.00% mysqld
581 mysql 4 0 63584K 50628K sbwait 1 3:23 0.00% 0.00% mysqld
581 mysql 4 0 63584K 50628K sbwait 1 3:23 0.00% 0.00% mysqld
... many more mysqld's running in the beginning, but after a couple minutes
the results flip around to look like this:
last pid: 759; load
averages: 3.91, 4.24, 2.10
up 0+00:23:41 11:16:36
64 processes: 3 running, 59 sleeping, 2 zombie
CPU states: 1.8% user, 0.0% nice, 48.6% system, 0.6% interrupt, 49.0% idle
Mem: 65M Active, 6336K Inact, 60M Wired, 124K Cache, 25M Buf, 1846M Free
Swap: 4096M Total, 4096M Free
PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU CPU COMMAND
581 mysql 139 0 63584K 50180K RUN 0 6:49 46.88% 46.88% mysqld
581 mysql 139 0 63584K 50180K RUN 0 6:49 42.97% 42.97% mysqld
581 mysql 76 0 63584K 50180K select 1 6:49 0.00% 0.00% mysqld
581 mysql 20 0 63584K 50180K ksesig 0 6:49 0.00% 0.00% mysqld
732 root 4 0 9316K 2108K sbwait 1 0:16 0.00% 0.00%
super-smack
756 root 4 0 9316K 2108K sbwait 1 0:10 0.00% 0.00%
super-smack
739 root 4 0 9316K 2108K sbwait 1 0:06 0.00% 0.00%
super-smack
737 root 4 0 9316K 2108K sbwait 0 0:02 0.00% 0.00%
super-smack
729 root 4 0 9316K 2108K sbwait 0 0:02 0.00% 0.00%
super-smack
744 root 4 0 9316K 2108K sbwait 1 0:02 0.00% 0.00%
super-smack
746 root 4 0 9316K 2108K sbwait 0 0:01 0.00% 0.00%
super-smack
733 root 4 0 9316K 2108K sbwait 1 0:01 0.00% 0.00%
super-smack
731 root 4 0 9316K 2108K sbwait 1 0:01 0.00% 0.00%
super-smack
730 root 4 0 9316K 2108K sbwait 1 0:01 0.00% 0.00%
super-smack
735 root 4 0 9316K 2108K sbwait 0 0:01 0.00% 0.00%
super-smack
741 root 4 0 9316K 2108K sbwait 0 0:01 0.00% 0.00%
super-smack
750 root 4 0 9316K 2108K sbwait 1 0:01 0.00% 0.00%
super-smack
755 root 4 0 9316K 2108K sbwait 1 0:01 0.00% 0.00%
super-smack
747 root 4 0 9316K 2108K sbwait 1 0:01 0.00% 0.00%
super-smack
751 root 4 0 9316K 2108K sbwait 1 0:01 0.00% 0.00%
super-smack
745 root 4 0 9316K 2108K sbwait 1 0:01 0.00% 0.00%
super-smack
(+more super-smacks in sbwait state like above)
When it's idle with no mysql load / benchmarking going on, it looks like this:
last pid: 759; load
averages: 1.40, 3.40, 1.98
up 0+00:24:59 11:17:54
33 processes: 1 running, 32 sleeping
CPU states: 0.2% user, 0.0% nice, 0.0% system, 0.4% interrupt, 99.4% idle
Mem: 60M Active, 5936K Inact, 58M Wired, 124K Cache, 25M Buf, 1854M Free
Swap: 4096M Total, 4096M Free
PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU CPU COMMAND
581 mysql 76 0 63568K 50164K select 1 7:27 0.00% 0.00% mysqld
581 mysql 20 0 63568K 50164K kserel 0 7:27 0.00% 0.00% mysqld
581 mysql 20 0 63568K 50164K ksesig 0 7:27 0.00% 0.00% mysqld
581 mysql 20 0 63568K 50164K kserel 0 7:27 0.00% 0.00% mysqld
677 root 76 0 6712K 1680K CPU0 0 0:00 0.00% 0.00% top
Is this normal behavior?
More information about the freebsd-threads
mailing list