Использование памяти Polars только растет, а не снижаетсяPython

Программы на Python
Anonymous
Использование памяти Polars только растет, а не снижается

Сообщение Anonymous »

У меня есть API, который выполняет множество вычислений и записывает выходные данные в базу данных, а также возвращает выходные данные. В основном это было в пандах, я пытаюсь использовать для этого поляры. Ниже приведен очень простой код для имитации этого API. У меня эта служба работает, и использование памяти постоянно растет. Я подозреваю, что вскоре рабочие перезапустят нехватку памяти, и это приведет к простою. В предыдущих потоках сообщалось, что распределитель памяти сохраняет память во время процесса, но, поскольку он выполняется в качестве работника-супервизора, процесс всегда включен, если не перезапустить его вручную или в другой ситуации, такой как SIGTERM/SIGKILL и т. д.
Как решить этот? Один из вариантов, который упоминается, заключается в том, что рабочий процесс умирает, как только он имеет процесс, не зная, как это сделать. Кроме того, вы не уверены, идеально ли это, поскольку появление нового работника имеет свои собственные накладные расходы?
Рабочий код:
from flask import Flask, request, jsonify
import polars as pl
import numpy as np

app = Flask(__name__)

@app.route('/generate', methods=['GET'])
def generate_dataframe():
try:
seed = int(request.args.get('seed', 0))
except ValueError:
return jsonify({"error": "Invalid seed value. Must be an integer."}), 400

np.random.seed(seed)
data = {
'column1': np.random.randint(0, 100, 1_000_000),
'column2': np.random.rand(1_000_000),
'column3': np.random.choice(['A', 'B', 'C', 'D'], 1_000_000)
}

df = pl.DataFrame(data)
return df.to_json(), 200

if __name__ == '__main__':
app.run(debug=True)

Конфигурация супервизора:
[program:app]
command=gunicorn -w 100 -b 127.0.0.1:5010 app:app
directory=/home/master/
user=root
autostart=true
autorestart=true
stderr_logfile=/var/log/app/polarsapp.err.log
stdout_logfile=/var/log/app/polarsapp.out.log


Подробнее здесь: https://stackoverflow.com/questions/788 ... oming-down

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