我们已经在EC2 t1.micro实例上安装了WordPress,并在其上安装了Buddypress,对于单个用户来说一切正常,但是当两个用户同时访问时,由于RAM问题,站点出现故障,httpd(Apache)占用最大内存,如何克服这个问题,http.conf文件中是否需要进行任何配置或者我需要安装任何网络/流量阻塞工具?
答案 0 :(得分:2)
微型实例非常小,无法一起处理WordPress和MySQL。他们会吵架(过度使用磁盘交换功能)或者只是耗尽RAM而崩溃。
你将不得不进行大量的调整以在微型实例上实现这一点,并且它永远不会是稳定的。这是颈部疼痛。如果与托管费用相比,您的时间每小时超过1美元,则应升级到具有更多内存的实例,或者注册世界上每月6美元的共享主机帐户中的一个。
从哪里开始调整?尝试在Apache httpd.conf中设置一个值。
将MaxRequestWorkers
设为较低的数字。您可以尝试4.当此数字较低时,您也不会有许多同时从Apache / php连接到MySQL服务器的客户端。
当您的所有工作人员都忙时,来自Web浏览器客户端的请求将被排队。这可以正常工作,但可能会使您的网站对您的用户显得很慢。有关该排队的说明,请参阅Linux documentation for listen(2)
中的backlog
参数。
这将节省Apache RAM和MySQL资源。
http://httpd.apache.org/docs/current/mod/mpm_common.html#maxrequestworkers
然后你可能应该查看MySQL的my.conf文件,看看你可以玩什么。
编辑 MySQL,Apache和php都在同一个RAM池上 - 如果我没记错的话,还有512MB。减少Apache工作者的数量应该有助于控制Apache(以及可能在Apache服务器的地址空间中运行的php)的RAM使用。去做。
然后,在php.ini中找到memory_limit。在许多标准安装中,它设置为128M。尝试将其减少到64M或40M。这将使每个php实例使用更少的RAM。但是,如果您的WordPress安装很复杂(许多插件,花哨的主题),它可能会使某些页面无法加载。 WordPress会在内存耗尽时宣布问题。 http://php.net/memory-limit
然后,跳转到MySQL的my.ini。标准的MySQL安装附带一个名为my-small.ini的文件,其中包含一个小型MySQL实例的配置参数。你的可能很小:WordPress的表包含数百或数千行,而不是数十万行。保存旧的my.ini,然后将my-small.ini的内容复制到my.ini中。这样做后重新启动MySQL服务器。
这些步骤可以帮助您在微实例中发出吱吱声。他们可能没有。我想,他们值得一试。