2.2.5 Операционные системы, поддерживаемые MySQL
Мы применяем GNU Autoconf, что дает возможность переносить MySQL на все современные системы с работающими потоками Posix и компилятором C++ (чтобы скомпилировать только код клиента, требуется только компилятор C++ без использования потоков). Для себя мы используем и разрабатываем программное обеспечение в основном на Sun Solaris (версий 2.5 - 2.7) и SuSE Linux версии 7.x.
Следует учитывать, что для многих операционных систем поддержка собственных потоков работает только в самых последних версиях. Согласно полученным нами сообщениям, MySQL успешно компилируется на следующих комбинациях операционных систем и потоковых пакетов:
- AIX 4.x, 5.x с собственными потоками. См.раздел See section 2.6.6.4 Примечания к IBM-AIX.
- Amiga.
- BSDI 2.x с пакетом MIT-pthreads. See section 2.6.4.5 Примечания к BSD/OS версий 2.x.
- BSDI 3.0, 3.1 и 4.x с собственными потоками. See section 2.6.4.5 Примечания к BSD/OS версий 2.x.
- DEC Unix 4.x с собственными потоками. See section 2.6.6.6 Примечания к Alpha-DEC-UNIX (Tru64).
- FreeBSD 2.x с пакетом MIT-pthreads. See section 2.6.4.1 Примечания к FreeBSD.
- FreeBSD 3.x и 4.x с собственными потоками. See section 2.6.4.1 Примечания к FreeBSD.
- HP-UX 10.20 с пакетом MIT-pthreads или пакетом DCE-threads. See section 2.6.6.2 Примечания к HP-UX версии 10.20.
- HP-UX 11.x с собственными потоками. See section 2.6.6.3 Примечания к HP-UX версий 11.x.
- Linux 2.0+ с потоками LinuxThreads 0.7.1+ или glibc 2.0.7+. См. раздел See section 2.6.1 Примечания к Linux (Все версии Linux).
- Mac OS X. See section 2.6.5 Примечания к Mac OS X.
- NetBSD 1.3/1.4 Intel и NetBSD 1.3 Alpha (требует GNU make). See section 2.6.4.2 Примечания к NetBSD.
- OpenBSD > 2.5 с собственными потоками. OpenBSD < 2.5 с пакетом MIT-pthreads. See section 2.6.4.3 Примечания к OpenBSD 2.5.
- OS/2 Warp 3, FixPack 29 и OS/2 Warp 4, FixPack 4. See section 2.6.7 Примечания к OS/2.
- SGI Irix 6.x с собственными потоками. See section 2.6.6.8 Примечания к SGI Irix.
- Solaris 2.5 и выше с собственными потоками на SPARC и x86. See section 2.6.3 Примечания к Solaris.
- SunOS 4.x с пакетом MIT-pthreads. See section 2.6.3 Примечания к Solaris.
- Caldera (SCO) OpenServer с последним портом пакета FSU Pthreads. See section 2.6.6.9 Примечания к Caldera (SCO).
- Caldera (SCO) UnixWare 7.0.1. See section 2.6.6.10 Примечания к Caldera (SCO) Unixware Version 7.0.
- Tru64 Unix
- Windows 9x, Me, NT, 2000 и XP. See section 2.6.2 Примечания к Windows.
Следует отметить, что не на всех платформах 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, чтобы работать лучше, пошлите письмо по адресу internals@lists.mysql.com.
Просьба к вам: на основании приведенных выше сравнительных характеристик не делать выводов о том, что какая-либо операционная система лучше или хуже другой в общем. Мы говорим о выборе определенной операционной системы для конкретной цели - для работы MySQL, и сравниваем платформы только в таком смысле. С этой точки зрения результат такого сравнения был бы другим, если бы мы включили в него больше пунктов. И в некоторых случаях причина того, что одна операционная система лучше, чем другая, может заключаться всего лишь в том, что в тестирование и оптимизацию этой конкретной платформы было вложено гораздо больше усилий. Мы просто констатируем наши наблюдения, чтобы помочь вам принять решение - на какой платформе использовать MySQL в вашей системе.
2.2.2 Проверка целостности пакетов с помощью MD5 Checksums или GnuPG | Оглавление | 2.2.6 Какую версию MySQL использовать |