【问题标题】:How to manage a CPU intensive process on a server如何管理服务器上的 CPU 密集型进程
【发布时间】:2009-03-18 20:54:54
【问题描述】:

我需要在 HTTP 请求之间在我的 Web 服务器 (VPS) 上运行一个占用大量 CPU 和内存的 Python 脚本(分析和更改冗长的 WAV 文件)作为后台进程。

脚本最多需要 20 秒才能运行,我担心服务器的性能。有没有一种好的方法可以降低进程的优先级,定期将控制权交给操作系统,或者以其他方式保护我的普通服务器的性能?

【问题讨论】:

  • Robw,你能选择一个正确的答案吗? (适合你的那个)

标签: python performance signal-processing


【解决方案1】:

假设它是一个 UNIX 服务器,您可以使用 nice command 来降低它的优先级。这应该可以解决问题。

【讨论】:

  • Python 方便地提供了 os.nice(...)
  • 不错!糟糕的双关语,但这就是生活。
【解决方案2】:

您可以在基于 linux 的服务器上使用cpulimit。即使是已经开始运行的脚本,它也允许您限制 CPU 使用率(以百分比指定限制),而且它的使用非常简单。

它在 Debian 存储库中可用,因此您可以使用 aptitude 轻松安装它:

apt-get install cpulimit

使用cpulimit 的典型方式包括:

# To limit CPU usage to 75% of program called foo:
cpulimit -e foo -l 75

# To limit CPU usage to 50% of program with pid = 1582
cpulimit -p 1582 -l 50

【讨论】:

    猜你喜欢
    • 2012-09-24
    • 1970-01-01
    • 2013-07-31
    • 2017-04-10
    • 2023-03-04
    • 2020-06-16
    • 2020-10-11
    • 2020-10-15
    • 1970-01-01
    相关资源
    最近更新 更多