服务器CPU达到100%,网站上的用户少于50个(Drupal 6)

时间:2014-10-27 09:51:38

标签: mysql drupal drupal-6

我在使用Drupal 6开发的网站时遇到了问题,这种网站表现得很奇怪。

问题是,少于50个用户,服务器的CPU使用率达到100%(今天它发生在40个用户的峰值)。过去更糟糕的是,服务器崩溃并且网站因此而关闭,但现在它只是很慢。如果我们有100个用户而不是50个,那么它可能会再次崩溃。

以下是服务器配置:

CPU
Intel(R)Core(TM)2 Duo CPU E6550 @ 2.33GHz 缓存:4096KB
RAM
2x 2048Mo
驱动器: 2 x 750 Go

不知何故,我觉得在这个网站上有50个用户类似于在优化得当的网站上有500个用户。就像drupal网站增加无用查询的数量一样,使网站变得如此缓慢。尽管网站上的用户数量普遍较少,但每分钟的请求数为3300(最大同时连接数为35)。

我使用的是mysqltuner,这里是推荐的文件可能有用:

  

--------推荐-------------------------------------- ---------------   一般建议:       运行OPTIMIZE TABLE对表进行碎片整理以获得更好的性能       MySQL在过去24小时内启动 - 建议可能不准确       启用慢查询日志以解决错误查询       减少或消除持久连接以减少连接使用       调整连接查询以始终使用索引       进行调整时,使tmp_table_size / max_heap_table_size相等       在没有LIMIT子句的情况下减少SELECT DISTINCT查询       将thread_cache_size设置为4作为起始值       逐渐增加table_cache以避免文件描述符限制       在将table_cache增加到64之前阅读此内容:http://bit.ly/1mi7c4C

     

要调整的变量:

wait_timeout (< 28800)
interactive_timeout (< 28800)
query_cache_size (>= 8M)
join_buffer_size (> 128.0K, or always use indexes with joins)
tmp_table_size (> 32M)
max_heap_table_size (> 16M)
thread_cache_size (start at 4)
table_cache (> )

我知道您可能需要更多信息才能找出配置中可能出现的错误。请问我需要什么,我很乐意编辑我的信息,以提供您认为相关的任何信息。

2 个答案:

答案 0 :(得分:1)

50个并发用户很多。 50 /秒意味着每天超过400万。

您可以应用大量的性能技巧

  • APC
  • 分布式缓存
  • 缓存匿名流量(尝试清漆)
  • 缓存块和经过身份验证的用户(搜索auth缓存的模块和技巧,drupal.org上的视图缓存等)
  • 数据库改进

还有更多..

答案 1 :(得分:1)

从前端到后端进行优化

  • 前端优化:
  • 转到Drupal配置性能并在缓存中执行某些操作 部分和带宽优化部分
  • 使用css spirits减少图像HTTP请求
  • 使用drupal图像模块调整图像的正确大小 在您的浏览器中使用正确的缓存(需要配置您的Web服务器)

后端优化: 网络服务器优化和其他你可以看到答案1。