Утечки памяти Python на Ubuntu в масштабеLinux

Ответить
Anonymous
 Утечки памяти Python на Ubuntu в масштабе

Сообщение Anonymous »

У меня есть услуга на основе Python, которая использует такие библиотеки, как запросы или curl-cffi, для получения содержания наших веб-страниц, которые мы в настоящее время тестируем на масштаб. Запускается.

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

async def scrape(self, url, counter):
response = None
response_dict = {}
try:
proxy = "some proxy info"
impersonate_val = "chrome"
headers = {} # Setting up some headers
async with AsyncSession() as s:
response = await s.get(
url,
impersonate=impersonate_val,
proxies={'http': proxy, 'https': proxy},
headers=headers,
timeout=30
)
response_dict = {"response": response.text, "http_code": response.status_code}
except Exception as e:
response_dict = await self.scrape_url(url, counter + 1)
finally:
if response:
await response.aclose()
return response_dict
Дополнительная информация:
воспроизводимый скрипт выше вызывается с помощью ThreadPoolexeCutor, где каждый поток в пределах исполнителя связан с долгожданным асинхровым циклом. src = "https://i.sstatic.net/trhjt6ay.png"/>
Хотя утечки памяти в соответствии с Tracemalloc, я обнаружил, что больше запросов на сценарий привели к увеличению памяти кучи. Очищенный Python GC.
Поэтому я обновил свой сценарий, чтобы периодически запустить следующее: < /p>
ctypes.cdll("libc.so.6").malloc_trim(0)
Каждый раз, когда это работает, память показывает большой падение. Если нет входящих запросов, память возвращается к своему первоначальному состоянию, но в масштабе наблюдается падение, которое снова увеличивается сразу после того, как падение на любом уровне, память была на пике. Помимо или в дополнение к ctypes.cdll ("libc.so.6"). Malloc_trim (0) для обработки этой утечки?


Подробнее здесь: https://stackoverflow.com/questions/797 ... u-at-scale
Ответить

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

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

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

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

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