如何配置具有4g内存的服务器以运行drupal 7


9

我正在具有4 GB内存的新服务器上安装Drupal 7。我想获得一些关于如何正确配置它,给MySQL多少内存以及给PHP多少内存的提示。我发现的一件事是,在Zend服务器上运行Drupal 7的速度比在普通Apache服务器上运行Drupal 7的速度快三倍。(我认为这与操作码缓存有关。我注意到devel模块使用了三分之一的内存。

可以和我分享您的配置吗?

Answers:


5

如果您已经拥有Drupal7数据,则应将其加载到暂存环境中,并根据所拥有的数据量执行一些缓冲区大小调整。

步骤1)您必须首先计算数据集的缓冲区大小

步骤2)如果建议的大小超过已安装RAM的75%(如果是3GB),则将所需的缓冲区限制为3GB。

步骤3)如果您具有InnoDB数据并且未启用innodb_file_per_table,则需要通过将每个表分段到其自己的物理表空间中来清理InnoDB(此操作只需执行一次)

完成此操作后,您应该计划每6个月执行一次配置审核(步骤1和2),以确保您具有正确的MySQL缓存。

有趣的是,我提出了类似的问题,并于2011年4月15日回答了这个问题


4

一些要看的东西

文章阅读

Rackspace的:使用nginx和boost在云中部署Drupal应该会给您很多想法。

关于操作码缓存的小报价:

我们使用APC作为操作码缓存。这样可以避免服务器在每次页面加载时重新编译PHP代码。此外,整个组件很容易放入RAM(我们通常为APC提供128MB的RAM)。这大大降低了CPU使用率。登录的用户现在可以更快地浏览站点。但是我们仍然只能处理其中的有限数量。我们可以做的更好。我们可以将这些表存储在内存中,而不是每次访问高速缓存时都查询MySQL。这里是memcached和cacherouter模块。


2

我从mysql目录的my_huge conf开始。我还添加了清漆缓存。如您所知,Zend可以提高性能。

运行几天后,我运行了mysqltuner脚本并执行了一些建议,主要是关于临时表缓存。


1

根据站点的大小,您可能还需要查看内存缓存。这将与mysql竞争资源,但可以减轻它的负载。


实际上,如果memcached足够大,则可以缩减InnoDB缓冲池和MyISAM密钥缓存。这样,memcached不会与mysql竞争,但是mysql会简单地将memcached用作数据管道而不是主数据库。+1,建议先使用memcached !!!
RolandoMySQLDBA 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.