Spaces:
Running
Running
import multiprocessing | |
# 监听地址和端口 | |
bind = "0.0.0.0:7860" | |
# 修改工作进程数配置策略 | |
# 对于CPU密集型应用,建议设置为 CPU核心数 + 1 | |
workers = 3 | |
# 每个工作进程的线程数 | |
# 设置为2,增加并发处理能力 | |
threads = 2 | |
# 请求超时时间 | |
timeout = 600 | |
keepalive = 5 # keep-alive 连接等待时间,建议设置较小值 | |
graceful_timeout = 30 # 优雅关闭超时时间,给进程2分钟清理资源 | |
# 工作方式 | |
worker_class = "uvicorn.workers.UvicornWorker" | |
# 提高每个工作进程的并发连接数 | |
worker_connections = 2000 | |
# 优化工作进程配置 | |
#max_requests = 1000 # 工作进程处理多少个请求后自动重启 | |
#max_requests_jitter = 50 # 添加随机重启偏差,避免同时重启 | |
#graceful_timeout = 120 # 优雅重启超时时间 | |
# keepalive超时设置 | |
#keepalive = 5 # 保持连接超时时间 | |
# 工作模式 | |
worker_tmp_dir = "/dev/shm" # 使用内存文件系统提高性能 | |
preload_app = False # 修改为 False,避免重复加载 | |
# 添加新的配置 | |
reload = False # 禁用自动重载 | |
daemon = False # 非守护进程模式运行 | |
# 添加应用初始化钩子 | |
def when_ready(server): | |
# 当 Gunicorn 准备好时执行 | |
server.log.info("Server is ready. Doing nothing.") | |
def post_fork(server, worker): | |
# 当 worker 进程被 fork 后执行 | |
server.log.info(f"Worker spawned (pid: {worker.pid})") | |
# 进程名称前缀 | |
proc_name = 'gunicorn_fastapi' | |
# 访问日志文件 | |
accesslog = "access.log" | |
access_log_format = '%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"' | |
# 错误日志文件 | |
errorlog = "error.log" | |
# 日志级别 | |
loglevel = "info" | |