我正在具有4 GB内存的新服务器上安装Drupal 7。我想获得一些关于如何正确配置它,给MySQL多少内存以及给PHP多少内存的提示。我发现的一件事是,在Zend服务器上运行Drupal 7的速度比在普通Apache服务器上运行Drupal 7的速度快三倍。(我认为这与操作码缓存有关。我注意到devel模块使用了三分之一的内存。
可以和我分享您的配置吗?
我正在具有4 GB内存的新服务器上安装Drupal 7。我想获得一些关于如何正确配置它,给MySQL多少内存以及给PHP多少内存的提示。我发现的一件事是,在Zend服务器上运行Drupal 7的速度比在普通Apache服务器上运行Drupal 7的速度快三倍。(我认为这与操作码缓存有关。我注意到devel模块使用了三分之一的内存。
可以和我分享您的配置吗?
Answers:
如果您已经拥有Drupal7数据,则应将其加载到暂存环境中,并根据所拥有的数据量执行一些缓冲区大小调整。
步骤1)您必须首先计算数据集的缓冲区大小。
步骤2)如果建议的大小超过已安装RAM的75%(如果是3GB),则将所需的缓冲区限制为3GB。
步骤3)如果您具有InnoDB数据并且未启用innodb_file_per_table,则需要通过将每个表分段到其自己的物理表空间中来清理InnoDB(此操作只需执行一次)。
完成此操作后,您应该计划每6个月执行一次配置审核(步骤1和2),以确保您具有正确的MySQL缓存。
一些要看的东西:
文章阅读:
Rackspace的:使用nginx和boost在云中部署Drupal应该会给您很多想法。
关于操作码缓存的小报价:
我们使用APC作为操作码缓存。这样可以避免服务器在每次页面加载时重新编译PHP代码。此外,整个组件很容易放入RAM(我们通常为APC提供128MB的RAM)。这大大降低了CPU使用率。登录的用户现在可以更快地浏览站点。但是我们仍然只能处理其中的有限数量。我们可以做的更好。我们可以将这些表存储在内存中,而不是每次访问高速缓存时都查询MySQL。这里是memcached和cacherouter模块。