ホームページ バックエンド開発 PHPチュートリアル ソケット fd の listen キュー: 3 エラー分析

ソケット fd の listen キュー: 3 エラー分析

Jul 29, 2016 am 09:15 AM
listen socket uwsgi

現在、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 チュートリアルに興味のある友人に役立つことを願っています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP+SocketシリーズのIO多重化とWebサーバーの実装 PHP+SocketシリーズのIO多重化とWebサーバーの実装 Feb 02, 2023 pm 01:43 PM

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

Flask アプリケーション展開における Gunicorn と uWSGI のパフォーマンスの比較 Flask アプリケーション展開における Gunicorn と uWSGI のパフォーマンスの比較 Jan 17, 2024 am 08:52 AM

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

Pythonのsocketとsocketserverの使い方 Pythonのsocketとsocketserverの使い方 May 28, 2023 pm 08:10 PM

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

Spring Boot + Vue を使用してソケット通知プッシュを実装する方法 Spring Boot + Vue を使用してソケット通知プッシュを実装する方法 May 27, 2023 am 08:47 AM

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# における一般的なネットワーク通信とセキュリティの問題と解決策 Oct 09, 2023 pm 09:21 PM

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

PHPソケットが接続できない場合の対処法 PHPソケットが接続できない場合の対処法 Nov 09, 2022 am 10:34 AM

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

centos+nginx+uwsgiをデプロイしてdjangoプロジェクトを起動する方法 centos+nginx+uwsgiをデプロイしてdjangoプロジェクトを起動する方法 May 15, 2023 am 08:13 AM

私の 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 でソケット通信を実装するための方法とテクニック PHP でソケット通信を実装するための方法とテクニック Mar 07, 2024 pm 02:06 PM

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

See all articles