我需要在 HTTP 请求之间运行一个占用大量 CPU 和内存的 Python 脚本(分析和更改冗长的 WAV 文件)作为我的 Web 服务器(VPS)上的后台进程。
该脚本最多需要 20 秒才能运行,我担心服务器的性能。有没有一种好的方法可以降低进程的优先级,定期将控制权交给操作系统,或者以其他方式保护我的普通服务器的性能?
我需要在 HTTP 请求之间运行一个占用大量 CPU 和内存的 Python 脚本(分析和更改冗长的 WAV 文件)作为我的 Web 服务器(VPS)上的后台进程。
该脚本最多需要 20 秒才能运行,我担心服务器的性能。有没有一种好的方法可以降低进程的优先级,定期将控制权交给操作系统,或者以其他方式保护我的普通服务器的性能?
假设它是一个 UNIX 服务器,您可以使用nice 命令来降低它的优先级。这应该够了吧。
您可以在基于 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