Daemon News Ezine BSD News BSD Mall BSD Support Forum BSD Advocacy BSD Updates

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Benchmark MySQL Performance On FreeBSD And Linux



Chris wrote:

Make sure your compile your MySQL dynamically which is done by default,
if you include 'BUILD_STATIC=yes' you ruin your ability to change
threading libs.

portupgrade -N  -m 'BUILD_OPTIMIZED=yes'
/usr/ports/databases/mysql41-server
Or upgrade
portupgrade -R  -m 'BUILD_OPTIMIZED=yes'/var/db/pkg/mysql-server-4.1.14


Use 'ldd' to find which threading library you are using.

ldd /usr/local/libexec/mysqld
/usr/local/libexec/mysqld:
      libz.so.3 => /lib/libz.so.3 (0x800978000)
      libwrap.so.4 => /usr/lib/libwrap.so.4 (0x800a8b000)
      libcrypt.so.3 => /lib/libcrypt.so.3 (0x800b94000)
      libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x800cad000)
      libm.so.4 => /lib/libm.so.4 (0x800ea4000)
      libpthread.so.2 => */usr/lib/libpthread.so.2* (0x800fc0000)
      libc.so.6 => /lib/libc.so.6 (0x8010eb000)

Put something like this into your /etc/libmap.conf to change your
threading library, and restart the service in question for the library
change to take effect.
[/usr/local/libexec/mysqld]
libpthread.so.2         libthr.so.2
libpthread.so           libthr.so

# ldd /usr/local/libexec/mysqld
/usr/local/libexec/mysqld:
      libz.so.3 => /lib/libz.so.3 (0x800978000)
      libwrap.so.4 => /usr/lib/libwrap.so.4 (0x800a8b000)
      libcrypt.so.3 => /lib/libcrypt.so.3 (0x800b94000)
      libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x800cad000)
      libm.so.4 => /lib/libm.so.4 (0x800ea4000)
      libpthread.so.2 => */usr/lib/libthr.so.2* (0x800fc0000)
      libc.so.6 => /lib/libc.so.6 (0x8010d7000)



Ok thanks just 2 more questions.

(a) if I build dynamic there is no performance penalty? since the Makefile
states build static for performance.
(b) I have no /etc/libmap.conf it doesnt exist, so if I just create one and
enter what you say it will work?

Chris
Yes check the URL below
http://dev.mysql.com/doc/refman/4.1/en/compile-and-link-options.html
The first line of the Optimizing the MySQL Server <http://dev.mysql.com/doc/refman/4.1/en/optimizing-the-server.html> in the Compiling section says
"You obtain the fastest executables when you link with |-static|."
And then again further down

" If you link dynamically (without |-static|), the result is 13% slower on Linux. Note that you still can use a dynamically linked MySQL library for your client applications. It is the server that is most critical for performance."

It would be great if some one could do the benchmarks on FreeBSD to verify that.

(b) I have no /etc/libmap.conf it doesnt exist, so if I just create one and enter what you say it will work?


Yes, its never there by default so just create it.
FYI there is a man page on libmap.conf

Mike