python爬虫的国内外现状_Python3.5多线程爬虫越爬越慢的解决方法
系统环境
Ubuntu 16.04 Server
Python3.5
爬虫情况
1、从Mysql数据库获取任务
2、任务导入列表后开始http请求,将数据以文件形式保存到硬盘
3、开80线程
遇到的问题
1、家用路由器频繁死机(一天两三次)
2、爬虫开始时爬取速度很快,但是越来越慢
解决思路
查看爬虫日志发现路由器死机前,爬虫速度基本都在峰值,看来是路由器是累晕的,爬虫开始时速度快然后越来越慢,说明爬虫本身问题不大,应该是运行后消耗的系统资源越来越多,直到消耗殆尽而导致速度上不去。查看内存和cpu的消耗情况发现,在爬虫速度降低之后内存cpu的占用也有降低,看来问题不在硬件资源,那是不是网络资源内,使用netstat命令查看发现有大量“TIME_WAIT”状态的TCP连接,使用命令
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
查看发现TIME_WAIT状态的连接近2w,看来是资源tcp连接过多!此时想是不是爬虫http头部信息中Connection的问题呢,把Keep-Alive改为close并未解决问题!那Ubuntu有没有设置tcp连接控制方面的选项呢?通过搜索得知,tcp连接可以设置回收时间和是否可以复用,命令如下:
echo “1” > /proc/sys/net/ipv4/tcp_tw_reuse
#设置TIME_WAIT状态可以重用
echo “1” > /proc/sys/net/ipv4/tcp_tw_recycle
#设置TCP连接尽快回收
使用以上命令后问题果然解决!
python爬虫的国内外现状_Python3.5多线程爬虫越爬越慢的解决方法相关推荐
- Python 使用numpy报错:runtimeError: package fails to pass a sanity check解决方法
Python中使用numpy和pandas时报错:RuntimeError: The current Numpy installation ('...\venv\lib\site-packages\n ...
- python极客学院爬虫_学习极客学院多线程爬虫课程的收获
昨天开始了极客学院<XPath与多线程爬虫>课程的学习,主要涉及到XPath和requests的使用,在测试过程中出现了很多问题,经过不断摸索以及前辈们的帮助,现将经验总结如下: 1. P ...
- python运行不显示结果图示_pycharm运行和调试不显示结果的解决方法
刚在虚拟机里面安装了pycharm,配置(setting)完后,新建一个py文件,键入"hello world",竟然没有结果,虽然运行成功.pycharm太不友好了吧! 然后开始 ...
- python处理json数据 乱码报错_python操作mysql中文显示乱码的解决方法
本文实例展示了一个脚本python用来转化表配置数据xml并生成相应的解析代码. 但是在中文编码上出现了乱码,现将解决方法分享出来供大家参考. 具体方法如下: 1. Python文件设置编码 utf- ...
- 安装了pygame、但是在python无法导入_详解有关PyCharm安装库失败的问题的解决方法...
最近因为要使用Python的缘故,安装了python IDE+pycharm,如此安装的原因是因为Pycharn 并不像anaconda一样拥有相对完整的依赖库和开发包,可以直接运行python,但因 ...
- python的scripts里没有pip_python的scripts文件夹无pip等文件解决方法
下载安装python后,python的scripts文件夹无pip等文件解决方法: 1,下载安装easy_install,https://pypi.python.org/pypi/ez_setup/0 ...
- python报错TypeError: unsupported operand type(s) for -: ‘decimal.Decimal‘ and ‘float‘的解决方法
问题描述 在编写python代码时,进行小数位相减时出现 TypeError: unsupported operand type(s) for -: 'decimal.Decimal' and 'fl ...
- Python网络爬虫爬淘宝无法爬取问题的解决方法
看了嵩天教授的[Python网络爬虫与信息提取].MOOC. 北京理工大学 课程,里面有一段演示如何从淘宝爬取价格信息,但实际操作却不行,问题在于淘宝19年开始实行搜索必须登录,但是Python爬 ...
- iPhone内运行python,返回Killed: 9 ,iOS内安装python2.7等问题的解决方法
2019独角兽企业重金招聘Python工程师标准>>> 连接10.2系统版本的越狱iPhone,通过Cydia下载python,想在手机iPhone内运行python,但是在输入py ...
- python中升级pip报错_linux系统下pip升级报错的解决方法
Pip 安装 1.在python中提供了一个get-pip.py;下面是地址 https://bootstrap.pypa.io/get-pip.py 2.在Linux下执行curl https:// ...
最新文章
- 一天掌握AI核心技术,上手应用,开发者该划哪些重点?
- Python [9] optparse模块生成命令行帮助信息
- 《网易编程题》分苹果
- GetDlgItem
- 吴恩达深度学习3.2笔记_Structuring Machine Learning Projects_机器学习策略(2)
- github提交代码403
- ServiceManager学习框图
- android禁止锁屏保持常亮
- 软件质量保证与测试期末复习整理
- 网络通信原理之TCP,UDP,QUIC
- mingw编译CMake后的OpenCV文件时出现:mingw32-make : 无法将“mingw32-make”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
- 征服,才是技术人的本能
- 基于java的简单英雄联盟胜率计算
- C++ 算法篇 动态规划----区间动态规划
- 网易云类音乐--主页与登录界面结构html+css实现(三)
- Atom编辑器折腾记_(22)二次翻译快捷键【追加1.8新版本新增快捷键】
- 有偿寻找安卓三维模型查看引擎
- 【高项】一次过 信息系统项目管理师 心得
- idea npm start启动前端项目报错:ERROR Failed to compile with 1 errors : This dependency was not found:
- 【逗老师带你学IT】ZoomRooms兼容硬件设计方案
热门文章
- Android -- TabHost
- 清空SQL数据库日志
- 待续--著名软件公司笔试算法题:122345排列组合
- 一个针对大学的程序设置表格项目在不断的更新
- 非平衡电桥电阻计算_微安表内阻值对热敏电阻温度计设计的影响
- stm32移植paho_paho.mqtt.c开源代码的ARM移植
- tp5.0 根据经纬度 获取附近信息_Redis怎么实现查找附近的人之数据类型Geospatial...
- for语句嵌套执行顺序_Python基础教程(四):循环语句
- OFFICE技术讲座:WP/SS文字渲染不开启的条件
- LINUX用终端命令调用打印机属性