PhantomJS非常棒, 我在与AWS托管的SEO Analyzer网站工具箱中使用。
发布后的几天, 我经历了一些指标, 发现CPU利用率一直很高。
【如何解决phantom/lib/shim.js CPU高利用率问题()】花了几分钟后, 我意识到这是”
phantom/lib/shim.js”
进程正在占用我的CPU。我重新启动了节点应用程序, 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。
我知道这是肮脏的解决方案, 但可以完成工作。我希望这对你有用。
推荐阅读
- 系统管理员备忘单的最终列表
- 如何在GUI模式下启动CentOS 7(桌面环境)
- 13.Android-ListView使用BaseAdapter/ArrayAdapter/SimpleAdapter适配器使用
- 关于 Android 测量文字宽度的方法
- Android Binder实现浅析-Binder驱动
- CALL/APPLY一些编程基础以及一些基础知识正则
- 微信小程序内如何使用vant-weapp组件
- ionic cordova build android 报错 解决
- 解决android studio 3.5.3版本的下载安装问题2.5日