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

Rob*_*son 7 python performance signal-processing

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

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

Eri*_*lje 7

假设它是UNIX服务器,您可以使用nice命令降低其优先级.这应该够了吧.


Wad*_* M. 5

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

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

apt-get install cpulimit
Run Code Online (Sandbox Code Playgroud)

典型的使用方法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
Run Code Online (Sandbox Code Playgroud)