个性化阅读
专注于IT技术分析

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

PhantomJS非常棒, 我在与AWS托管的SEO Analyzer网站工具箱中使用。

发布后的几天, 我经历了一些指标, 发现CPU利用率一直很高。

花了几分钟后, 我意识到这是” phantom/lib/shim.js”进程正在占用我的CPU。我重新启动了节点应用程序, CPU正常。

高aws-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。

我知道这是肮脏的解决方案, 但可以完成工作。我希望这对你有用。

赞(0)
未经允许不得转载:srcmini » 如何解决phantom/lib/shim.js CPU高利用率问题?

评论 抢沙发

评论前必须登录!