如何配置带4G内存的服务器运行Drupal 7 -- 7 领域 和 performance 领域 和 database 领域 drupal 相关 的问题

How to configure a server with 4g of memory to run drupal 7


9
vote

问题

中文

我在带有4 GB内存的新服务器上安装Drupal 7。我想在如何正确配置它的情况下,给出一些提示,给mysql提供多少内存,以及给PHP多少内存。我发现的一件事是,在Zend服务器上运行Drupal 7比在正常的Apache服务器上运行它的速度快三倍。 (我认为它与Opcode缓存有关。我注意到Devel模块它使用的三分之一的内存。

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

英文原文

I'm installing Drupal 7 on a new server with 4 GB of memory. I'd like to get some hints on how to configure it properly, how much memory to give to MySQL, and how much memory to give to PHP. One thing I found out is that running Drupal 7 on Zend server is three times faster than running it on a normal Apache server. (I think it has to do with opcode caching. I noticed with devel module it uses one-third of the memory.

Can you share your configurations with me?

        

回答列表

5
 
vote
vote
最佳答案
 

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

步骤1) <强>必须首先计算数据集 的缓冲区大小。

步骤2)如果建议的尺寸超过已安装的RAM的75%(在您的情况下3GB),请在3GB上盖住所需的缓冲区。

步骤3) 如果您有InnoDB数据并且您没有启用InnoDB_File_Per_Table,您需要通过将每个表分割为自己的物理表空间来清理InnoDB(仅需要完成一次)

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

<强大>有趣的是,我解决了一个类似于这个的问题,并于2011年4月15日回答了它 。

 

If you already have Drupal7 Data, you should load it into a staging environment and perform some buffer sizing based on the amount of data you have.

Step 1) You must first compute the buffer sizes for your dataset.

Step 2) If the recommended sizes exceed 75% of your installed RAM (in you case 3GB) then cap the needed buffers at 3GB.

Step 3) If you have InnoDB data and you did not enable innodb_file_per_table, you need to cleanup InnoDB by segmenting each table into its own physical tablespace (this only needs to be done once).

Once you have done this, you should plan to perform this configuration audit (Steps 1 and 2) every 6 months to make sure you have the proper MySQL caching in place.

Interestingly, I addressed a question similar to this and answered it on April 15th, 2011.

 
 
4
 
vote

一些要查看的东西:

  • varnish - drupal项目页面
  • memcached - drupal项目页面
  • apc - drupal项目页面
    • 请参阅与其他模块的兼容性:Memcached,MongoDB
  • cdn - drupal项目页面
  • nginx 用于静态文件
  • mongodb - drupal项目页面

阅读

Rackspace的:用nginx云部署drupal和boost 应该给你很多想法。

opcode缓存上的小报价:

我们将APC用作操作码缓存。这 保存服务器从重新编译 每个页面加载的PHP代码。而且, 整个东西很容易在公羊中(我们 通常给出APC 128MB的RAM)。这 彻底减少了CPU使用率。 登录用户现在可以浏览 网站更快。但我们仍然可以 只处理有限数量的人。 我们可以做得更好。代替 每次我们去的时候询问mysql 缓存,我们可以存储这些表 记忆。这里来梅梅赫和 Cacherouter模块。

 

Some things to look at:

  • Varnish - drupal project page
  • memcached - drupal project page
  • APC - drupal project page
    • see compatibility with other modules: memcached, mongodb
  • CDN - drupal project page
  • nginx for static files
  • MongoDB - drupal project page

An article to read:

Rackspace's: Deploying Drupal in the cloud with nginx and boost should give you lots of ideas.

Small quote on opcode caching:

We use APC as an opcode cache. This saves the server from recompiling the PHP code on every page load. Moreover, the whole thing fits easily in RAM (we typically give APC 128MB of RAM). This drastically decreases the CPU usage. Logged in users can now browse the site much faster. But we can still only handle a limited number of them. We can do a bit better. Instead of querying MySQL every time we go to the cache, we can store these tables in memory. Here come memcached and the cacherouter module.

 
 
