我需要在服务器上运行许多 Python Web 应用程序(主要是 Django,但不是全部)。目前,我使用uwsgi
Emperor 模式运行它们(我猜...我只是拥有所有配置/etc/uwsgi/apps-enabled/
),配置如下:
[uwsgi]
thread=3
master=1
module = ...
chdir = ...
socket = ...
logto = ...
uid = ...
gid = ...
chmod = ...
single-interpreter = true
enable-threads = true
(最后两行对于 New Relic 来说是必需的)
问题是,这些应用程序数量相当多,而且大多数时候只有一两个应用程序被使用。也许有一种方法可以运行它们,以最大限度地减少未使用应用程序对处理器时间的消耗?现在,即使没有人使用任何应用程序,负载级别也可能超过 1.0。
答案1
尝试添加
便宜=真实
空闲 = 60
这将使实例在 60 秒不活动后进入“廉价模式”(只有主实例会运行)。它们将在第一个请求后重生。
如果你使用的是较新的 Linux 内核,你可能想尝试一下 ksm(查看 uWSGI wiki 主页)