2.2.5 Операционные системы, поддерживаемые MySQL
Мы применяем GNU Autoconf, что дает возможность переносить MySQL на все
современные системы с работающими потоками Posix и компилятором C++ (чтобы
скомпилировать только код клиента, требуется только компилятор C++ без
использования потоков). Для себя мы используем и разрабатываем программное
обеспечение в основном на Sun Solaris (версий 2.5 - 2.7) и SuSE Linux
версии 7.x.
Следует учитывать, что для многих операционных систем поддержка
собственных потоков работает только в самых последних версиях. Согласно
полученным нами сообщениям, MySQL успешно компилируется на следующих
комбинациях операционных систем и потоковых пакетов:
Следует отметить, что не на всех платформах MySQL функционирует одинаково
хорошо. Насколько подходит определенная платформа для высоконагружаемого
многоцелевого сервера MySQL, определяется следующими факторами:
-
Общая стабильность потоковой библиотеки. Платформа может иметь
отличную репутацию в других отношениях, но если в коде, который
вызывается MySQL, потоковая библиотека нестабильна, то, даже если все
остальное прекрасно, стабильность MySQL будет определяться
стабильностью потоковой библиотеки.
-
Способность ядра и/или библиотеки потоков пользоваться преимуществом
симметричной многопроцессорной обработки (
SMP
) на многопроцессорных
системах. Другими словами, при создании процессом потока для этого
потока должна быть возможность работать на ином центральном процессоре
(CPU), чем исходный процесс.
-
Способность библиотеки ядра и/или потоков запускать много потоков,
которые приобретают/освобождают синхронизирующий флаг в небольшой
критической области, часто без излишних переключений контекста. Иными
словами, если реализация
pthread_mutex_lock()
является очень
``уступающей'' время центрального процессора, это значительно
вредит MySQL. Если не принять во внимание данное обстоятельство, то
использование добавочных центральных процессоров сделает MySQL
существенно медленнее.
-
Общая стабильность/производительность файловой системы.
-
Способность файловой системы работать с большими файлами вообще и
работать с ними эффективно в случае больших таблиц.
-
Наш, т.е. разработчиков, уровень компетенции в том, что касается
данной платформы. Для платформ, которые мы знаем хорошо, мы вводим в
MySQL специфические для платформы оптимизации/исправления, доступные
во время компиляции. Кроме того, мы можем также дать совет по
оптимальной для MySQL конфигурации вашей системы.
-
Выполненный нами у себя объем тестирования подобных конфигураций.
-
Количество пользователей, успешно применяющих MySQL на данной
платформе в подобных конфигурациях. Если это количество велико, то
шансы получить некоторые специфические для данной платформы сюрпризы,
намного меньше.
В соответствии с предыдущими критериями наилучшими платформами с этой
точки зрения для функционирования MySQL являются: x86 под управлением SuSE
Linux 7.1, с ядром 2.4 и ReiserFS (или любой подобный дистрибутив Linux) и
SPARC под управлением Solaris 2.7 или 2.8. FreeBSD оказывается третьей, но
мы в самом деле надеемся, что эта платформа войдет в число лучших, как
только станет совершеннее потоковая библиотека. Мы также надеемся, что, с
некоторого момента, мы сможем включить в высшую категорию все остальные
платформы, на которых MySQL компилируется и функционирует нормально, но не
с тем же уровнем стабильности и производительности. Это потребует
некоторых усилий с нашей стороны в сотрудничестве с разработчиками
компонентов операционных систем и библиотек, от которых зависит MySQL.
Если вы заинтересованы в улучшении тех или иных компонентов, у вас есть
возможность оказать влияние на их разработку и вы нуждаетесь в подробных
инструкциях по поводу того, что нужно MySQL, чтобы работать лучше, пошлите
письмо по адресу [email protected].
Просьба к вам: на основании приведенных выше сравнительных характеристик
не делать выводов о том, что какая-либо операционная система лучше или
хуже другой в общем. Мы говорим о выборе определенной операционной системы
для конкретной цели - для работы MySQL, и сравниваем платформы только в
таком смысле. С этой точки зрения результат такого сравнения был бы
другим, если бы мы включили в него больше пунктов. И в некоторых случаях
причина того, что одна операционная система лучше, чем другая, может
заключаться всего лишь в том, что в тестирование и оптимизацию этой
конкретной платформы было вложено гораздо больше усилий. Мы просто
констатируем наши наблюдения, чтобы помочь вам принять решение - на какой
платформе использовать MySQL в вашей системе.
Add your own comment.