运行许多 Python Web 应用程序而不消耗处理器资源

运行许多 Python Web 应用程序而不消耗处理器资源

我需要在服务器上运行许多 Python Web 应用程序(主要是 Django,但不是全部)。目前,我使用uwsgiEmperor 模式运行它们(我猜...我只是拥有所有配置/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 主页)

相关内容