У меня есть несколько скриптов 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
Любая помощь высоко ценится