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



我在使用Drupal 6开发的一个网站上遇到了问题,该网站的行为很奇怪。

问题是少于50个用户时,服务器的CPU使用率达到100%(今天的峰值是40个用户)。过去情况更糟,服务器崩溃,网站瘫痪,但现在速度很慢。如果我们有100个用户而不是50个,也许它会再次崩溃。

这是服务器配置:

CPU
英特尔(R)酷睿(TM)2双核CPU E6550@2.33GHz缓存:4096KB
RAM
2个2048月
驱动器:2 x 750 Go

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

我使用了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 (> )

我知道您可能需要更多信息来找出配置中可能存在的问题。请问我需要什么,我很乐意编辑我的信息,提供你认为相关的任何信息。

50个并发用户已经足够了。50/秒意味着每天超过400万。

有很多性能技巧你可以应用

  • apc
  • memcached
  • 缓存匿名流量(尝试varish)
  • 缓存块和经过身份验证的用户(搜索auth缓存的模块和技巧,在drupal.org上查看缓存等)
  • 数据库改进

还有更多。。

从前端到后端优化

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

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

最新更新