Скрипт Python застрял при импорте - PullRequest
1 голос
/ 30 марта 2019

У меня есть несколько скриптов Python, которые запускаются с использованием crontab каждую минуту.После установки python-binance с использованием pip3, только иногда (мне кажется, случайным) все мои скрипты, использующие библиотеку криптографии, зависают при импорте.

Как видно из журнала ниже, что должно было выполняться каждую минутуи длиться менее секунды, в какой-то момент это заняло более десяти минут.

2019-03-30 08:51:07 INFO     (done)
2019-03-30 08:52:07 INFO     (done)
2019-03-30 08:53:07 INFO     (done)
2019-03-30 09:04:45 INFO     (done)
2019-03-30 09:05:45 INFO     (done)
2019-03-30 09:06:45 INFO     (done)

Пытаясь отладить проблему, я запускаю скрипт в цикле, используя python -vv.

Во времяВ медленной итерации интерпретатор Python застрял здесь на несколько минут

# trying /home/user/.local/lib/python3.6/site-packages/cryptography/hazmat/primitives/kdf/scrypt.cpython-36m-x86_64-linux-gnu.so
# trying /home/user/.local/lib/python3.6/site-packages/cryptography/hazmat/primitives/kdf/scrypt.abi3.so
# trying /home/user/.local/lib/python3.6/site-packages/cryptography/hazmat/primitives/kdf/scrypt.so
# trying /home/user/.local/lib/python3.6/site-packages/cryptography/hazmat/primitives/kdf/scrypt.py
# /home/user/.local/lib/python3.6/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/scrypt.cpython-36.pyc matches /home/user/.local/lib/python3.6/site-packages/cryptography/hazmat/primitives/kdf/scrypt.py
# code object from '/home/user/.local/lib/python3.6/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/scrypt.cpython-36.pyc'
import 'cryptography.hazmat.primitives.kdf.scrypt' # <_frozen_importlib_external.SourceFileLoader object at 0x7f5aff05d6a0>

Дополнительная информация:

  • ОС: Ubuntu 18.04
  • Версия Python: python3 3.6.7-1 ~ 18.04
  • Версия Python-binance: python-binance == 0.7.1

  • Это не проблема с ресурсом, когда интерпретатор зависЦП использовался менее чем на 20%, много свободной оперативной памяти и отсутствие узких мест на диске

  • Проблема возникает на разных серверах с одинаковой конфигурацией
  • Я попытался запустить скриптиспользуя venv с тем же результатом

ОБНОВЛЕНИЕ: После предложения на канале раздора Python я попробовал еще одну вещь, которая, к сожалению, не помогла

  • Увеличьте ulimit -n от 1024 до 4096

Любая помощь высоко ценится

...