問題タブ [keep-alive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache - apache2 は MaxKeepAliveRequests を無視し、任意に接続を閉じます
64 ビットの Fedora 2.6.21.7 EC2 2xlarge インスタンス (AKI aki-b51cf9dc) で実行されている、Apache 2.2.11 アプリ サーバーにプロキシする Tomcat フロントエンド サーバーがあります。Apache は mod_perl を実行しており、スレッド化されていません。
別の EC2 インスタンスで実行されている Tomcat と Apache サーバーの間の接続を長時間持続させようとしていますが、外部クライアントから直接 Apache サーバーに入る接続は持続しません。構成は次のようになります。
MaxKeepAliveRequests と KeepAliveTimeout のあらゆる種類の値を試しましたが、サーバーは間違いなく Tomcat との接続をしばらく維持しますが、数十のリクエストしか処理されない場合、常に数秒以内に接続を閉じます。mod_status を使用して監視しているときに、プロセスがソケットで 100 以上の接続を維持しているのを見たことがないことは重要かもしれません。
Tomcat 以外のクライアントとの永続的な接続はまったくないため、そこにはいくつかの違いがあり、両方のケースで VirtualHost 構成が確実に適用されていることがわかります。
Tomcat からのリクエストはすべて POST ですが、その他のリクエストは POST と GET が混在していることに注意してください。
特定のポートのトラフィックを tcpdump で調べると、多数の POST が正しく処理されていることがはっきりとわかります。その後、適切な応答 (200、データは問題ないようです) を返した後、Apache サーバーはすぐに接続を閉じ、 FIN から Tomcat へ。これは、実際のクライアントの IP などのマイナー データ以外に、最後と最後から 2 番目の要求または応答の間にまったく違いがない場合に発生するため、要求の処理中にサーバーがバーフィングしている兆候はありません。そしてもちろん、エラー ログには疑わしいものは何もなく、httpd プロセス自体は停止していません。
netstat から、Tomcat サーバーへの接続が数秒間開いたままになっていることがわかりますが、リモート ポートの範囲を非常に速く循環し、他の場所で見られることを確認しています。永続的な接続が他の接続を枯渇させないように、Apache が公平に接続を割り当てようとしているように見えますが、そうはなりませんよね?!
ここでばかげたことをしていると言われるだけでいいのです!どうか、私が馬鹿か、少なくとも近視だと教えてください...
.net - レジスタ内の何も変更せずにキープアライブpostgreSQLによって接続TCP/IPを切断するにはどうすればよいですか?
クライアントサーバー構造とPostgreSQL8.4で動作するシステムがあります。私の問題は、クライアントがレコードを編集していてサーバーへの接続を失った場合でも、TCPIP接続が考慮されることです。したがって、レコードはデータベース内のクライアントに割り当てられたままになります。レコードを数分で無料で編集できるようにする必要があります。したがって、「postgresql.conf」でKEEPALIVE構成を設定します。
これらの設定を行ってサーバーを再起動した後も、システムは同じように機能し続けます。2時間後に接続TCPIPを切断し、PostgreSQLでレコードの割り当てを解除するだけです。PostgreSQLがこれらの接続を構成どおりに切断する必要があることを理解するための効率的で安全な方法が必要です!
apache - 高いページ ビュー、長いセッション ユーザー向けの Apache Config - KeepAlive および MaxRequest 変数
私は現在、数人 (~15) のユーザーが毎日 1 回ログインしている Web アプリを実行しており、その後、5 分ごとに新しいコンテンツで自動的に更新される Web アプリを開いたままにしています。各ユーザーは、約 15 ~ 18 時間開いている傾向があります。
しかし、ユーザーがクリティカル マス (~30 ~ 40) になると、すべての処理が劇的に遅くなり、HTTPD プロセスのメモリ使用量が急増し始めます。Apache を 1 時間に 1 回再起動する cron ジョブを追加しましたが、これは多少の効果しかありません。すべてのコンテンツは動的に生成され、新しい再生時間になるため、ページのキャッシュはオプションではありません。
Timeout、MaxRequest、KeepAlive オプションをいじり始めましたが、過去にこれらを常にデフォルトのままにしていたため、ガイダンスをいただければ幸いです。
これが私が持っているものです。上記のシナリオでこの構成を最適化する方法について、Apache の天才はいますか? ロード時間が非常に長くなる場合があるため、長いタイムアウトが良いと考えました。
apache - Firefoxのサイトは非常に遅く、他のすべてのブラウザではすぐに使用できます:キープアライブの問題ですか?
Firefoxでページを読み込むのに10秒かかり、画像を読み込むのにさらに10秒かかるサイトがあります。これは、apacheで実行されているphpページです。画像は単なる静止画像です。
それはクロームで美しく動作します....インスタントロード。
答えをグーグルで検索すると、Firefoxを混乱させるコンテンツの長さの欠如と、存続の維持に関する問題の可能性が指摘されました。実際、コンテンツの長さは、静的または非静的コンテンツのいずれかでサーバーによって設定されていないようですが、無効になっていますサーバー上で存続することで、ロード時間が2倍になります。
一部のサイトでは、ブラウザでの存続を無効にすることを提案していますが、ページを表示するすべての人にそのことをお勧めするのは気が進まないです。私はおそらく間違った木を吠えていますか?
ブラウザはLucidLynxのfirefox3.6.8です。サーバーはApache2.2.11です。
apache.confが追加されています...ページをロードしようとする無駄な試みでKeepAliveタイムアウトを3に減らしましたが、それは箱から出てきたものだと思います。
私は間違った木を吠えていますか?
performance - Webサーバー側からのKeep-Aliveの長所と短所
HTTPプロトコルのキープアライブ接続機能は、WebサーバーへのTCP接続ヒットを減らすことを目的としています。Webサーバーのパフォーマンスを向上させることができるはずです。ただし、一部のWebサーバーは、サーバー側からキープアライブ機能を意図的に無効にしていることがわかりました。
私の理解では、一部のリバースプロキシ、つまりHAProxyは、特定の状況でCPU使用率よりも重要なメモリ使用量を減らすために、HTTPキープアライブを無効にします。
WebサーバーがKeep-Aliveを無効にする他の理由はありますか?
performance - Lighttpd を Apache の前に配置するもう 1 つの利点
Apache の前に Lighttpd を配置することのもう 1 つの利点は、子プロセスの数が少ないというサイトを読みました。Lighttpd はキープアライブとクライアント リクエストを処理しますが、Lighttpd と Apache の間の通信の遅延は非常に短いため、Apache の子プロセスは動的ページをより高速に処理できます。リンクを見つけようとしていますが、苦労しています。
静的コンテンツ (img、vid、css、js、html など) 専用の Lighttpd サーバーと、動的ページ (php) 専用の別の Apache サーバーを既に持っていることを考えると、本当にこの手法を実装したいと思います。パフォーマンスが向上します。
1) 上記で説明したのと同じ目的で、Apache の前に Lighttpd を配置した人はいますか?
2)これで本当にパフォーマンスが向上しますか?いくら?
3) Apache へのリクエストを処理する Lighttpd のオーバーヘッドについてはどうですか? それは本当に価値がありますか?
ありがとう!
iphone - NSURLConnection とキープアライブ
NSURLConnection を使用するクライアント アプリに小さなバグがあります。Webサーバーを混乱させているように見える予期しない接続キープアライブまで追跡しました(おそらくサーバー側のバグです)。回避策は、特定の時点ですべての未解決の接続を強制的に閉じることです。NSURLConnection を使用してこれを行うことはできますか。
[NSURLConnection closeAllIdleConnections];
wpf - PageFunctionが破棄されないと、クラッシュが発生します
PageFunctionオブジェクトを使用してウィザードにさまざまなページを表示するWPF「ウィザード」があります。これらのページのいくつかは、アプリケーション内の他のアセンブリ内のオブジェクトへの参照を使用しているため、ユーザーは、生成された出力に含める「パッケージ」を選択できます。ページ機能では、ユーザーがウィザードでキャンセルまたは終了を押したときに、ウィザードの結果とユーザーが選択した対応するデータをキャプチャできるように、キープアライブフラグをtrueに設定しています。
問題は、ウィザードページが作成されたスコープを終了した後でも、ウィザードページが消えないことです。したがって、ウィザードがデータバインドされた参照オブジェクトの1つをコレクションから削除しようとすると、ウィザードページが表示されます。例外をスローします。キープアライブフラグをfalseに設定せずにこの問題を修正する方法を見つけることができないようですが、これにより、ウィザードからユーザーデータをキャプチャする機能が壊れます。
何か案は?
ありがとう!
asp.net - これは、リサイクルせずにasp.netアプリケーションを存続させるための安全な方法ですか?
で20分ごとにアプリケーションにアクセスするタイマーを開始しましApplicaiton_start
たglobal.asax
。
これは安全な方法ですか、それとも他の方法ですか。私はquartz.netを使用してスケジュールジョブを実行するためにそうしています...
c - UNIX C BSD ソケット TCP_KEEPALIVE ソケットが壊れているとマークされているかどうかを確認する方法
C サーバーソケットに TCP_KEEPALIVE パラメータを実装しようとしていますが、ソケットが壊れているとマークされているかどうかを確認する方法がわかりません。キープアライブを行うようにソケットを構成するためのこのチュートリアルに従いましたが、「ACK応答が9回連続して受信されない場合、接続は切断されているとマークされます」と表示されます。私の質問は、ソケットが壊れているとマークされていることをどのように知ることができますか?
チュートリアル: http://tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/