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" | |