问题描述

基于phathomjs的token池项目,基本原理是,打开淘宝页,获取匿名cookie,再由cookie中提取有效token,调用方通过该token获取淘宝数据

为方便基他人应用,封装了部分功能为一个http api

功能是完备的,问题是服务运行个一天左右,就无响应了

问题1,phathomjs本身的问题,虽然早期phathomjs 有内存泄露的问题,但当前的版本已修复

问量2,自身代码的问题

时间有限就不啰嗦了,

几个排查点

1 服务是否中断

服务还在运行,进程还在,http api 端口 依然在监听,直觉是泄露,在是哪里泄露,是什么泄露,需要确认和排查。

2 查看网络请求

netstat -ntp

显示http api listen的端口,大量CLOSE_WAIT,这个原因是tcp层面服务端没有向客户端发送fin,就我的服务而言就是没有 调用http.response()

到这一步就已经找到线索,之后往上查http.response()的调用栈即可。

3 怀疑出现了泄露

因此 top

发现进程内存占用500m

重启服务进程 内存占用150m

泄露确主

4 查http.response()的调用栈

这个功能函数是打开某url,然后phathomjs,打开一个page(不显示页面,phathomjs内的page类型),会加载相关页面资源,在获取到某url后(http请求获取jsonp格式的数据)这个url是触发下一步的关键点,获取完成表示页面打开成功,当前页有效,之后获取当前页面的cookie,cookie提取token,token返回。

到这里很多人都已经猜到问题在哪了。

以上只是顺利运行的情况,其实考虑到对方反爬虫,网络不稳定等这种原因,打开page页后,这个页可能永远拿不到触发下一步的url

因此这个调用,在这一步阻塞,不会调用response,响应给客户端,也因此对应的连接一直保持CLOSE_WAIT,因为page占用的资源不能释放(代码内的逻辑是,取出token,调用response前释放 page.close())因此内存占用会增大。

问题找到,处理就简单了,处理方式在外部加了超时控制,超时后,page.close() 并向client response 异常信息。

问题解决。

转载于:https://www.cnblogs.com/zihunqingxin/p/8631567.html

基于phathomjs token 不定时无响应问题排查相关推荐

  1. Doom流量回放工具导致的测试环境服务接口无响应的排查过程

    Doom流量回放工具导致的测试环境服务接口无响应的排查过程 现象描述: a)部分接口(A组接口)无响应 b)部分接口(B组接口)正常响应 c)还有一部分接口(C组接口),场景1无响应,场景2正常响应 ...

  2. WPF 基于 WER 注册应用崩溃无响应回调和重启方法

    本文来告诉大家如何在 Windows 上利用从 Vista 引入的 Windows Error Reporting (WER) 机制来实现,在应用崩溃.无响应等异常的时候收到回调用于处理信息保存 在 ...

  3. CPU占用较高及CPU占用不高但无响应问题排查小记

    CPU占用不高但交易无响应排查 使用top -c 查看CPU使用情况 发现cpu占用不高,继续排查 使用jstack 应用进程号查看日志 发现ThreadA.ThreadB互相等待对方释放锁资源导致了 ...

  4. python为什么会出现无响应怎么办_python定时检测无响应进程并重启的实例代码

    总有一些程序在windows平台表现不稳定,动不动一段时间就无响应,但又不得不用,每次都是发现问题了手动重启,现在写个脚本定时检测进程是否正常,自动重启. 涉及知识点 schedule定时任务调度 o ...

  5. 路由器无服务器无响应是怎么回事啊,wifi服务器无响应怎么解决(图文)

    摘 要 [导读]wifi服务器无响应怎么解决,下面就是路由器之家整理的网络知识百科,来看看吧!大家好,我是191路由器网小编,上述问题将由我为大家讲解.wifi服务器无响应解决的方法是:1.请登录WI ...

  6. 为什么和平精英无响应_什么和为什么

    为什么和平精英无响应 重点 (Top highlight) 什么和为什么 (The What and Why) Amazon has long been striving to fix the iss ...

  7. mac securecrt程序无响应_如何重置mac上的系统管理控制器smc教程

    虽然mac是一款十分高端的个人笔记本电脑,但是mac也会有出现故障的时候,比如风扇高速转动.键盘背光灯行为有些异常异常等等,那极有可能是你的系统管理控制器smc出现了问题,所以今天小编就来科普大家如何 ...

  8. 路由器连网提示服务器无响应,路由器提示服务器无响应

    路由器提示服务器无响应 内容精选 换一换 HiLens Kit有两种组网方式,分为无线和有线两种方式连接路由器,本章介绍有线网络配置方式.不能同时使用无线网络和有线网络连接同一个路由器,无线连接会自动 ...

  9. protobuf 安装_Beego 安装时 一直无响应(443)怎么办

    Beego 是一个使用 Go 的思维来帮助构建并开发 Go 应用程序的开源框架,是由国人开发的,官方文档都是中文的,官网地址如下:beego: simple & powerful Go app ...

最新文章

  1. 使用uglify不能压缩的一些js语法(持续发现中)
  2. 网页脚本基本java语法_JSP 基础语法
  3. 信息系统项目管理师:第7章:项目成本管理-章节重点
  4. 在vSphere Client中启动虚拟机创建进程以及VMwareTools安装
  5. 创业思路(1) - 收藏夹分享平台
  6. HDU-5895 Mathematician QSC
  7. Hadoop生态Flume(二)安装配置
  8. Redis 实现接口访问频率限制
  9. 5.Java 面试题整理(JDBC ,JDO 方面)
  10. jsp中的四种对象作用域
  11. 使用cacti监控CISCO交换机
  12. 迷人的bug--torch.load
  13. 京东金融创新”ABS云平台” 大数据提升直接融资效率
  14. mongodb占内存过大情况处理
  15. win7电脑网站服务器,Win7系统
  16. 串口 单片机 文件_单片机引脚介绍
  17. 改ip 银河麒麟_PK体系银河麒麟云桌面和云平台
  18. 适合计算机的音乐,好听的适合做电脑开机音乐的歌
  19. C# 编辑器 Editor
  20. MATLAB解方程组相关方法

热门文章

  1. 微信搜索谁把你删除了
  2. EntityFramework用法探索(二)CodeFirst
  3. MemCached java client 1.5.1 性能测试
  4. GNU C之__attribute__
  5. 45 MySQL自增id
  6. es安装ik后报错无法启动 read write
  7. Webpack 打包学习
  8. 常见的浏览器兼容性问题与解决方案——CSS篇
  9. android stack error message is Fail to start the plugin
  10. jQuery基础---filter()和find()