我目前有一个网站因“过度使用系统资源”而被我的托管服务提供商两次暂停。在每种情况下,我的一个 PHP 脚本都有 300 - 400 个崩溃副本留在服务器上运行。
脚本本身从家里的网络摄像头提取图像并将其复制到服务器。他们利用文件锁来确保一次只有一个人可以写入。任何查看该页面的客户端每 3 秒调用一次脚本。
最初我很困惑,因为我知道 PHP 脚本要么完成(返回结果),要么崩溃(返回内部服务器错误页面)。然而,我被告知“失效的脚本”是一种非常常见的情况。
有人可以教育我吗?我已经用谷歌搜索死了,但我看不到脚本如何最终处于崩溃状态。当它达到最大执行时间时会不会超时?
我的托管服务提供商在 Linux 平台上使用 PHP 作为 CGI 设置。我相信我实际上已经发现了我的脚本的问题,因为我没有意识到flock 是一个阻塞函数(而且我没有使用LOCK_NB 掩码)。我假设我的脚本的数百个副本最终被阻止等待资源可用,这会导致崩溃?这听起来合理吗?我不愿意重新启用该网站,因为担心它会再次被暂停。
任何见解都非常感谢。