2
 
vote

我从mysql目录中开始使用my_huge conf;我还向混合物添加了rannish缓存。正如您已发现的那样,Zend提高了性能批次。

在运行几天后,我运行了MySQLTuner脚本并采取了一些建议,主要是关于Temp-Table缓存。

 

I started out with my_huge conf from the mysql directory; I also added Varnish cache to the mix. As you already found out, Zend improves performance lots.

After running for a few days, I ran the mysqltuner script and acted on some of the recommendations, mainly about the temp-table cache.

 
 
1
 
vote

取决于您可能想要查看Memcached的网站的大小。这将竞争使用MySQL的资源,但可以减少它的负载。

 

Depending on the size of the site you may want to look at memcached as well. This will compete for resources with mysql but can reduce the load on it.

 
 
 
 

相关问题

3  块:Drupal_no_cache无法正常工作  ( Block drupal no cache not working ) 
我有一个块,它显示随机从数据库中获取的项目。该块具有DRUPAL_NO_CACHE作为缓存参数。但是,当访问页面作为匿名用户的缓存时,项目永远不会更改。 一些代码: function foo_block_info() { $blocks = array(); $blocks['foo'] = array...

12  $ node始终可用于page.tpl.php  ( Is node always available in page tpl php ) 
我周期性地收到一个关于$节点的错误在我的一个模板文件中未定义.i有一个简单的如果检查正在显示的节点类型。我假设$节点始终可用,或者我错了? ...

2  如何删除标题下的配置文件,如模块配置文件2中作为块的配置文件  ( How to remove link to profile under title when rendering a profile as block in ) 
我正在使用代码以表单呈现用户客户配置文件: $profile = profile2_load_by_user($account, 'customer'); $form['customer_profile'] = array( '#type' => 'item', '#markup' => rend...

47  如何从URL获取节点ID?  ( How do i get the node id from the url ) 
到目前为止,我在Drupal 7中遇到了这3个功能,但我并不真正确定它们之间的区别是什么,并且更批准以在块预处理函数中获取节点ID。 menu_get_object() menu_get_item() drupal_lookup_path() 你能给我任何洞察力吗? ...

17  将JavaScript文件添加到管理页面  ( Add javascript files to the administrative pages ) 
如何使用模块在每个管理页面中添加JavaScript / CSS文件? ...

4  通过代码将文件附加到节点  ( Attach file to a node by code ) 
我想将文件关联到节点。到目前为止,一切都很好。创建CCK类型文件,问题已解决。但我不能这样做,我不希望用户选择文件。有问题的文件已经在系统中。 我试图将文件放在#default_value字段中,并将其隐藏使用hook_form_form_id_alter,但失败。 function my_module_form...

2  查看与日期范围字段匹配单一日期的参数  ( Views argument to match single date with date range field ) 
我的内容类型有一个具有结束日期的日期字段。因此,示例节点具有日期范围,例如从2011-01-01到2011-01-30。 在我的视图中,我想添加一个参数/上下文过滤器,显示一个涵盖特定日期的任何节点。因此,如果参数值为2011-01-15,则节点显示(它在其范围内)。如果参数值为2011-02-01,则节点不会显示。...

2  我无法更改临时目录  ( I cannot change the temporary directory ) 
我无法在文件设置下更改临时目录。每当我更改它时,它都会说已经进行了更改,但它恢复到以前所拥有的设置。 我甚至删除了数据库中的'dbo.variable.file_temporary_path'值,但它仍然无法正常工作。 您是否知道这是存储的位置? ...

47  如何以编程方式发送电子邮件?  ( How to programmatically send an email ) 
我想使用Drupal的电子邮件系统从我的自定义模块编程发送电子邮件。是可能的吗? ...

5  自定义视图筛选多级分类系统  ( Custom views filter for multi level taxonomy ) 
我正在努力设置两种看法,以显示多级分类。一个人会列出最终节点的术语,另一个将列出有孩子的节点。不知何故,我不能。 我说我真正需要的是过滤标准"内容:有分类术语(带有深度= 1),有孩子" 。有谁知道模块/加载项会添加这样的过滤标准,或者也许知道如何定义当地视图(我仍然太鲜幸地说,如果可能的话)。 谢谢 artur ...

1  日期模块年份提交表单 - 删除下拉菜单  ( Date module year submission form remove drop down menu ) 
我想知道是否有办法改变日期模块中输入的格式。默认情况下,它将设置为下拉。我希望用户通过密钥笔划输入。或者,我可以设置一个整数字段,因为我只需要四位数。 ...

1  创建有机组时如何自动创建Web表单?  ( How can i create a web form automatically when an organic group is created ) 
我想在创建新的有机组节点时自动创建WebForm。 WebForm应该具有预定义的字段,并将电子邮件触发到组管理员或具有预定角色的组中的用户。或者,它可以通过电子邮件在组内容类型上的CCK字段中填写的地址。 我尝试使用og_webform,但无法弄清楚如何让它为每个组创建WebForms。 ...

1  向徽标添加可点击区域  ( Adding a clickable area to the logo ) 
在我的drupal 7.4网站上有默认的bartik主题和没有贡献的模块,我有一个大徽标(715 x 280 px)和没有口号。这些是我的设置: 我正试图弄清楚将赞助的链接添加到矩形橙色区域的最佳方式(使用白色示例文本"Plastikovie Okna !!" )在下面的屏幕截图上: 如果无法倾斜的矩形,...

2  强制模块“合法”在路径/用户/寄存器上显示“form_set_error”  ( Force the module legal to show a form set error on path user register ) 
我正在使用"合法" 模块6.x-8.5。 这是一个很棒的模块,但我认为需要 form_set_error() 消息,以显示尝试注册的用户,如果他忘记单击所需的复选框,则无法应用注册。 我正在寻找能够实现这一工作的可能性。 有人知道模块中是否有解决此功能的位置(如果没有其他解决方案,则硬编码)? 我还尝试用规则表格进行...

1  如何实现字段升级  ( How to implement upgrade for fields ) 
我写了一个模块,定义了自己的节点类型,添加了相应的字段等。如果我想更改,删除或添加字段,我如何编写升级功能? ...

2  template_preprocess_comment()覆盖template.php  ( Template preprocess comment overrides template php ) 
我试图在drupal 7中的template.php中覆盖此函数;我复制了在 template_preprocess_comment() 第一行包含 function themename_preprocess_comment($variables) 。 它包含以下代码,不起作用。 $variables['su...

1  来自内容类型的内容条目的字段  ( Field with content entries from a content type ) 
我想将字段(列表文本)添加到内容类型,用作其他内容类型的条目的值。 我应该使用引用模块? ...

2  设置目录分类  ( Setting up catalog taxonomy ) 
我正在与特定内容类型的守则模式与往返模式进行战斗。内容类型绑定到分类(产品目录)。我认为分类树应该只容纳容器项目(类别,子类别,子提包等)但不是最终节点(产品),并且它可以具有以下URL模式,由容器节点URL组成+产品别名+扩展,如在[分类 - 别名] / [node-alias] .html中。 这似乎是错误的假设...

1  表格上的Ajax提交帮助  ( Ajax on form submit help ) 
此工作如果您实际单击按钮: $form['submit'] = array( '#type' => 'image_button', '#src' => drupal_get_path('module', 'contact_block') . '/images/send_button.png', ...

15  如何获取“选择”字段的所有选项?  ( How to get all options of a select field ) 
如何获得CCK字段的所有选项? 例如,允许值中有一个字段,允许值为3个选项,如option1,option2,option3.is有任何接收字段名称的函数,并将选项1返回到option3? ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.