我有一个Drupal站点,可能会在发布时获得非常高的命中率。 我们已经租了一个非常强大的服务器的初始发射,之后,我们将缩小。 该服务器有一个Xeon E5-2670 8核心处理器@ 2.6GHz和30GB的RAM。
MySQL已经被赋予了大量的内存,并且我已经证实MySQL实际上是通过“top”来使用这个内存的:
innodb_buffer_pool_size = 15G
PHP已经被赋予了大量的内存(现在几乎可以肯定是太多了,我注意到了“每个脚本”的评论):
memory_limit = 6000M
Apacheconfiguration是开箱即用的默认设置:
StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000
我一直在运行JMetertesting(基本上“尽可能多地在网站上抛出尽可能多的线程,并尽可能快地请求页面”),并且随着并发用户数量的增加,我可以看到性能下降:
但是,机器的负载仍然很低。 在testing中,“top”报告26gb的内存空间,“uptime”的平均负载不超过0.63。 我的怀疑是,我们仍然有很多资源可以投入到性能上,但是Apache并没有充分利用这些资源。 这就是说,我是一个开发人员,而不是一个系统pipe理员,而且我不是服务器性能方面的专家。
我可以提高性能的最佳改进是什么?
Drupal的答案可能是更适合这个问题,但这里有几件事情给你:
现在对于Apache …不要使用开箱即用的Apacheconfiguration。 你需要调整Apache到你的网站。 假设你正在使用mod_prefork (我认为这很有可能,但只有你可以确定)这是如何完成的基本知识,但你应该聘请一个知道自己在做什么的人。
top )。 MaxClients & ServerLimitvariables。 这当然不是最终的答案。 调整您的服务器需要时间,并需要经验才能正确。 祝你好运。
这里有几个模块(Boost,Varnish等),如果你主要有匿名用户,它可以帮助你提升事物。 但是,如果用户在您的网站上创buildconfiguration文件并login,他们将无法帮助您。
这是我如何设置Drupal的服务器:
可能会有很多小的改进,但是我认为这至less可以成为事情的起点。
通过使用像memcache这样的兑现工具,获得所有的静态页面,经常使用的页面,菜单和超链接。 Drupal的问题是每个页面加载都有很多数据库访问,并且完全重新加载每个页面。