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

Python 如何在服务器上管理CPU密集型进程,python,performance,signal-processing,Python,Performance,Signal Processing,在HTTP请求之间,我需要在web服务器(VPS)上运行一个CPU和内存都很重的Python脚本(分析和修改一个冗长的WAV文件)作为后台进程 该脚本最多需要20秒才能运行,我担心服务器上的性能。有没有一种好的方法可以降低进程的优先级,定期将控制权交给操作系统,或者以其他方式保护我的普通服务器的性能?如果它是UNIX服务器,您可以使用来降低其优先级。这应该可以做到。您可以在基于linux的服务器上使用。它允许您限制已经开始运行的脚本的CPU使用率(以百分比的形式指定限制),并且它的使用非常简单

在HTTP请求之间,我需要在web服务器(VPS)上运行一个CPU和内存都很重的Python脚本(分析和修改一个冗长的WAV文件)作为后台进程


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

如果它是UNIX服务器,您可以使用来降低其优先级。这应该可以做到。

您可以在基于linux的服务器上使用。它允许您限制已经开始运行的脚本的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

Python方便地提供了os.nice(…)nice!糟糕的双关语,但生活就是这样。罗布,你能选择一个正确的答案吗?(为你工作的那个)