Drupal的开发速度很快,但是性能却很差。每秒很难达到50个请求。
在一个简单的网页中有很多SQL查询。如果您在Drupal.org中测试提交表单的请求时间,则总是需要几秒钟才能完成。
您如何提高网站速度?
Drupal的开发速度很快,但是性能却很差。每秒很难达到50个请求。
在一个简单的网页中有很多SQL查询。如果您在Drupal.org中测试提交表单的请求时间,则总是需要几秒钟才能完成。
您如何提高网站速度?
Answers:
缓存,缓存和缓存。
我之前对类似问题做了一些建议
这些是我的经验记录,可能与其他人的经验有所不同。我主要使用LAMP堆栈,并在我的建议中考虑了相同的问题。
我通常遵循的Thumb缓存规则。
改善Drupal网站的性能(按复杂度递增的顺序)
保持核心更新,贡献模块和主题更新。是的,这很重要。
在服务器上安装APC。(根据Letharion的建议移至顶部)
页面缓存:admin / config / development / performance 最小缓存生存期与缓存页面过期之间的差异
使用Sprite Sheets- https://www.drupal.org/project/spritesheets
将“最小高速缓存生存时间值”设置为更高的数字,并使用高速缓存清除模块清除特定页面的高速缓存- 每当我编辑/更新节点时,匿名用户的所有页面高速缓存都会丢失
Boost模块也非常有用,它从您的网页创建静态文件缓存。它主要用于具有大量匿名用户流量的网站。
Boost为Drupal提供了静态页面缓存,从而为那些主要接收匿名流量的站点提供了非常重要的性能和可扩展性。对于共享主机,这是提高性能的最佳选择。在专用服务器上,您可能需要考虑使用Varnish。
完全支持Apache,同时半支持Nginx,Lighttpd和IIS 7。Boost将缓存并gzip压缩html,xml,ajax,css和javascript。Boosts缓存过期逻辑非常先进;在站点的不同部分具有不同的缓存生存期非常简单。内置的搜寻器可确保快速生成过期内容,以快速加载页面。
值得一提的是,如果您使用的是SQLIte数据库驱动程序,则可能必须禁用磁盘同步。
/**
* Implements hook_init().
*/
function HOOK_init() {
db_query('PRAGMA synchronous = OFF');
}
在某些服务器配置上,它将大大提高性能。
Drupal性能的秘诀在于缓存和遵循良好实践。意见建议:
defer
或async
属性。如果您希望网站的负载很高,请使用Varnish。考虑也使用CDN。
在以下位置了解更多信息:扩展和调整性能的真实经验
更多资源:
有一本名为《高性能Drupal》的书,提供了解决一些性能和可伸缩性问题的最佳实践,示例以及深入的解释。您将学习如何将编码和基础结构技术应用于Drupal内部,应用程序性能,数据库,Web服务器和性能分析。
在Drupal 7的性能和可伸缩性文章中,您可以找到有关Drupal 6和Drupal 7的一些示例以及以下列表:
Drupal 7的性能和可伸缩性项目值得关注:
- https://www.drupal.org/project/agrcache
- https://www.drupal.org/project/apc
- https://www.drupal.org/project/beanstalkd
- https://www.drupal.org/project/boost
- https://www.drupal.org/project/cdn
- https://www.drupal.org/project/core_library
- https://www.drupal.org/project/entitycache
- https://www.drupal.org/project/efq_views
- https://www.drupal.org/project/hash_wrapper
- https://www.drupal.org/project/labjs
- https://www.drupal.org/project/headjs
- https://www.drupal.org/project/media_amazon
- https://www.drupal.org/project/memcache
- https://www.drupal.org/project/mongodb
- https://www.drupal.org/project/performance_hacks
为了优化您的Drupal网站的性能,已经进行了很多调整-但并非所有都必须。我们必须四处寻找可以导致Drupal优化平台的某些替代方案和技术。缓存,是的,它是通过不同方式优化网站的一种方法,但是更多的附加组件和技巧可以增加并优化您的网站,而无需进行任何麻烦的流程。
我们最近在我们的网站上发布了类似的文章,我认为这可能会帮助您进行一些调整。
来源:http://www.cloudreviews.com/blog/drupal-performance-optimization-tips
通过不安装任何新模块,可以将Drupal速度提高到合理水平。是的,Drupal具有性能配置。
启用“汇总JavaScript文件”
设置此配置后,请转到:YourSiteDomain / admin / reports / status
现在,您已经完成了Drupal 7网站的速度优化。
很少有在线速度测试工具可以检查速度。在更新上述设置之前,请确保使用一种速度检查工具并运行测试。更新性能设置后,再次运行速度测试。您肯定会看到进步。
Pingdom和HTTP Fox(FireFox插件)是检查站点速度的最佳工具。
以上设置不仅为匿名用户缓存您的页面,还压缩CSS和JS文件。例如,如果您的站点正在加载80个文件,则发布这些设置后,请求数将减少至少50%,因此,在Drupal站点上,您的速度提高了2倍。
未优化的具有2 GB RAM的Drupal 7站点可以令人满意地每秒处理约20-25个请求。如果您想超越此范围,则需要对该站点进行一些调整。您要调整的内容取决于网站上的大多数用户是匿名用户还是经过身份验证的用户。以下是您可以提高性能的主要工作:
该网站主要为匿名用户服务:
1)绝对安装和配置APC,内存缓存和实体缓存。
2)将Varnish代理放在Web服务器的前面。安装和配置大约需要30分钟,但会大大减少页面加载时间。实际上,如果所有页面都已缓存,那么Varnish可以在2 GB的计算机上每秒处理约300个请求。使用“过期”模块仅使内容更新/删除上的选定页面过期。
3)使用高级CSS / JS聚合模块来聚合CSS和JS文件。尝试将所有JS文件移动到页面底部。但是请注意,这可能会破坏您的站点,因此请在进行全面测试后在生产中实施。还可以尝试内联关键CSS。以我的经验,它将使页面加载时间减少大约半秒。
4)CSS / JS / images应该有很长的过期标头。这将确保浏览器不会一次又一次地请求相同的CSS / JS /图像。
5)确保网络服务器正在提供压缩的页面/ CSS / JS。
完成上述5个步骤后,您的2 GB RAM服务器应该能够轻松地每秒处理50个请求。
该网站主要为经过身份验证的用户提供服务:
优化这样的站点更加复杂。出于优化目的,此类站点属于两个子类别之一:
(a)网站上的大多数页面都是相同的,除了1或2个包含用户特定信息的块。例如,Drupal Commerce网站。
(b)大多数页面是完全为用户定制的。例如,Drupal Commons网站。
如果您的网站属于(a)类别,请应用我们为大部分为匿名用户服务的网站讨论的大多数技术。唯一的区别是,对于非管理员页面,Varnish需要从标题中删除SESSION cookie并提供缓存的页面。使用AJAX块模块可以使用AJAX服务器提供具有用户特定信息的块。这样,使用Varnish可以非常快速地为大多数页面提供服务,然后可以通过AJAX提供特定于用户的信息。
如果您的网站属于(b)类别,请使用Authcache模块。我不想尽可能多地使用它,因为它需要大量的配置和维护。但这确实工作得很好。它不会像使用Varnish那样快,但是它每秒能够处理50个请求。
如果您想超越本文讨论的范围,请查看Drupal Performance Optimization Checklist。披露:这是我写的。它列举了可以使您的Drupal网站快速发展的一系列详尽工作。