Для оптимизации выполнения данной БД на сервере с несколькими процессорами (и hyperthreding) после
конфигурирования FreeBSD c SMP рекомендую поставить linuxthreads и собрать MySQL с его поддержкой.Вот параметры для MySQL:
env CC=gcc CFLAGS="-O3 -pipe -march=pentiumpro -D__USE_UNIX98 -D_REENTRANT \
-D_THREAD_SAFE -DHAVE_BROKEN_REALPATH -I/usr/local/include/pthread/linuxthreads " \
CXX=gcc CXXFLAGS="-O3 -pipe -march=pentiumpro -felide-constructors \
-D__USE_UNIX98 -D_REENTRANT -D_THREAD_SAFE \
-DHAVE_BROKEN_REALPATH -I/usr/local/include/pthread/linuxthreads " \
./configure \
--prefix=/usr/local/mysql \
--with-mysqld-user=dbuser \
--with-charset=koi8_ukr \
--with-innodb \
--with-extra-charsets=none \
--without-isam \
--with-mysqld-user=dbuser \
--enable-assembler \
--mandir=/usr/local/man \
--with-mysqld-ldflags=-all-static \
--with-mit-threads=no \
--enable-thread-safe-client \
--disable-shared \
--without-debug \
--without-readline \
--without-bench \
--without-extra-tools \
--with-mysqlfs \
--with-vio \
--with-named-thread-libs="-DHAVE_GLIBC2_STYLE_GETHOSTBYNAME_R \
-D_THREAD_SAFE -DHAVE_BROKEN_REALPATH -I/usr/local/include/pthread/linuxthreads \
-L/usr/local/lib -llthread -llgcc_r -llstdc++ -llsupc++" \
--with-libwrapURL:
Обсуждается: http://www.opennet.me/tips/info/768.shtml
Зачем пользовать линукстреды на пятёрке, когда там есть нормальная libpthread? Это уже не четвёрка, где уродские линукстреды приходилось использовать ввиду того, что libc_r ещё более убога.
>Зачем пользовать линукстреды на пятёрке, когда там есть нормальная libpthread?Нормальная ?!
Вполне. Я бы даже сказал, что очень нормальная даже по сравнению с линуксовой nptl.
Ты с libc_r её е путаешь, право?
>Вполне. Я бы даже сказал, что очень нормальная даже по сравнению с
>линуксовой nptl.
>Ты с libc_r её е путаешь, право?Насколько я помню, у libpthread, которая использует KSE, есть проблемы, при работе на SMP, вплоть до panic'а.
У меня мускуль в продакшене работает с ксе на четырёхголовой машине с 2к далеко не всегда простых запросов в секунду и проблем нет. В крайнем случае libthr ещё есть, если ксе тебе не нравятся.
Затем, что linuxthreads дает куда больше производительность с mysql na 5.3, чем pthreads. Расклад примерно такой -
super-smack select.key 10 1000 на моей тестовой машине дает
5250 оп/с на mysql 4.1.5/linuxthreads/FreeBSD5.3
3850 на том же, но с pthreads system scope
1090 (не опечатка) с pthreads process scope.И на наших внутренних тестах mysql с linuxthreads стабильно шустрее.
Или поищите аналогичные цифры на сети.
линукстреды всех имеют. Щас на все сервера их ставим. шустрее на 10-20 процентов и проблем со стабильностью нет.