你有没有注意到通过编译Apache和MySQL来提高性能?

所以我就坐在这里辩论是否apt-get install Apache2和MySQL或花一天从源代码编译它们。 我编译的主要动机是提高性能。 另一个动机是绕过“Debian的方式”,但是我想我可以忍受。

我的网站是适度繁忙的,但没有太疯狂。 VPS托pipe。

那么从你的经验来看,从源代码编译还是会有明显的性能提升?

PS我已经从源码编译PHP,因为我不喜欢“Debian的方式”。

不,我没有注意到有任何可观的性能收益。 通常的方式获得更多的性能:分析,重构速度,caching和其他常用技巧。

这里的大多数人会build议你坚持你的发行版提供的软件包。 这是因为您获得了补丁/错误修复和兼容性/依赖关系pipe理的好处。

如果你自己动手,那么你必须为所有这些问题承担责任,并且放松群体的免疫力。 我们看到许多人脱离了发行版的包装pipe理系统,结果一塌糊涂。

坚持用Debian的方式(在某些方面)你知道这是有道理的。

除非你有一些非常具体的需求,不要打扰。

不要低估使用操作系统软件包免费获得的东西:

  • 无需监视上游社区的安全通知
  • 每当有更新时,无需重build您的堆栈
  • 无需维护自己的构build环境…因为您需要构build自己的包,对吧? 如果事情出错,你还会怎么办?

调整你的堆栈,你更有可能获得巨大的性能提升。 例如,

  • 使用CDN作为静态资产
  • 切换到php-fpm + nginx可能会让您轻松获得收益
  • caching层如清漆
  • Php-apc和/或cachingmemcache中的应用程序数据
  • 数据库内存分配,索引等

你应该推出自己的?

在这里输入图像说明

通常的答案是: NO

性能收益从哪里来?

  • 更好的调整(见丹尼斯Kaarsemaker和chrskly的答案);
  • 改变堆栈(再次, chrskly的答案));
  • 更好的algorithm。

algorithm堆栈结构设置了可达到的最大性能,而调优可以帮助您在本地负载等条件下达到最大值。 为了获得更好的algorithm,你必须成为一名开发人员 – 这需要花费很多时间和精力。

请注意,编译不会在这个列表中出现(除非您正在干涉configuration选项 – 这有时是有道理的),即使这样,滚动.deb文件也会胜过简单的旧式tarballing-make-make安装。

什么时候编译来源是有意义的?

在这里我假设你使用Debian的包装系统(包括诸如fpm之类的东西),否则你就是放弃了。

  • 作为训练练习。
  • 与内部开发人员打交道时(尽pipe如果你在工作描述中永久性地做了这件事)。
  • 准备成为开发人员。
  • 当你的开发团队精通足够的服务器软件的定制补丁。

谨慎的一句话:摆弄MySQL的性能是不值得的。 安装(甚至购买并安装)更好的RDBMS。

无论如何,我的2美分。