1
vibbow 2014-03-22 04:32:34 +08:00
cUrl性能没那么差劲的啊。
采集封账号是因为采集写入数据库时特别耗CPU/硬盘,不是cUrl的问题。 请检查是不是你框架的性能太低了,毕竟用框架的话有那么多路由等等的东西需要处理。 |
2
vibbow 2014-03-22 04:34:29 +08:00 1
还有请检查session锁的问题。
|
3
a2z 2014-03-22 08:58:05 +08:00
curl性能很好啊,我用curl multi写的扫描器能开200个线程都不卡。
你用curl的时候没有把整个thinkphp框架都include了吧? |
4
yakczh 2014-03-22 09:08:16 +08:00
写个单独的php脚本 里面只包含curl,运行一下,看cpu占用多少
|
5
2code 2014-03-22 09:14:34 +08:00
1) 机器会不会太差?
2) curl 抓取的内容是否要缓存一下,是否必要每次都重新抓? 3) 考虑换一种方式做实时刷新,不要用ajax轮询 |
6
jyhmijack 2014-03-22 09:14:55 +08:00 via iPad
curl的性能很好的,查查别的原因吧
|
9
info007 OP 昨天把PHP版本更新到5.3好像性能上去了很多。原来是5.2的。用AB做压力测试1000并发CPU不到9%
|
11
wwek 2014-03-22 18:01:08 +08:00
还用虚拟主机?
|
12
wwek 2014-03-22 18:03:03 +08:00
楼主可以采用 如果判断支持html 5 用websockt 做实时信息。
如果低版本的 可以用flash做兼容 你这个性能问题。继续优化下代码。 实在是扛不住 。加机器群集啊。 |
13
wwek 2014-03-22 18:03:28 +08:00
还有 mysql不是给你做高并发用的。 请加上redis之类·
|
14
pubby 2014-03-22 22:47:04 +08:00
访问量大的话,CPU高很正常啊。
楼主没交代实际的访问压力。 还有找瓶颈的话建议开xdebug,使用profile看看具体分析报告。 当然xdebug会影响性能,生产环境建议单独部署一个开xdebug的环境,然后通过前端倒入一定比例的流量进行测试分析。 |
15
yakczh 2014-03-23 10:04:27 +08:00
netstat -an |grep 'ESTABLISHED' |grep 'tcp' |wc -l
看一下连接数是多少? |
16
heyli 2014-03-23 14:00:49 +08:00
用了JQUERY来的GET来调前端的PHP。然后用1秒刷新一次
这才是要命的地方 前端显示数据的PHP文件建议直接从redis读数据 后台有个守护进程负责刷新redis 有能力的话建议长连接 https://github.com/ideawu/icomet https://github.com/wandenberg/nginx-push-stream-module |
17
info007 OP 忘记提了。我最新端PHP的地方是用了MEMCACHE来缓存的。如果有数据就直接显示出来。如果没有数据才会去调用CURL读中间层的数据。中间层和后端数据库没有加缓存。本来是在中间层和数据库之间加缓存的。后来改成了前端加缓存。这样前端就减少了和中间层的通信。请问这样合理吗?
另问HHVM(FACEBOOK开发的一个开源项目)做服务器。性能很高。不过就是特别容易挂掉。听说是内存泄露的BUG.也有补丁。因为用的是RPM安装的。这种东西用到实际的生产环境中稳定性不知道如何?现在打算是写一个监控程序来做监控HHVM.如果挂掉了马上重启。不知道这样行吗? |
18
info007 OP 还有一个问题就是想做定时任务。是用的LINUX的计划任务。可是LINUX的定时任务最低刷新时间是1分钟。想改成几秒刷新一下的。有没有好的办法?谢谢
|
19
setimouse 2014-03-24 06:53:14 +08:00 via iPad
http长连接使用comet技术。
一秒一次get上线肯定挂。 |
20
sivacohan 2014-03-24 23:59:07 +08:00
开发和测试在一台机器上吗?
如果js写的不好的话,cpu消耗也是非常恐怖的 |
21
info007 OP 用HHVM做服务器一堆坑啊。会在/tmp目录产生很多空SESSION。。。还没跑一会呢。就把服务器给弄挂了。。
|