ソケット fd の listen キュー: 3 エラー分析
エラーシナリオ現在、Django アプリケーションは基本的に uwsgi を使用してデプロイされています。以下のようなエラーが 2 回発生しています。以下は、これら 2 つのエラーを解決するプロセスです。
listen queue of socket "127.0.0.1:9001" (fd: 3)
- centos 6.6
- uwsgi2.0
- nginx1.6
<code><span>Tue</span><span>Jun</span><span>2</span><span>17</span>:<span>33</span>:<span>27</span><span>2015</span> - *** <span>uWSGI</span><span>listen</span><span>queue</span><span>of</span><span>socket</span><span>"127.0.0.1:9001"</span> (<span>fd</span>: <span>3</span>) <span>full</span><span>!</span><span>!</span><span>!</span> (<span>101</span>/<span>100</span>) *** <span>Tue</span><span>Jun</span><span>2</span><span>17</span>:<span>33</span>:<span>28</span><span>2015</span> - *** <span>uWSGI</span><span>listen</span><span>queue</span><span>of</span><span>socket</span><span>"127.0.0.1:9001"</span> (<span>fd</span>: <span>3</span>) <span>full</span><span>!</span><span>!</span><span>!</span> (<span>101</span>/<span>100</span>) ***</code>
- 1回目は、チャイナユニコムコンピュータルームのファイアウォールの設定が間違っていたため、サーバーが制限されました出力、つまり、外部パッケージをサーバーに送信するのは問題ありませんが、サーバーがパッケージを外部に返すと、非常に遅くなり、ほとんど使用できなくなります。このとき、uwsgi ログに大量のエラーが表示されます
。
- 2 回目は、同時実行量が急激に増加した後、アクティブなリンクが 6000 付近に留まり、このエラーが大量に発生しました。 分析
このエラーに基づいて、システムレベルのパラメータに問題があるはずです。詳細については、Linux man ページの listen(2) を参照してください。ソケットの場合、受け入れが行われる前に、処理を待機しているソケットの長さは、Linux (少なくとも centos6.6) ではデフォルトで 128 ですが、私がコンパイルした uwsgi ではデフォルトは 100 です。つまり、以前はシステムパラメータを調整します。最高は 128 です。
では、
キューの長さを調整するにはどうすればよいでしょうか? * 有効にするにはシステムパラメータを調整する必要があります * uwsgi 設定を調整してからアプリケーションを再起動する必要があります
操作システムパラメータを変更します
設定ファイルはここで直接変更され、再起動後も有効です。
/etc/sysctl.conf ファイルを変更し、これらのパラメータ値を追加または変更します
<code><span>#对于一个经常处理新连接的高负载 web服务环境来说,默认的 128 太小了</span> net<span>.core</span><span>.somaxconn</span> = <span>262144</span> ?<span>#表示SYN<strong>队列</strong>的长度,默认为1024,加大<strong>队列</strong>长度为8192,可以容纳更多等待连接的网络连接数</span> net<span>.ipv</span>4<span>.tcp</span>_max_syn_backlog = <span>8192</span><span>#网卡设备将请求放入<strong>队列</strong>的长度</span> net<span>.core</span><span>.netdev</span>_max_backlog = <span>65536</span></code>
変更が完了したら、忘れずに
パラメータをリロードしてくださいuwsgi調整それが構成であっても、オプションを追加していてもたとえば、次の設定を ini ファイル<code><span>listen</span>=<span>1024</span></code>
sysctl -p
に追加し、アプリケーションを再起動して設定をリロードします。 まとめ
設定を変更することで、この種のエラーはほとんど発生せず、システムのスループットと同時実行性が大幅に向上しました。したがって、システムの特性とチューニングは、全体的なサービス品質を向上させるために非常に重要です。
リファレンス
somaxconn - その厄介な制限listen(2) - Linux man page- 著作権表示: この記事は orangleliu によるオリジナルの記事です (http://blog.csdn.net/orangleliu/ )、記事を転載する場合は申告をお願いします。
- 上記では、socket fd: 3 エラー分析の listen キューを、関連する側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、php+socket に関する関連知識を提供します。主に IO 多重化と php+socket が Web サーバーを実装する方法を紹介します。興味のある方は以下をご覧ください。皆様のお役に立てれば幸いです。

Flask アプリケーションのデプロイメント: Gunicorn と suWSGI の比較 はじめに: Flask は、軽量の Python Web フレームワークとして、多くの開発者に愛されています。 Flask アプリケーションを運用環境にデプロイする場合、適切なサーバー ゲートウェイ インターフェイス (SGI) を選択することが重要な決定となります。 Gunicorn と uWSGI は 2 つの一般的な SGI サーバーであり、この記事ではこれらについて詳しく説明します。

1. TCP プロトコルに基づくソケット プログラミング 1. ソケット ワークフローはサーバー側から始まります。サーバーはまずソケットを初期化し、次にポートにバインドし、ポートをリッスンし、accept を呼び出してブロックし、クライアントが接続するのを待ちます。このとき、クライアントがSocketを初期化してからサーバーに接続(connect)すると、接続に成功するとクライアントとサーバー間の接続が確立されます。クライアントがデータ リクエストを送信し、サーバーがリクエストを受信して処理し、次に応答データをクライアントに送信し、クライアントがデータを読み取り、最後に接続を閉じます。インタラクションは終了します。インタラクションを実装するには、次の Python コードを使用します。 :インポートソ

SpringBoot 側の最初のステップは依存関係を導入することです。まず、WebSocket に必要な依存関係と、出力形式 com.alibabafastjson1.2.73org.springframework.bootspring-boot-starter-websocket を処理するための依存関係を導入する必要があります。 2 番目のステップは、WebSocket 構成クラス importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Config を作成することです。

C# におけるネットワーク通信とセキュリティの一般的な問題と解決策 今日のインターネット時代では、ネットワーク通信はソフトウェア開発に不可欠な部分となっています。 C# では通常、データ送信のセキュリティ、ネットワーク接続の安定性など、ネットワーク通信の問題が発生します。この記事では、C# における一般的なネットワーク通信とセキュリティの問題について詳しく説明し、対応する解決策とコード例を提供します。 1. ネットワーク通信の問題 ネットワーク接続の中断: ネットワーク通信プロセス中に、ネットワーク接続が中断される場合があります。

php ソケットに接続できない問題の解決策: 1. php でソケット拡張機能が有効になっているかどうかを確認します; 2. php.ini ファイルを開いて、「php_sockets.dll」が読み込まれているかどうかを確認します; 3. 「php_sockets.dll」のコメントを解除します」。

私の Django プロジェクトは yunwei と呼ばれます。主なアプリは rabc と web です。プロジェクト全体は次のように /opt/ の下に配置されます: [root@test-codeopt]#lsdjango_virtnginxredisredis-6.2.6yunwei[root@test-codeopt]#lsyunwei/ manage.pyrbacstatictemplatesuwsgiwebyunwei[root @test-codeopt]#lsyunwei/uwsgi/cut_log.shloguwsgi.iniuwsgi.loguwsgi.p

PHP は、さまざまな Web アプリケーションの開発に使用できる一般的に使用される開発言語です。一般的な HTTP リクエストとレスポンスに加えて、PHP はソケットを介したネットワーク通信もサポートし、より柔軟で効率的なデータ対話を実現します。この記事では、PHPでソケット通信を実装する方法とテクニックを、具体的なコード例を交えて紹介します。ソケット通信とは ソケットは、異なるコンピュータ間でデータを転送できるネットワーク内の通信方法です。 by S
