所以我坐在这里争论是否只使用apt-get install
Apache2 和 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。
无论如何,这是我的看法。