問題タブ [k6]
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.
load-testing - Errors shown by k6 when reaching a bigger number of virtual users
I'm evaluating k6 for my load testing needs. I've set up a basic load test and I'm currently trying to interpret the error messages and result values I get. Maybe someone can help me interpret what I'm seeing:
If I crank up the VUS to about 300, I start seeing error messages in the console and at 500 lots of error messages.
These mostly consist of:
- dial tcp XXX:443: i/o timeout
- read tcp YYY(local ip):35252->XXX(host ip):443: read: connection reset by peer
- level=warning msg="Request Failed" error="unexpected EOF"
- Get https://REQUEST_URL/: context deadline exceeded"
I also have problems with several checks:
- check errors in which res.status === 0 and res.body === null
- check errors in which res.status === 0, but the body contains the correct content
How can res.status
be 0 but the body still contains the proper values?
I suspect that I'm reaching the connection limit of my load producing machine and that's why I get the error messages. So I'd have to set up a cluster or move to the Cloud runners!?
The stats generated by k6 show long http_req_blocked
values, which I interpret as the time waiting to get a connection port. This seems to indicate that the connection pool of my test running machine is at its limits.
Can anyone help me out interpret the results I'm seeing?
javascript - k6 のスリープ機能は、すべての仮想ユーザーまたは一度に 1 人のユーザーの実行を一時停止しますか?
負荷テストにhttps://k6.ioを使用するのは初めてで、sleep
関数の動作について疑問に思っていました。
現在、複数のステージで負荷テストを構築しています。デフォルトの関数には、実行される多数のリクエスト (get および post) があります。
これらを数分間順番に実行すると、エラスティック Beanstalk で実行されているアプリの速度が低下し始め、最終的に 500 エラーがスローされることに気付きました。
ただし、次のようsleep
に各リクエストの後にステートメントを追加すると:
その後、問題なく仮想ユーザーの数を簡単に 10 倍に増やすことができます。
だから私の質問はこれです:
k6sleep
がすべての仮想ユーザーのすべてのリクエストをその時間一時停止するか、または一度に 1 人の仮想ユーザーからのリクエストを一時停止します。
私が理解しているように、仮想ユーザーは基本的に、負荷テストを実行する関数の並列実行にすぎdefault
ないため、関数全体がすべてのユーザーに対して一時停止するか、ユーザーごとにこれを実行します。
ドキュメントでこれに関する情報を見つけることができなかったので、ポインタをいただければ幸いです!
ありがとう
performance - K6 でのパフォーマンス テストの実行中に「dial tcp : I/O タイムアウト」がさらに観察される
K6 では、dial tcp : I/O タイムアウトを使用したパフォーマンス テストの実行で、より多くの失敗要求が観察されます。K6で見逃した場合は、微調整を提案してください.
同時接続が少ない場合は 225 ユーザーで問題はありませんが、ユーザーを 300 人に増やすとこの問題に直面し、テストの実行に MacBook を使用しています