如何解决phantom/lib/shim.js CPU高利用率问题()

PhantomJS非常棒, 我在与AWS托管的SEO Analyzer网站工具箱中使用。
发布后的几天, 我经历了一些指标, 发现CPU利用率一直很高。
【如何解决phantom/lib/shim.js CPU高利用率问题()】花了几分钟后, 我意识到这是” phantom/lib/shim.js” 进程正在占用我的CPU。我重新启动了节点应用程序, CPU正常。

如何解决phantom/lib/shim.js CPU高利用率问题()

文章图片
root        2317        1 5 Oct30 ?            04:40:56 /apps/tools/TWC/1.0/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs /apps/tools/TWC/1.0/node_modules/phantom/lib/shim.js root        2857        1 2 Oct30 ?            01:37:47 /apps/tools/TWC/1.0/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs /apps/tools/TWC/1.0/node_modules/phantom/lib/shim.js

我与开发人员交谈, 然后猜测是什么。他要几百美元修理它。我不愿意花钱去解决这个问题, 所以我开始了自己的调查。
我注意到, shim.js是由应用程序按需打开的, 由于某种原因, 它没有被关闭(可能是错误的代码?)。我尝试手动终止该进程, 并且CPU正常, 并且不影响应用程序功能。
我实施了变通办法, 并想与你分享, 以便你可以利用它。
这假设你托管在基于Linux的操作系统(例如CentOS或Ubuntu)上。
使用以下命令创建一个shell脚本(将其命名为killphantom.sh)
/bin/bash if [[ "$(uname)" = "Linux" ]]; then killall --older-than 1h phantomjs; fi

保存文件并将权限更改为可执行
chmod 755 killphantom.sh

注意:在以上脚本中, 我正在杀死运行时间超过一小时的phantomjs进程。你可以根据需要调整1小时。
手动执行脚本以确保其正常工作。
./killphantom.sh

现在, 是时候将脚本放入crontab中, 以便使其定期执行并保持CPU使用率。
要创建crontab, 请使用crontab -e命令
crontab -e

添加以下内容并保存以安装cron
*/15 * * * * /yourscript/path/killphantom.sh > /dev/null 2> & 1

上面的示例是每15分钟运行一次crontab。
要进行验证, 请使用crontab -l, 它应该显示脚本。
搞定。 Crontab将每15分钟执行一次脚本并杀死phantomjs。
我知道这是肮脏的解决方案, 但可以完成工作。我希望这对你有用。

    推荐阅读