Comments 2
если ядер больше, то можно смело увеличивать количество воркеров по формуле
А почему бы нам не автоматизировать использование данной формулы для автоопределения количества дотсупных логических ядер на виртуальной машине. Например, с помощью такого скрипта gunicorn.conf.py
import fcntl
import multiprocessing
import socket
import struct
def get_ip_address(ifname):
"""Return current IP of our web app."""
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915,
struct.pack('256s', bytes(ifname[:15], 'utf-8'))
)[20:24])
ip_address = get_ip_address('eth0')
bind = f'{ip_address}:8000' # Здесь свой порт выберите
workers = multiprocessing.cpu_count() * 2 + 1
timeout = 2
preload = True
loglevel = 'info'
Ну а дальше все очень просто:
gunicorn -c ./gunicorn.conf.py wsgi:app
+3
Sign up to leave a comment.
Оптимизация Gunicorn для быстрых клиентов