タグ付けされた質問 「concurrency」

5
+200の同時接続後のNGINXタイムアウト
これは私のものですnginx.conf(PHPが関与していないか、他のボトルネックがないように構成を更新しました)。 user nginx; worker_processes 4; worker_rlimit_nofile 10240; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; error_log /var/www/log/nginx_errors.log warn; port_in_redirect off; server_tokens off; sendfile on; gzip on; client_max_body_size 200M; map $scheme $php_https { default off; https on; } index index.php; client_body_timeout 60; client_header_timeout 60; keepalive_timeout 60 60; send_timeout …

1
Apache Benchmarkはパブリックネットワークからは低速で、ローカルでは高速です。これを高速化するために私がすることは何ですか?
私は自分のLinode Ubuntu 14 64ビットサーバーをテストしています。これは、それらから入手できる最も基本的なサーバーです。Apache Benchmarkを使用してサーバーをテストしているほか、Pythonで記述したマルチスレッドスクリプトを使用していますが、これについては後で詳しく説明します。ABを使用すると、サーバー自体からローカルに実行すると1秒あたり約7kの要求がありますが、別のネットワーク/インターネットから実行すると約15になります。応答時間は、ローカルでの1000の同時接続の場合、約150ミリ秒です。リモートでは、100の同時接続の場合、応答時間は約1.5〜2.5秒です。リモートテストを実行しているネットワークには十分な帯域幅があり、実行しているコンピューターには十分なRAMとプロセッサ速度があります。それは高速なビジネスネットワークです。私は他の2台のコンピューターで、米国中の他の2つのネットワークを試しましたが、速度はほぼ同じです。 マルチスレッドスクリプトを実行しているときに、100を超える同時要求を試行するとすぐに一時中断します。これは外部ネットワークからのものです。サーバー上のPythonを3+にアップグレードするか、スクリプトを2.7互換に変更する必要があるため、サーバー上でスクリプトをローカルでまだ試していません。これをローカルでテストし、最大1000個のマルチスレッド接続でスクリプトを実行すると、150ミリ秒の応答時間が得られました。これは、単にurllib2を使用しているだけです。 私はこれを直接nginx(静的ファイル)、nginxの背後にあるpywsgiアプリ、およびpywsgiに対して直接テストしています。pywsgiアプリには、基本的な応答で応答する単純なルートがあるため、高速になります。驚くことではありませんが、nginx-> pywsgiが最良の結果を提供します。これは、おそらくリクエストをバッファリングする方法が原因です。この問題を引き起こしているLinodeのネットワークに固有の何かがありますか?内部テストと外部テストの桁違いの違いにより、何が原因であるのか疑問に思います。唯一の方法は、http / sとsshでフィルタリングするiptablesファイアウォールだけです。 dmesgには、私のテストに関する情報はありません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.