Linux高负载Web应用程序发行版

我正在编写一个Web应用程序,它应该使用Apache和MySQL以每秒1000次的速度运行。 在我的服务器上,我安装了Ubuntu。 如果我安装FreeBSD而不是Ubuntu,我的应用程序可以更快吗?

谢谢。

各种* nix发行版在速度上的差异很小。 我build议你使用nginx而不是Apache。 这可能真的拯救你的一天:)

在优化性能时,select操作系统或Linux的风格至关重要。

  • 在硬件方面,如果服务器有足够的RAM,比如说8或者16 GB,那么你的工作量可能会很高。 当然networking连接也应该很快。

  • 首先确保你至less有Apache,PHP和MySQL的半理智设置。 考虑到有关这个话题的书籍,那么这两个半长的问题很难说清楚。 其实,上面的每一个软件的单独一本书。 另外考虑用lighttpd或nginxreplaceApache,除非你有一些Apache的特定原因。

  • 然后确保你的应用程序没有典型的致命错误,例如缺lesscaching,非最优或不必要的SQL查询,从第三方服务器每页加载获取一些资源,每次从原始图片反复渲染一些缩略图页面加载,缺lessSQL索引等等。

  • 如果您确信自己的设置都正确,请使用Apache Benchmark,JMeter,Siege或其他多种可用工具对服务器进行基准testing。 看看你的服务器是否可以处理负载。 如果没有,请回到绘图板并找出原因。

  • 最后,当涉及到操作系统时,它不是什么操作系统(至less在BSD / Linux之间琢磨),而是如何调整。 仔细select文件系统供您使用; 如果你有很多很多的小文件,ext4可能不是Linux中最好的select。 另一方面,典型发行版中的默认内核设置对于大多数工作负载都是正常的,但是在更异乎寻常的环境中,例如I / O电梯,共享内存设置或networking参数可能需要进行调整。 如果你真的需要进入这个阶段,恭喜你自己一个受欢迎的服务和/或开始考虑获得更多的服务器。

至于你的操作系统是基于Linux / Unix,那么没有问题。只是操作系统应该调整妥善,非常小心。 真正的事情是Apache和MySQL的性能调整。 你肯定会需要一个负载平衡器来招待1000个请求/秒。 或者另一方面,你可以使用一个非常沉重的硬件和巨大的内存和CPU来容纳同一台机器上的所有东西。 你应该关心的事情是 – 仔细平衡负载 – Apache的性能调整 – MySQL的性能调整(以及MySQL与Apache服务器的分离)

首先,BSD不是Linux,但没关系。 BSD发行版通常比linux更快,但对于你来说,这还不够。 但事实是,您的操作系统是吞吐量的一个非常小的因素(蹩脚的操作系统除外)。

与硬件相比,操作系统,Web服务器,数据库风格和编程语言对吞吐量的影响不大。 唯一值得注意的因素将是你的服务器的胆量。 购买更多的内存,更多的内核和更快的处理器。 这会加快速度。

但是,除此之外,如果您正在购买自己的服务器,则可能是在您的家庭连接上。 如果你把它放在一个标准的DSL线上,你不可能抽出100个以上的RPS。 只是一个桃子,并购买networking托pipe的地方,快速连接到interblag。

你也可以和ArchLinux一起使用,就像你可能在Linux发行版中那样。

正如其他人已经回答的那样,分配之间的速度通常没有太大的差别; 重要的是你的configuration和运行的进程的数量。 这就是说,拱是一个不错的select,因为你完全控制了一切; 你可以确定没有其他的东西会在你不知道的情况下放慢你的服务器。

除了发行之外,您还需要分析您的应用程序stream程。 Apache有一个很大的脚印,不能像一些单线程的同行(例如,nginx,lighttpd)那样同时连接多个连接,但它是许多应用程序的唯一不错的select。 如果你的页面caching的很好,你使用字节码优化,并且查询时间很短,没有理由不能处理1000个并发连接。

但是,如果您正在进行任何不平凡的处理,则需要开始考虑更高效的Web服务器,或者将2个或更多的Apache服务器集中在一个负载平衡的设置中。