我需要找到一个解决方案的网站,是挣扎在负荷下。该网站在高峰时段获得500个同时连接,每天的点击率约为42k。
这是一个基于wordpress的网站,它与一个包含大量内容和相当复杂的结构的vBul公告论坛连接在一起,这使得数据库得到了很好的利用。我已经实现了代码级的全页缓存(没有这一点,服务器就崩溃了),并配置了所有其他缓存指令,以及组合css文件等,以尽可能地限制http请求。
我需要理解的是,是否有更多的工作可以通过软件完成,或者负载太大,服务器无法处理,需要升级,因为服务器在高峰时期偶尔会出现故障。
现在无法访问服务器,但它是一个专用的CentOS机器(我认为4GB内存,不能说是哪个CPU)运行apache。
因此,回到主要问题:当用户太多时,我怎么知道呢?
我可以访问日志,根据error.log的说法,昨天下线时是apache分段故障:
[Mon Apr 19 18:26:51 2010] [notice] child pid 4825 exit signal Segmentation fault (11)
[Mon Apr 19 18:26:53 2010] [notice] child pid 4794 exit signal Segmentation fault (11)
[Mon Apr 19 18:27:08 2010] [notice] child pid 4595 exit signal Segmentation fault (11)
[Mon Apr 19 18:27:11 2010] [notice] child pid 4826 exit signal Segmentation fault (11)
.....我怎么能说出这段断层的原因?
发布于 2010-04-19 19:18:40
当你找不到要优化的东西时,它就太多了。当负载较高时,请尝试查看您是CPU还是I/O绑定--这决定了下一步查找的位置。如果是MySql使您慢下来,您可能会通过仔细检查数据库获得一些东西,例如创建indize或重新组织数据存储的方式/位置。不过,理想情况下,数据库内容是从内存中提供的。
当你是CPU绑定,一定要确定哪个进程是最大的。如果是Apache/PHP,那么确定应用程序的哪一部分创建了最高的负载。可能是公告栏,博客等等。
您还可能希望查找诸如开放连接、网络吞吐量等内容。还可以查看是否通过从不同位置或以不同方式提供静态内容来获取某些内容。
发布于 2010-04-19 19:47:49
它完全依赖于系统的软件和配置。在很长一段时间里,stackoverflow.com在一台服务器上多次提供这些视图/连接号。我相信整个三部曲仍然只使用2-3台服务器运行。
如果您可以对应用程序进行mondify,则可以对其进行优化。您可能需要优化数据库服务器的配置。如果两者都做不到,那么直接抛出硬件来解决问题就更容易了。但是,如果您的应用程序不适合扩展到多个服务器,那么额外的硬件就不会有帮助。
发布于 2010-04-20 10:10:00
我有一个基于vBullet4.0的论坛,每天在CentOS机器上点击100次。它是2xIntel(R) Xeon(R) CPU E5205 @ 1.86GHz,8Gb内存。在线1k用户的服务器负载约为2.03.0。我不太想优化它。
但首先,你需要尝试的是禁用所有的vBul公告和wordpress插件。您可以通过管理控制面板,无论是在WP和VB。然后看看服务器是否运行正常。如果会的话,我猜你的一个或多个插件写得不好。很可能包含未优化的查询。
如果您有VBulletin 4.x与许多用户和并发数据库访问-考虑搬到InnoDb。这将提高并发性。安装memcache并将其连接到VB。这会减轻DB的负担。
尝试安装WP SuperCache,使静态页面充当静态文件。还可以考虑从Apache迁移到nginx、lighttpd或其他更轻量级的东西。
https://serverfault.com/questions/133867
复制相似问题