Как увеличить производительность сервера API?

#python #performance #api #vps #locust

#python #Производительность #API #vps #locust

Вопрос:

Я тестирую производительность своего сервера с помощью Locust.

API и сервер были настроены в соответствии с этим руководством: https://medium.com/swlh/python-with-docker-compose-fastapi-part-2-88e164d6ef86

Вот мой код для нагрузочного тестирования Locust:

 from locust import HttpUser, TaskSet, task, between

class FastApi(TaskSet):
    @task(1)
    def user_by_name(self):
        self.client.get(
            url="/user/?first_name=Name"
            )

class ApiLoadTest(HttpUser):
    tasks = [FastApi]
    host = "http://vps1234.vps.ovh.net:8000"
    stop_timeout = 20
    wait_time = between(1, 3)
 

Я настраиваю Locust, как показано ниже:

  • Общее количество пользователей для имитации: 1000
  • Частота появления: 100

На данный момент Locust показывает статистику ниже:

  • Текущий RPS: 226
  • Среднее значение (мс): 2704
  • Макс (мс): 5200

Сервер (OVH):

  • 1 vCore
  • 2 ГБ оперативной памяти
  • 20 ГБ SSD
  • 100 Мбит / с

Мои вопросы в том, вызвана ли низкая производительность не очень хорошим VPS, или я допустил какую-то ошибку в своем коде нагрузочного тестирования? Мне интересно, единственное ли решение для повышения производительности сервера для достижения среднего отклика около 100 мс — это обновить VPS, чтобы иметь больше процессоров / ОЗУ / Мбит / с?

С уважением

Ответ №1:

Вам нужно посмотреть статистику производительности вашего VPS, чтобы ответить на этот вопрос.

Основные вещи, на которые следует обратить внимание, — это использование процессора, оперативной памяти и диска во время нагрузочных тестов.

Другим ограничением может быть сама клиентская машина. Но для скрипта 1000 пользователей и выше все должно быть в порядке