时间:2021-07-01 10:21:17 帮助过:120人阅读
已经报告MySQL可以在下列操作系统/线程包的组合上成功地进行编译。注意,对于很多操作系统,原生的线程仅支持最新的版本。
? 有原生线程的AIX 4.x和5.x。
? Amiga。
? 包括MIT-pthreads包的BSDI 2.x。
? 有原生线程的BSDI3.0,3.1和4.x。
? 有原生线程的Digital Unix 4.x。
? 包括MIT-pthreads包的FreeBSD 2.x。
? 有原生线程的FreeBSD 3.x和4.x。
? 有LinuxThreads的FreeBSD 4.x。
? 有DCE线程或MIT-pthreads包的HP-UX 10.20。
? 有原生线程的HP-UX 11.x。
? 有LinuxThreads 0.7.1+或glibc 2.0.7+,适合各种CPU的Linux 2.0+。
? Mac OS X。
? NetBSD 1.3/1.4 Intel和NetBSD 1.3 Alpha(需要GNU make)。
? Novell NetWare 6.0。
? 有原生线程的OpenBSD > 2.5。包括MIT-pthreads包的OpenBSD <2.5。
? OS/2 Warp 3, FixPack 29和OS/2 Warp 4, FixPack 4.
? 有最新FSU Pthreads移植包的SCO OpenServer 5.0.X。
? SCO UnixWare 7.1.x。
? SCO Openserver 6.0.x。
? 有原生线程的SGI Irix 6.x。
? SPARC和x86上有原生线程的Solaris 2.5和以上版本。
? 包括MIT-pthreads包的SunOS 4.x。
? Tru64 Unix。
? Windows 9x、Me、NT、2000、XP和2003。
并非所有支持的平台同等适合运行MySQL。根据以下因素确定某个平台适合高负荷关键任务MySQL服务器的程度:
? 线程库的稳定性。可能某个平台的反应不错,但MySQL的稳定性取决于它所调用的线程库,不管其它部分是否完善。
? 内核和线程库利用均衡多处理器(SMP)系统的能力。换句话说,当进程创建一个线程时,应允许线程运行原进程所运行CPU之外的其它处理器。
? 内核和线程库运行在短范围频繁获取和释放互斥体而不需要过多地交换内容的多个线程的能力。如果执行pthread_mutex_lock()时产生的CPU时间太短,则会严重影响MySQL。如果不关注该问题,增加过多的CPU实际会降低MySQL的速度。
? 常规文件系统的稳定性和性能。
? 如果数据库表很大,文件系统处理大文件的能力和处理效率。
? 我们在该平台上使用MySQL AB的经验水平。如果我们熟悉一个平台,我们可以对具体平台进行优化并固定编译时间。我们还可以提供建议如何更好地为MySQL配置系统。
? 我们在类似配置下所完成的内部测试的数量。
? 在同一平台类似配置下成功运行MySQL的用户数。如果该数字很高,则说明遇到具体平台问题的几率要小得多。
根据前面的标准,允许MySQL的最好的平台是x86,安装SuSE Linux,使用2.4或2.6内核,和ReiserFS(或类似Linux分发版)和安装了 Solaris(2.7-9)的SPARC。FreeBSD排第三位,但我们真正希望一旦线程库得到改进,它也可以提高排名。从某一观点我们还希望提高其它MySQL目前正在上面编译、允许的平台的排名,但稳定性和性能上可以要求不同等级。这需要我们与MySQL所依赖的操作系统和库组件开发人员共同努力。如果你对改进某个组件感兴趣,可能影响其开发,需要更多的关于MySQL如何能运行得更好的说明,请向我们的MySQL internals发送邮件。
请注意前面的对比并不是说一个操作系统总体上比另一个操作系统要好。我们只是讨论选择一个OS来专门运行MySQL。记住了这一点,如果考虑更多的因素,对比结果可能会不同。在某些情况下,一个OS比另一个OS好的原因只是我们已经为具体平台做出了更多的努力来进行测试和优化。我们只是陈述我们的观点帮助你选择运行MySQL的平台。