你应该自己动手吗?

你应该自己动手吗?

所以我坐在这里争论是否只使用apt-get installApache2 和 MySQL,还是花一天时间从源代码编译它们。我编译的主要动机是提高性能。另一个动机是规避“Debian 方式”,但我想我可以忍受,如果必须的话。

我的网站比较繁忙,但也不是太疯狂。VPS 托管。

那么,根据您的经验,从源代码进行编译是否会有明显的性能提升,还是我会浪费时间?

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

答案1

不,我没有注意到这种方式有任何明显的性能提升。通常的方式可以获得更多的性能:分析、重构以提高速度、缓存和其他常用技巧。

答案2

大多数人会建议你坚持使用发行版提供的软件包。这是因为你可以获得补丁/错误修复和兼容性/依赖性管理的好处。

如果你自己动手,那么你必须对所有这些问题负责,并且会失去群体免疫力。我们看到很多人提出问题,他们走出了发行版的包管理系统,最终陷入了一片混乱。

坚持使用 Debian 方式(在某些方面)您知道这是有意义的。

答案3

除非您有非常特殊的需求,否则不要打扰。

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

  • 无需监控上游社区的安全通知
  • 每次更新时无需重建堆栈
  • 无需维护自己的构建环境...因为您需要构建自己的软件包,对吗?如果出现问题,您还能如何退出

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

  • 使用 CDN 存储静态资产
  • 切换到 php-fpm + nginx 可能会让你轻松获益
  • 缓存层,例如 varnish
  • Php-apc 和/或在 memcache 中缓存应用程序数据
  • DB 内存分配、索引等。

答案4

你应该自己动手吗?

在此处输入图片描述

通常的答案是:

性能增益从何而来?

算法堆栈结构设定最大可达到的性能,同时调优帮助您在本地负载等条件下达到最大值。要获得更好的算法,您必须成为一名开发人员 - 这需要花费大量时间和精力。

请注意,编译不包含在此列表中(除非您正在干预配置选项 - 有时这是有意义的 - 并且即使在那时,滚动文件也.deb胜过简单的老式 tarballing-making-make 安装)。

什么时候从源代码进行编译才有意义?

这里我假设你使用 Debian 的打包系统(包括以下好东西:平均流量),否则你将面临一场血战。

  • 作为一项训练练习。
  • 与内部开发人员打交道时(尽管如果您长期这样做,那么您的职位描述就会出现问题)。
  • 准备成为一名开发人员。
  • 当您的开发团队足够熟练,可以为服务器软件制作自定义补丁时。

需要注意的是:为了提高性能而摆弄 MySQL 是不值得的。应该安装(甚至购买并安装)更好的 RDBMS。

无论如何,这是我的看法。

相关内容