使用PHP大量采集数据,如何提高访问性能?

Coding
  • 749

问题描述:
使用php开发的采集国外网站的数据,以便进行测试,数据保存为txt格式,存放在服务器上,当需要访问的时候,在使用php读取txt中的数据,并返回到用户。
当服务器运行一段时间以后,通过网址访问服务器上的资源时,打开速度挺卡的,刚开始的时候还不会。
注:
网址跟之前网站的是一样的,只是把顶级域名缓存我们自己的。
数据是触发采集的,第一次会远程采集数据到本地,并返回给用户,第二次才从本地读取。

问题:
1.即使数据量超多的时候,也能做到秒开呢
2.瓶颈在哪?内存还是IO
3.使用一段时间以后,打开速度会很卡,重启服务器后会好多了
4.如果将数据保存到MySQL数据库的时候,应该会更卡吧,目前是纯文本,只是访问的时候,在通过一个简单的路径匹配算法,使用php去读取文件,并返回给用户
5.有没有相关书籍可以学习下?
6.将PHP版本升级到php7,是否可以缓解?

回复
阅读 2.2k
6 个回答

卡是不是读取的文件很大

把文件切割呀,文件按日期进行存储

“在通过一个简单的路径匹配算法,使用php去读取文件,并返回给用户” -————是否可以通过url重写直接做成静态的

Masterton
  • 837

是不是PHP-FPM内存泄漏导致内存耗尽
是不是这个注释没去掉,未设置每个php-fpm进程接受的请求数
未设置进程就不会挂掉会不断的累积占用内存(一个请求退出会有部分信息留在进程中,最终导致内存耗尽)

;pm.max_requests = 500

小文件太多了, 肯定卡,反而我觉得放数据库不会太卡,

  • 性能瓶颈可能提醒在:IO、带宽、内存、并发问题
  • 采集数据最好用MQ去采集。避免未知并发量导致的服务器崩溃
  • 对于直接读取文本的,可以考虑直接访问文本文件(类似读取js、css静态资源;不经过php,减少额外性能消耗);并可考虑增加CDN
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