現在、「システム リソースの過剰使用」のために、ホスティング プロバイダーによって 2 回停止された Web サイトがあります。いずれの場合も、私の PHP スクリプトの 1 つの 300 ~ 400 のクラッシュしたコピーがサーバー上で実行されたままになっていました。
スクリプト自体は、自宅の Web カメラから画像を取得してサーバーにコピーします。ファイル ロックを利用して、一度に 1 つのみ書き込みできるようにします。スクリプトは、ページを表示しているクライアントによって 3 秒ごとに呼び出されます。
PHPスクリプトが完了する(結果を返す)か、クラッシュする(内部サーバーエラーページを返す)ことを理解していたので、最初は混乱しました。ただし、「無効なスクリプト」は非常によくあることだと聞いています。
誰かが私を教育することができますか?これをグーグルで検索しましたが、スクリプトがクラッシュした状態になる方法がわかりません。最大実行時間に達するとタイムアウトしませんか?
私のホスティング プロバイダーは、Linux プラットフォーム上で CGI として設定された PHP を使用しています。flock がブロッキング関数であることを認識していなかったという点で (そして、LOCK_NB マスクを使用していないため)、スクリプトの問題を実際に特定したと思います。リソースが利用可能になるのを待って、何百ものスクリプトのコピーがブロックされ、クラッシュにつながると思いますか? これはもっともらしく聞こえますか?サイトが再び停止されることを恐れて、サイトを再度有効にすることには消極的です。
どんな洞察も大歓迎です。