Я создал службу linux с помощью systemd.Мой сервис вызывает Python скрипт.Этот скрипт вызывает функцию в бесконечном цикле каждые 30 секунд. Я использую time.sleep(30)
для цикла каждые 30 секунд.Мой скрипт открывает соединение с базой данных Informix, читает данные, вставляет данные в локальную MongoDB, вызывает веб-службы.
Но память службы никогда не уменьшается.Память увеличивается с каждым разом.Если я перезапускаю свою службу, память полностью освобождается.Служба запускается в 19 МБ и после 14 часов 555 МБ.
Вот мой код:
def populate_app():
ifx_connection = IfxPy.connect(ifx_param, "", "")
stmt = IfxPy.exec_immediate(ifx_connection, sql)
dictionary = IfxPy.fetch_assoc(stmt) # Get data key / value
...
IfxPy.close(ifx_connection)
while True:
populate_app()
time.sleep(30)
Возможно, утечка памяти вызвана request
, ifxPy
или pymongo
библиотеки?
Я прокомментировал весь свой код в цикле и добавил только две строки в функцию populate_app:
ifx_connection = IfxPy.connect(ifx_param, "", "")
stmt = IfxPy.exec_immediate(ifx_connection, sql)
Таким образом, память не увеличивается.Затем я поставил эту строку:
dictionary = IfxPy.fetch_assoc(stmt) # Get data key / value
И утечка памяти снова здесь.Так что есть проблема с ifxPy, я думаю,