我试图创build一个相当不寻常的(imo)configuration,我有:
此外,我每个小时都会调用1000个cron作业,然后调用一个WP插件(使用wget),它从API中检索数据并将其发布到相应的博客。
这是所有在1024MB内存,4个共享处理器等的虚拟服务器上运行。服务器performance不佳,特别是在执行cron作业的时候。 Nginx不断抛出504错误,并且网站有明显的滞后。
我有1000个单独的WP安装疯了吗? 我应该使用WP-MU,这将有助于显着吗? (我有一些插件的限制,我喜欢单独安装,但可以切换,如果需要的话)。
而不是有1000独特的cron作业 – 应该打电话说一个bash脚本,然后将处理我需要的1000个HTTP请求? 这是否可以按顺序完成,而不是顺序完成?
任何其他types的build议,你可能有优化? 我应该代理Apache而不是仅仅使用nginx等。任何types的build议,将不胜感激。
提前致谢
更新:非常感谢您的回复。 我要切换到WP-MU并重新执行cron作业。 我目前使用spawn-fcgi,但会切换到php-fpm。 欣赏build议
1)1000个独特的安装将删除caching可以为您提供的任何好处。 理想情况下,你将运行一个安装(这将通过APC或类似的内存caching),与一堆不同的数据库。 但是,WP-SuperCache可能会帮助您解决caching问题,因为它应该将所有内容呈现为静态HTML文件。 基本上,你想从每个页面上删除尽可能多的dynamic内容。
2)按顺序运行所有1000个作业可能是一个坏主意(你确定1000个请求可以在一个小时内完成吗?)。 与此同时,并行运行1000个作业也是一个坏主意(您的Web服务器能否承受1000 /请求/秒?)。 我会build议在中间的东西。 也许你开始10个进程,每个进程都有100个博客,它们之间有一个随机延迟。
3)如果你可以使用纯净的nginx + php-fastcgi,请坚持下去。 Apache不会以任何方式帮助你。
你使用的是PHP-fastcgi(例如:spawn-fcgi)还是php-fpm? php-fpm是我的build议,因为你可以设置它来产生更多的进程,当负载较高。
所有来自devicenull的好build议。 我在一个类似的位置上为一个客户端,有许多相同的软件安装。 Xcache(类似于APC)大大提高了性能,但是我必须给内存4GBcaching。
有了WP-Super-Cache,绝大多数的Web请求都应该是纯HTML或者非常快的图像。 你确定它不是你的1000 cronjobs造成一般网站延误? 我想他们会花大部分时间来执行!