共有ホスティングでどのような問題が発生しましたか?

私は、PHPで共有ホスティングを使用すると突然発生し、原則として他のタイプのホスティングでは起こりそうもない、1つの問題の診断と解決の経験を共有したいと思います。



ある日、1つのサイトのオープンが停止したときにすべてが始まりました。 サーバーの負荷が原因で、ホスティング事業者はアカウントを別のサーバーに転送することにしました。 ただし、転送前、または転送が開始された時点で通知はありませんでした。 もちろん、これはホスト側にとって非常にいものでしたが、これはポイントではありません。 転送後、奇妙なことが起こり始めました。 数日間、次の画像が観察され始めました。サイトからページを開こうとすると、(通常のように)即座に開くか、まったく開かない可能性があります。 成功の可能性は約50%でした。 私はこれについてホスティング会社に書き、プロセッサーの負荷を調べましたが、驚異的でした。 平均して、割り当てられた電力の約500%が1日に発生し、数時間で負荷は1000%を超えました。 転送前は、1日の平均負荷は50〜60%の範囲でした。



計画外の転送により負荷が変化したため、ホスティング事業者から2つの回答が予想されました。 、100%の場合、より小さい値が使用されました。



しかし、答えは完全に異なっていました。サーバーへの法外な負荷のためにアカウントを切断し、専用サーバーへの切り替えを提案できます。 したがって、負荷の原因を分析しようとせずに、転送との明示的な接続に注意を払わずに、永続的に。 スクリーンショットが提供される前に、アカウントのプロセスが最上位にあり、非常に借金があることがはっきりとわかりました。



[写真がありました]



このスクリーンショットを見て、サポートチームに電話で説明しなければならなかったのは、スクリプトがあまりにも長い間実行されている場合、より高価なソリューションに移行しても問題を明確に解決できないことです。 トラブルシューティングする時間が与えられました。



Nexはすべてのリクエストのロガーを急いで作成し、REQUEST_URIデータベース、エントリポイント、開始時間、スクリプトが成功した場合は実行時間に書き込みます。 ログを分析した後、実行時間は何にも依存せず、ランダム変数であり、規定の0.1-1.0秒または40-120秒以内であり、1.0-40と



最後に、トライアルはsession_start()関数で1行に達し、問題を完全に排除したとコメントしました。 理由を理解するためだけに残っています。 まず第一に、CMSがsession_set_save_handlerを使用していて、機能を不正に再割り当てしていた疑いがありました。 しかし、この機能の痕跡は見つかりませんでした。 次に、セッション用に設定された環境変数の分析を開始しました。 セッションを保存するフォルダー(session.save_path)は/ tmpでした。 原則として、この段階ではすでにこれが最も可能性が高いことは明らかであり、PHPは有効期限が切れたセッションからフォルダーをクリーンアップしようとするとスクリプトが愚かです。 しかし、100に等しいgc_divisorでクリーニングが頻繁に開始された理由は明らかではありませんでした。 しかし、答えはすぐに見つかりました。 gc_divisorはgc_probabilityとペアになっていることが判明しました。gc_probabilityはデフォルトでは1ですが、CMS構成ファイルで40に設定されています。 これにより、通常のスクリプトが実行される可能性が50%程度になりました。 さて、これらすべてを別のサーバーに移動して接続するのは非常に簡単でした。新しいサーバーには、かなり多くのファイルを持つdad / tmpが散らかっていました。



すべての問題は、save_pathを独自の一時フォルダーに再割り当てし、gc_divisorをデフォルトのユニットに設定することで解決しました。 開発者は、プロジェクトでこれらの値を常に確認してください。



しかし、実際には、もう1つ興味深いことがあります。 セッションを使用するスクリプトの数が50%だとします。 また、それらの50%がデフォルト設定を使用すると仮定します。 400のスクリプトリクエストが0.5 * 400 = 200秒で実行され、その後1つのスクリプトが起動され、古いセッションのデフォルトクリーナーが呼び出されます。これにより、フォルダーが十分に乱雑になった場合、120秒間実行されます。 サーバーが無駄な作業で忙しい時間のかなりの部分が判明しました。 管理者も同様に注意してください。



追伸 ホスティング業者にはすぐに問題が解消されたことが通知され、その1日後、負荷がすでに横ばいになったときに、ホスティング業者が法外な負荷に対処するように依頼し、アカウントを切断すると脅迫する素晴らしい手紙を受け取りました。 オフィスに複数のマネージャーや管理者がいると便利です。 しかし、一方が他方が何をしているのかわからない場合、もちろん悪いことです。



PP。 私は意識的にホスティング業者に言及しません。



All Articles