Как определить максимальное количество RPS, которое может выдать один сервер? - PullRequest
0 голосов
/ 28 марта 2019

Я настраиваю Locust на моем сервере, чтобы измерить ответ другого сервера. Я могу запустить его, но мне кажется, что я не могу запустить более 60 RPS. На других платформах (loader.io) я достигаю нескольких сотен (поэтому проблема не на приемном конце). Я понимаю, что мне нужно запустить несколько подчиненных, поскольку я далек от того, чтобы максимально использовать процессор для создания запросов. Теперь я попытался запустить на одном хосте 20 рабов. Тем не менее, загрузка моего процессора не составляет 100%, и RPS, кажется, не сильно увеличивается, до 65-70. (несмотря на предположительно 1000 клиентов в общей сложности). Где узкое место? Что делает RPS маленьким?

Запущена распределенная установка: 1 ведущий, большое количество ведомых.

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

class UserBehavior(TaskSet):
    def __init__(self, *args, **kwargs):
        super(UserBehavior, self).__init__(*args, **kwargs)

    @task
    def process(self):
        if not self.parent.data:
            return
        data = random.choice(self.parent.data)
        with self.client.post("/process", json={"5": data}, catch_response=True) as response:
            if response.status_code != 200:
                response.failure("Status code: %s" % response.status_code)
            else:
                try:
                    res = response.json()
                    if not len(res.get("5", [])):
                        response.failure("Bad structure")
                    response.success()
                except Exception as err:
                    print(err)
                    response.failure("Not Json, got error %s" % response.error)


class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    min_wait = 0
    max_wait = 1
    data = get_data()

Функция get_data используется для генерации выборки, которая будет использоваться во время теста. Это стандартный список списков Python.

Я должен быть в состоянии максимально использовать процессор моей машины, создавая запросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...