1

サーバーの負荷テストを行っているため、クライアントが大量の HTTP 要求 (1 秒あたり数百、場合によっては数千) を吐き出しています。サーバーが応答するまでの時間を測定したい。現在、この応答時間を次のように測定しています。

import requests, time

start_time = time.time()
response = requests.get('https://testserver.mydomain.com/service')
response_time = time.time() - start_time

ただし、クライアントが 1 秒あたりのリクエスト数が多すぎる場合、http リクエストは実際にはサーバーに送信されずstart_time、クライアント マシンを何らかのキューまたはその性質のものでキックするのに時間がかかるのではないかと心配しています。どうすればより正確に取得できstart_timeますか?

(クライアントとサーバーの両方で ulimits とその他のいくつかのものを変更して、多数の同時要求を処理することに注意してください---私の質問は、システムに多くの同時要求を処理させる方法についてではなく、方法についてですリクエストが実際にいつ行われたかを測定します)。

4

1 に答える 1

0

主な目的がサーバーの負荷テストだけである場合は、そのジョブに既存のツール ( ApacheBenchなど) を使用することを検討する必要があります。より複雑なテストについては、 Multi-Mechanizeを試すことができます。これらのツールは、負荷テストの目的で特別に設計されており、例の Requests などのライブラリと比較すると、オーバーヘッドが不足している可能性があります。

于 2013-08-05T11:49:45.490 に答える