大型php脚本减慢了应用程序的其余部分。。。。为什么?
我有一个大型的php web scraping脚本,它会在运行时将结果记录到mysql数据库中。该脚本通常一次运行5到10分钟 问题是,当此脚本运行时,应用程序上的其他页面将不会加载 该脚本位于一个具有大量RAM的专用服务器上,因此我尝试增加MYSQL和PHP允许的内存使用量。还增加了允许的最大连接数。所有这些都没有帮助大型php脚本减慢了应用程序的其余部分。。。。为什么?,php,Php,我有一个大型的php web scraping脚本,它会在运行时将结果记录到mysql数据库中。该脚本通常一次运行5到10分钟 问题是,当此脚本运行时,应用程序上的其他页面将不会加载 该脚本位于一个具有大量RAM的专用服务器上,因此我尝试增加MYSQL和PHP允许的内存使用量。还增加了允许的最大连接数。所有这些都没有帮助 有人知道我还能尝试什么吗?嗯,“减速”和“不加载”之间有很大区别 请尝试以下操作: 构建一个静态html站点,并在执行大脚本期间检查它是否加载良好 构建一个php站点,在执行大
有人知道我还能尝试什么吗?嗯,“减速”和“不加载”之间有很大区别 请尝试以下操作:
如果一切正常,请检查刮片脚本。它是否锁定主应用程序所需的任何表?可能是会话中的问题。在开始“大脚本”之前,请尝试使用session_write_close()。您的网络连接是否饱和?您的CPU是否已耗尽?脚本是否使用与应用程序其余部分相同的表?数据库上的InnoDB或MyISAM引擎?行级锁vs.表级锁。巨大的差异。-我不确定我的CPU是否已耗尽,我该如何找到它?从命令行运行
top
。您的最后一个问题在评论中得到了回答,因为引擎是InnoDB,这意味着引擎只执行行级锁,而不是MyISAM中出现的表级锁。谢谢@maxim,这是一件非常有用的事情,需要理解——在从ajax调用运行多个php脚本时,这对我来说非常重要。他们在排队,现在他们在同时运行。