V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  pubby  ›  全部回复第 72 页 / 共 87 页
回复总数  1731
1 ... 68  69  70  71  72  73  74  75  76  77 ... 87  
2014-03-22 22:47:04 +08:00
回复了 info007 创建的主题 PHP CURL 性能问题,求助
访问量大的话,CPU高很正常啊。

楼主没交代实际的访问压力。

还有找瓶颈的话建议开xdebug,使用profile看看具体分析报告。

当然xdebug会影响性能,生产环境建议单独部署一个开xdebug的环境,然后通过前端倒入一定比例的流量进行测试分析。
2014-03-20 14:40:30 +08:00
回复了 faith 创建的主题 程序员 PHP+MYSQL 为手机客户端提供 JSON 数据,实现方式
json_encode()
2014-03-19 22:32:45 +08:00
回复了 hhkbp2 创建的主题 Linux 有购买过正版的 SecureCRT 吗
@lch21 putty里emacs能做到的程度已经很令人满意了,虽然256色已经是极限了

http://ww3.sinaimg.cn/large/6fe2fdc5gw1eelfkjtxvlj21hb0svwmp.jpg
2014-03-19 12:38:55 +08:00
回复了 hhkbp2 创建的主题 Linux 有购买过正版的 SecureCRT 吗
@lch21 SecureCRT里的emacs有啥特殊?
2014-03-18 23:37:35 +08:00
回复了 ivanlw 创建的主题 程序员 一道预处理和搜索记录的题目……
如果在机械硬盘上操作,要考虑其特性做好适合的索引,仅仅排序的话未必做到最快,因为二分fseek还是会让磁头产生最多30多次随机定位,都知道随机读肯定不如顺序读

不考虑成本,排序后直接塞内存,大不了分多几台机器塞并发查就是了
2014-03-13 23:42:12 +08:00
回复了 yueyoum 创建的主题 程序员 关于排名系统的实现
@yueyoum "尽量避开mysql, 积分和另一个属性会频繁变动, 考虑10w级别用户"

这么点数据,mysql 内存表也可以试试看
2014-03-13 23:35:52 +08:00
回复了 jacy 创建的主题 Linux debian 下 iptables 的问题
@jacy 先试试简单点 POSTROUTING 上直接 owner 判断,不用MARK呢 ?
owner模块说可以直接用在POSTROUTING上
2014-03-07 21:51:15 +08:00
回复了 lusin 创建的主题 MySQL 请问如何通过 data 文件恢复 innodb 数据库呢?
看看 <host>.err 文件里说了啥错误
@intosec 不是非常熟悉golang,就我所知goroutine的销毁只有从内部结束,看你f()里面怎么设计了,如果长时间处于运算中,而不做检测判断的话可能白白浪费计算资源。做个评估权衡一下好了,比如每查找1000次做一次检测看是否有其他f()已经完成。
2014-03-06 10:51:50 +08:00
回复了 290601953 创建的主题 程序员 微信网页版 api 接口
@ETiV 推荐你一个东西 bitlbee , 这个是把IM协议转到irc协议的东西,支持很多IM协议,比如gtalk

然后写个irc的机器人就可以了,毕竟IRC协议相对简单很多。
@Kabie 关闭input的时候,其它几个f() 不知道有个小伙伴已经搞定了,自己还在埋头苦干中...
2014-03-04 21:32:01 +08:00
回复了 whuhacker 创建的主题 MySQL innodb count(*) 超过 10 亿条记录,怎么破?
13亿条,分页毫无意义啊

看看最近1000条么算了
2014-02-27 00:49:22 +08:00
回复了 kstsca 创建的主题 问与答 一个文件夹里有几万张图片,如何让他服务器瞬间下降。。。
作为隐藏图片发到热门网站热门帖子中,每个回复帖上几百张,小网站不用cdn的很容易就流量爆满
2014-02-26 23:47:55 +08:00
回复了 yakczh 创建的主题 Python 爬虫抽取连接和抽取内容的部分是不是应该分开?
@yakczh

