この項では MySQL Community Server が動作するオペレーティング システムを採り上げます。
重要MySQL ABではこの項で採り上げるすべてのオペテーティング システムに公式のサポートは提供していません。MySQL AB が公式にサポートしているプラットフォームは MySQL のウェブサイトにある http://www.mysql.com/support/supportedplatforms.html を参照してください。
弊社では GNU Autoconf を使用していますので、C++ のコンパイラを実装した最新のシステムに MySQL をポートして POSIX スレッドを実装できます。(スレッドのサポートがサーバに必要です。クライアントコードのみをコンパイル摩る場合には、C++ コンパイラーのみが必要です。)弊社では主に Linux (SuSE および Red Hat)、FreeBSD、および Sun の Solaris (バージョン 8 と 9) を使用して自社でソフトウェアの開発を行っています。
MySQL は以下のオペレーティング システムとスレッド パッケージの組み合わせでのコンパイルでよい結果が出ています。多くのオペレーティング システムでは、ネイティブのスレッドのサポートは最新バージョンのみで動作します。
AIX 4.x, 5.x (ネイティブ スレッド)。項2.13.5.3. 「IBM-AIX に関する注釈」 参照。
Amiga。
BSDI 2.x (MIT-pthreads パッケージ)。項2.13.4.4. 「BSD/OS Version 2.x に関する注釈」 参照。
BSDI 3.0、3.1 および 4.x (ネイティブ スレッド)。項2.13.4.4. 「BSD/OS Version 2.x に関する注釈」 参照。
Digital Unix 4.x (ネイティブ スレッド)。項2.13.5.5. 「Alpha-DEC-UNIX に関する注釈 (Tru64)」 参照。
FreeBSD 2.x (MIT-pthreads パッケージ)。項2.13.4.1. 「FreeBSD に関する注釈」 参照。
FreeBSD 3.x and 4.x (ネイティブ スレッド)。項2.13.4.1. 「FreeBSD に関する注釈」 参照。
FreeBSD 4.x (ネイティブ スレッド)。項2.13.4.1. 「FreeBSD に関する注釈」 参照。
HP-UX 10.20 (DCE スレッドあるいは MIT-pthreads パッケージ)。項2.13.5.1. 「HP-UX バージョン 10.20 に関する注釈」 参照。
HP-UX 11.x (ネイティブ スレッド)。項2.13.5.2. 「HP-UX バージョン 11.x に関する注釈」 参照。
Linux 2.0+ LinuxThreads 0.7.1+ あるいは
glibc
2.0.7+ (いくつかの CPU
アーキテクチャ用)。項2.13.1. 「Linux の注釈」
参照。
Mac OS X. 項2.13.2. 「Mac OS X に関する注釈」 参照。
NetBSD 1.3/1.4 Intel および NetBSD 1.3 Alpha (GNU 仕様)。項2.13.4.2. 「NetBSD に関する注釈」 参照。
Novell NetWare 6.0 および 6.5。項2.7. 「MySQL を NetWare にインストールする」 参照。
OpenBSD 2.5 およびネイティブ スレッド付き。OpenBSD 2.5 以前(MIT-pthreads パッケージ)項2.13.4.3. 「OpenBSD 2.5 に関する注釈」 参照。
OS/2 Warp 3、FixPack 29 および OS/2 Warp 4、FixPack 4。項2.13.6. 「OS/2 に関する注釈」 参照。
SCO OpenServer 5.0.X の最新 FSU Pthreads パッケージ サポート版項2.13.5.8. 「SCO UNIX および OpenServer 5.0.x に関する注釈」 参照。
SCO Openserver 6.0.x。項2.13.5.9. 「SCO OpenServer 6.0.x に関する注釈」 参照。
SCO UnixWare 7.1.x。項2.13.5.10. 「SCO UnixWare 7.1.x および OpenUNIX 8.0.0 に関する注釈」 参照。
SGI Irix 6.x (ネイティブ スレッド)。項2.13.5.7. 「SGI Irix に関する注釈」 参照。
Solaris 2.5 およびそれ以降で SPARC および x86 のネイティブ スレッド付き。項2.13.3. 「Solaris に関する注釈」 参照。
SunOS 4.x (MIT-pthreads パッケージ)項2.13.3. 「Solaris に関する注釈」 参照。
Tru64 Unix。項2.13.5.5. 「Alpha-DEC-UNIX に関する注釈 (Tru64)」 参照。
Windows 9x、Me、NT、2000、XP、および Windows Server 2003。項2.3. 「Windows に MySQL をインストールする」 参照。
すべてのプラットフォームが MySQL の動作に適しているという訳ではありません。どのプラットフォームが高負荷のミッション クリティカルな MySQL サーバに適しているかは以下の要因によります。
スレッド ライブラリの総合的な安定性。プラットフォームそのものは評判が良くてすべてがパーフェクトであっても、MySQL の安定性はそのプラットフォームではなくスレッドのライブラリに因ります。
kernel および スレッド ライブラリの特徴は SMP (対称型マルチプロセッサ) を利点を活かせることにあります。換言すれば、プロセッサがスレッドを作成すると、オリジナル プロセスの異なる CPU でスレッドを実行できることです。
kernel およびスレッド
ライブラリの特徴は過剰なコンテキスト
スイッチなしで、狭いクリティカルな領域で頻繁に
mutex
を取得してリリースする多くのスレッドを実行できることです。pthread_mutex_lock()
の実装によって CPU
の時間節約の汲々とした場合、MySQL
に大きな影響を与えます。この問題に適切に対処しないと、別の
CPU を追加することにより実質的に MySQL
が遅くなります。
総合的なファイルシステムの安定性とパフォーマンス。
テーブルが大きい場合、パフォーマンスはファイルシステムの大きなファイルの処理およびその効果的な処理能力によって影響を受けます。
MySQL AB のプラットフォームに対する専門知識プラットフォームに対する知識および経験が豊富な場合、プラットフォームに特化した最適化および強化をコンパイル時にできます。弊社はまた MySQL を実装したお客様の最適なシステム構築に助言することもできます。
実際の事例に基づいた類似の構築に対する豊富な経験
MySQL を使用した類似の構築によるプラットフォームの多くの成功事例(お客様)この成功事例の数が多いほどプラットフォーム独特の問題に対する対処能力が向上し、問題を迅速に処理できます。
以前説明した基準では、この段階での MySQL
の特性を最適に活かす組み合わせは x86 の 2.4
あるいは 2.6 kernal、および ReiserFS
(あるいは同様の Linux 配布版) および SPARC 搭載
Solaris (2.7-9) です。三番目に FreeBSD
が来ますが、弊社はこのスレッド
バイナリが改善されてトップ
グループの仲間入りすることを期待しています。弊社ではまた近いうちに
MySQL
は現在コンパイルされ動作できるものの、トップ
グループに比べるとその安定性とパフォーマンスで劣る他のすべてのプラットフォームをトップ
グループに含めたいと希望していますこれを実現するには
MySQL が依存している オペレーティング
システムやライブラリの開発社と共同作業する必要があります。お客様がそれらのコンポーネントの改善にご興味があり、またその開発に影響を及ぼすに十分な立場の方で、MySQL
をさらによくするための詳細な説明書が必要な場合には、MySQL
internals
メーリング
リストにメールお願いします。項1.6.1. 「MySQL メーリング リスト」
参照。
様々なオペレーティング システムの比較表を以前作成しましたが、この目的はそれらのオペレーティング システムの良し悪しを論ずることが目的ではないことをご理解願います。弊社では MySQL を特定の目的に対して OS を選択しているのであって他意はありません。このことを念頭にして頂くと、弊社の比較の結果は他の要素が加わった場合には異なる場合があることもご理解頂けるものと思います。あるケースに於いて、ある一つの理由である一つ OS が MySQL の試験でいい結果であるということは、弊社がその特定のプラットフォームに関して試験および最適化で少しばかり多くの時間を割いたということに他なりません。弊社では最近お客様のためにどのプラットフォームが MySQL の動作に一番適しているかの検討を始めました。