30

なんらかの奇妙な理由で、ちょうど今日、私たちのサーバーはセッションの開始中に非常に遅いと判断しました. session_start ごとに、サーバーは 30 秒後にタイムアウトするか、セッションの開始に約 20 秒かかります。これは非常に奇妙です。長い間これを行っていなかったためです (サーバーが最後にこれを行ったのは約 7 か月前です)。代わりにデータベースを介して実行するようにセッションを変更しようとしましたが、問題なく動作しますが、現在の Web サイトが構築されているため、すべてのページに移動し、セッションの読み込みを変更して新しいセッションを含めるには数日かかります。ハンドラ。したがって、私の質問は残ります:

なぜこんなに遅いのですか、なぜ時々しかないのですか?

私たちは、24GB の RAM を備えた専用の hetzner サーバー上で実行し、CPU は単純な Web サーバー (Xeon だと思いますが、よくわかりません) を実行するのに十分な速さです。サーバー上で apache+fastcgi+php5 セットアップを使用して debian を実行します。

topサーバーは、コマンドだけでなくサーバーステータスでも、多くの負荷を報告しません。Vnstat私たちのネットワーク リンクには何の問題も報告されていません (繰り返しになりますが、ローカル セッションの処理が遅くなることはありません)。IOtopプロセスがハードドライブ全体を引き継ぐことに問題はないと報告しています。セッションファイルが配置されている tmp フォルダーへの書き込みは、vim を介して行うと高速に動作します。

繰り返しますが、これを明確にするために、ここでの私の主な関心事は、セッションの DB やメモリ キャッシュ バージョンに切り替える必要があるかどうかではありません。 PHP自体を除いて、正常に動作しています。

編集: PHP tmp ディレクトリの最大ファイルは 2.9 MB であるため、影響を与えるものは何もないと思います。

更新: 何が問題なのか、および/またはそれを修正する方法がわかりませんでしたが、memcached/db セッションに切り替えた後、問題は解消されました。

4

6 に答える 6

6

私は同じ問題を抱えていました.突然、サーバーがリクエストを実行するのに30秒かかりました. session_start()が原因であることに気付きました。最初のリクエストは高速でしたが、次の各リクエストの実行には約30 秒かかりました。c:\wamp\tmp のセッション ファイルが最初のリクエストで 30 秒ほどロックされていることがわかりました。この間、2 番目の要求はファイルのロックが解除されるのを待っていました。rewrite_mod.htaccessに関係があることがわかりました。rewrite_mod を無効にし、.htaccess のすべての行をコメントアウトすると、再び魅力的に機能します。wampの設定やconfを変更したことを覚えていないため、なぜこれが起こったのかわかりません。

于 2015-08-22T11:16:58.697 に答える
2

私もこの問題に遭遇しました。ここで答えられました:

関数 session_start() の問題 (動作が遅い)

セッションは、1 つのスクリプトの実行中に PHP によってロックされるため、スクリプトが同じセッションの下にスタックされていると、これらの驚くほど長い遅延が発生する可能性があります。

于 2013-04-15T05:15:11.237 に答える
0

各セッションは、apacheによってテキストファイルとして保存されます。

セッション開始を使用して既存のセッションを再開する場合(たとえば、Cookie識別子を介して)、大きなセッションファイル(多くのコンテンツを含むセッション)の開始に時間がかかる可能性がありますか?

これが事実である場合、おそらくあなたのアプリケーションは多くのデータをセッションに入れています。

于 2012-04-30T14:54:28.710 に答える
0

memcache の設定が正しいかどうかを確認してください。/etc/php.d/memcached.ini

于 2016-10-05T10:57:51.360 に答える