2.6.1.4 Примечания к Linux Alpha

MySQL версии 3.23.12 - первая версия MySQL, протестированная на Linux-Alpha. Поэтому если вы собираетесь использовать MySQL на Linux-Alpha, следует прежде всего убедиться, что вы используете либо эту версию, либо более свежую.

Мы тестировали MySQL на Alpha при помощи наших тестов на производительность и все работает превосходно.

При компиляции стандартных бинарных файлов MySQL мы использовали SuSE 7.0 для AXP с ядром 2.4.4-SMP, компилятор Compaq C (6.2-505) и компилятор Compaq C++ (6.3-006) на компьютере Compaq DS20 с процессором Alpha EV6.

Вышеупомянутый компилятор можно найти на http://www.support.compaq.com/alpha-tools/. Использование этого компилятора вместо gcc привело к улучшению производительности MySQL на 9-14%.

Отметим, что до версии MySQL 3.23.52 и 4.0.2 мы оптимизировали исполняемые файлы только для единственной модели процессора (используя опцию компиляции -fast); это означало что вы можете использовать наши двоичные файлы только если у вас процессор Alpha EV6.

Для всех следующих версий мы добавили флаг -arch generic к нашим опциям компиляции, что позволяет работать бинарному файлу на всех процессорах Alpha. Мы также собираем MySQL статически - во избежание проблем.

CC=ccc CFLAGS="-fast -arch generic" CXX=cxx \
CXXFLAGS="-fast -arch generic -noexceptions -nortti" \
./configure --prefix=/usr/local/mysql --disable-shared \
--with-extra-charsets=complex --enable-thread-safe-client \
--with-mysqld-ldflags=-non_shared --with-client-ldflags=-non_shared

Если вы хотите использовать egcs, то у нас применялась следующая командная строка конфигурирования:

CFLAGS="-O3 -fomit-frame-pointer" CXX=gcc \
CXXFLAGS="-O3 -fomit-frame-pointer -felide-constructors \
-fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql \
--disable-shared

Некоторые известные проблемы при запуске MySQL на Linux-Alpha:

  • отладка потоковых приложений, подобных MySQL, не работает с gdb 4.18. Вместо него необходимо установить и использовать gdb 5.1!
  • при попытке статического линкования mysqld с использованием gcc результирующий файл при попытке запуска сбрасывает образ памяти на диск (core dump) и умирает. Иными словами, не следует использовать с gcc опцию --with-mysqld-ldflags=-all-static.