如何在服务器上管理CPU密集型进程

时间:2009-03-18 20:54:54

标签: python performance signal-processing

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

该脚本最多需要20秒才能运行,我担心服务器的性能。是否有一种很好的方法可以降低流程的优先级,定期放弃对操作系统的控制,或以其他方式保护我的适度服务器的性能?

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:5)

您可以在基于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