@egoranisimov

Как много можно послать запросов одновременно?

Хочу протестировать сайт на нагрузки, написал простенький скрипт который создаёт много потоков, но он виснет на ~5к штук. Это я что-то делаю не так или упираюсь в какой-то лимит системы? В целом как можно организовать, скажем, 20-30к потоков, возможно это сделать на 1 пк/1 сети?

import concurrent.futures
import requests
import time

url = 'somesite.com'

accounts_limit = 10000

def request_post(url, data):
    response = requests.post(url, data=data)
    return response

def start_bot(account_identity):
    print(f"[{account_identity}] start")
    while (True):
        request = request_post(url % (account_identity), [])
        time.sleep(1)

if __name__ == '__main__':
    with concurrent.futures.ThreadPoolExecutor(10000) as executor:
        futures = []
        for i in range(accounts_limit):
            account_identity = i
            executor.submit(start_bot, account_identity=account_identity)
  • Вопрос задан
  • 177 просмотров
Решения вопроса 1
@vitaly_il1
DevOps Consulting
20к это немало.
Если цель не учебная, а протестировать сайт, то советую использовать какой-нибудь готовый фреймворк -
https://locust.io/
https://gettaurus.org/
gatling.io

Или вообще сервис
loadimpact.com и т.п.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы