如何减少Linux中的Web服务器负载?

0 linux web-server load-balancing

我们有一个高流量的动态网站,它在每个请求上生成大量数据库查询,并为此有两到三个 linux 服务器,现在我想减少服务器负载,我知道鱿鱼反向缓存可以提供帮助,但这是否足够?我还有什么其他解决方案?

Tom*_*nor 6

步骤 1) 修复该死的代码。

为什么每个请求都要进行如此多的查询?在将更多活动部件投入混合之前,可以优化代码吗?安装 NewRelic 之类的东西来了解应用程序瓶颈在哪里。

步骤2)整理数据库。

你在使用索引吗?你正确使用它们吗?

您是否使用了正确的数据库引擎(MyISAM 与 INNODB)?

东西可以更有效地存储在键值存储中吗?

步骤 3)

缓存所有的东西。

从最低级别开始:您的服务器在磁盘上是否有闪存支持的缓存?

您的服务器是否有足够的内存来避免交换?

增加服务器上可用的 RAM 量,以便您可以:

  • 使用 memcached 存储数据库查询结果(这通常也需要更改代码库)。
  • 使用 memcached 来存储预先生成的页面片段。
  • 增加数据库内存限制,以便更多查询结果存储在内存中。
  • 安装 Varnish 反向代理,它将缓存大量页面数据,减轻后端的负载。

将服务器拆分为基于角色的集群。有一个主/从数据库对。编辑代码库,以便您获得读/写拆分(读取到从属设备,写入主设备)。