这个..... 上面只是一个基本框架

实际上确实碰到你说的情况,所以数据分析也分步骤的,并且队列也有多个分别对应每个步骤
或者在单个队列里面对的数据进行标记,表示它是那个站,哪个步骤的待处理信息

比如第一步,得到某个列表页,得到的url进入第二步的待抓取队列
第二步分析目标页,如果内容全了就ok,不全就增加步骤

所有步骤走完了才得到完整信息,中间某个步骤失败了,数据就是不完整的。


但是不管多少步骤,抽象出来每一步就是简单的 抓取->分析

“抓取”比较简单,就是准备任务扔给gearman,除非某些抓取需要带上特殊条件而需要一个特别点的实现
“分析”就是要针对不同站,实现每一个步骤的分析过程了

增加新的抓取目标站,就是做3件事情:
1. 定义新的站点,和步骤标记
2. 实现新的“抓取”,如果没有特殊性,可以用通用的
3. 实现新的“分析”

至于parser的实现,那就五花八门了,正则、DOM、json、甚至node.js解jsonp回掉数据,取决于目标站变态程度

目前我们实际用的就是这么个架构和流程,
rabbitmq中差不多有7G的消息队列,没办法抓取速度永远赶不上分析速度。
有时候内存吃紧,只能“忍痛”从队列中砍掉一大片

另外一点就是:如果存在多个步骤,那么后面步骤的抓取url要放入优先级高的队列,优先处理,要不然排到猴年马月也轮不上它
2014-02-26 21:45:09 +08:00
回复了 yakczh 创建的主题 Python 爬虫抽取连接和抽取内容的部分是不是应该分开?
看具体需求而定的。
抓取规模,抓取周期,处理流程


如果是一次性的,怎么简单怎么来,想这么多.....
2014-02-26 21:38:50 +08:00
回复了 mantianyu 创建的主题 程序员 有没有办法通过 PHP-FPM 跑 PHP 实现一个 socket server?
直接裸跑一个php进程好了,不要和php-fpm搞一起


至于性能,看你具体干什么用途了。

我在公司用php的socket做过很多性能要求不苛刻的东西。

话说几年前我还见过一个网页在线客服服务商的后台服务整个一个php+socket写的。(就是那种网页上挂一个在线客服对话框那种东西)


性能要求苛刻的,用node.js或者golang吧(从部署和升级的便利上来说更推荐golang,直接可执行程序一考完事)
2014-02-26 21:18:44 +08:00
回复了 yakczh 创建的主题 Python 爬虫抽取连接和抽取内容的部分是不是应该分开?
我们用的比较多的架构是这样的:
Job Server: gearman
fetch_worker: 用node.js写的一个抓取脚本,连上gearman获取并处理抓取任务,支持socks5代理,worker数量动态自动调整,可分布到多台机器
队列服务: RabbitMQ
KV存储: 我们用redis-storage,一个redis接口+leveldb存储后端的东西,本身支持snappy压缩


处理流程是这样的:
1. 一个抓取调度进程
1.1 从rabbitmq读取抓取url
1.2 预处理后交给gearman,预处理包括抓取频率的控制,代理服务器的决策等
1.3 抓取结果存储,写入redis-storage服务器
1.4 写入rabbitmq队列通知分析进程处理
1.5 对于需要跳转或者需要重试的抓取,把url再次插入rabbitmq抓取队列即可。
1.6 遇到404等错误,直接丢弃结果

2. 一个数据分析进程
1.1 从rabbitmq队列获抓取成功的消息
1.2 从redis-storage服务器提取页面数据
1.3 如果是过渡页,分析下一步的url插入抓取队列
1.4 如果是目标页,分析信息,保存结果


我们主要用php
1 ... 68  69  70  71  72  73  74  75  76  77 ... 87  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2751 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 41ms · UTC 14:50 · PVG 22:50 · LAX 07:50 · JFK 10:50
Developed with CodeLauncher
♥ Do have faith in what you're doing.