Нагрузочное тестирование саранчи дает мне ChunkedEncodingError - PullRequest
1 голос
/ 31 января 2020

Я нагрузочно тестирую свое приложение django gunicorn nginx и postgresql. Приблизительно после 1500 одновременных пользователей я получаю следующую ошибку на вкладке «Ошибка саранчи»:

1   GET /   ChunkedEncodingError(ProtocolError('Connection broken: IncompleteRead(2773 bytes read, 7467 more expected)', IncompleteRead(2773 bytes read, 7467 more expected)))

Я проверил все свои журналы доступа и ошибок (nginx журналы доступа и ошибок, журнал Gunicorn, системный журнал , postgresql log), но я не могу найти ничего, связанного с ошибкой выше.

Это ошибка саранчи? Это ошибка тайм-аута? Я не могу понять, что происходит не так.

вот мой файл саранчи:

from locust import HttpLocust, TaskSet, task, between
from requests.auth import HTTPBasicAuth


class UserBehavior(TaskSet):

    @task(4)
    def index(self):
        self.client.get("", auth=("user", "pass"))

    @task(4)
    def program(self):
        self.client.get("page1/", auth=("user", "pass"))

    @task(1)
    def artist(self):
        self.client.get("page1/sub-page/", auth=("user", "pass"))

    @task(2)
    def tickets(self):
        self.client.get("page2/", auth=("user", "pass"))


class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    wait_time = between(7, 30)

Как вы можете видеть, я использую Basi c Auth, чтобы попасть на страницу. Я не знаю, действительно ли это вызывает ошибку после большого количества запросов.

Что может быть причиной этой ошибки? Заранее спасибо!

1 Ответ

2 голосов
/ 31 января 2020

Кто-то (возможно, сервер), похоже, закрывает соединение, и на самом деле саранча не может сказать вам больше. запрашивает lib вообще, а не саранчу конкретно), может один из них может помочь.

Вы также можете попробовать новый FastHttpLocust, который использует другую библиотеку запросов (скорее всего, вы все равно получите ошибку, но, возможно, она скажет что-то другое)

Возможно, стоит проверить свои настройки ulimits на стороне сервера.

...