Как избежать закрытых сеансов ожидания, возникающих из-за огромного количества HTTP-запросов?Python

Программы на Python
Ответить
Anonymous
 Как избежать закрытых сеансов ожидания, возникающих из-за огромного количества HTTP-запросов?

Сообщение Anonymous »

Мы запускаем тысячи скриптов Python на наших машинах с RHEL, которые открывают и закрывают сокетные соединения через порт 8088. В результате мы сталкиваемся с большим объемом HTTP-запросов.
Вот очень простой пример одного из скриптов:

Код: Выделить всё

import socket
import requests

def get_yarn_details(state='RUNNING'):
state_suffix = '' if state == '' else "?states=" + state
yarn_apps = "http://{0}:8088/ws/v1/cluster/apps" + state_suffix
local_fqdn = socket.getfqdn(socket.gethostname())
yarn_apps_url = yarn_apps.format(local_fqdn)

try:
response = requests.get(yarn_apps_url)
response.raise_for_status()ow
apps = response.json().get('apps', {}).get('app', [])
for app in apps:
print(app['id'])
except requests.exceptions.RequestException as e:
print(f"Error fetching YARN details: {e}")

# Example usage
get_yarn_details()
Проблема в том, что время от времени мы видим большое количество сеансов CLOSE_WAIT, и кажется, что основной причиной является большой объем HTTP-запросов.
Для Например, когда я подсчитываю сеансы CLOSE_WAIT (на компьютере с диспетчером ресурсов), я получаю следующий результат:

Код: Выделить всё

netstat -tn | grep ':8088' | grep CLOSE_WAIT | wc -l
3945
как мы видим выше, у нас есть 3945 ожиданий закрытия
и список выглядит следующим образом

Код: Выделить всё

netstat -tn | grep ':8088' | grep CLOSE_WAIT

tcp      192      0 85.3.45.239:8088      85.3.45.240:61614     CLOSE_WAIT
tcp      187      0 85.3.45.239:8088      85.3.45.240:12594     CLOSE_WAIT
tcp      195      0 85.3.45.239:8088      85.3.45.239:25532     CLOSE_WAIT
.
.
.
.
.
.
.
Итак, у нас большие проблемы, и нам нужен совет участников о том, что мы можем сделать, чтобы избежать закрытых сеансов ожидания, возникающих из-за огромного количества HTTP-запросов. >
Hadoop YARN — это основной компонент платформы Apache Hadoop, представленный в Hadoop 2.0. Он предназначен для управления ресурсами и планирования заданий в кластере компьютеров.

Подробнее здесь: https://stackoverflow.com/questions/793 ... p-requests
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»