免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 8058 | 回复: 31
打印 上一主题 下一主题

大家给我支支招怎样才能提高性能 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-03 00:19 |只看该作者 |正序浏览
大概是这样一个需求,通过TCP与CLIET建立一个连接
然后从CLIET读入请求,然后经过查询,最后将结果传回CLIET
我用pthread做的,目前的结构就是下面的图。
现在是将数据库的表全部读入到内存中的三张HASH表里,所以查询线程应该花不了多长时间。
要求做到每秒完成500次业务,我现在还有相当的差距。
怀疑是不是只用两个队列比较费时间,因为每次不管读还是写都要加锁。

大家给支支招。看怎么样能提高性能。

AA.jpg (16.75 KB, 下载次数: 66)

AA.jpg

论坛徽章:
0
32 [报告]
发表于 2012-03-21 15:32 |只看该作者
epoll libevent

论坛徽章:
0
31 [报告]
发表于 2012-03-21 10:28 |只看该作者
直接用现有的memcached或者redis就行了,每秒1万都没问题

论坛徽章:
0
30 [报告]
发表于 2012-03-17 23:00 |只看该作者
回复 28# unicorns


    结婚时间也不短

论坛徽章:
0
29 [报告]
发表于 2012-03-17 21:32 |只看该作者
性能的瓶颈,在2个队列。
        cliet的处理过程,是并行的。但增加、删除2个队列的过程,是串行的。
        因为你的程序,是以空间换时间,所以我认为采有postgresql的并行模型,效果可能会更好。
        1秒 = 500次
        1小时 = 500 * 3600 = 1,800,000次
        1天 = 43,200,000次
        建立一个表a,含有432,000,000条记录(10倍,防止溢出时,增加处理时间)。
        建立一个唯一编号的id。每天零点时,清零。
        每次有新的连接到来时,创建一个新的进程(postgresql模式)来处理。该进程取得表a中的一个唯一编号i。在表a的第i条记录上,先清零。然后,记录该连接的一切信息。
       

论坛徽章:
0
28 [报告]
发表于 2012-03-15 12:03 |只看该作者
回复 27# linuxsch




    猛然发现我居然再我结婚领证当天还在工作,年轻的我真是太敬业了,哈哈。

论坛徽章:
0
27 [报告]
发表于 2003-08-05 18:17 |只看该作者

大家给我支支招怎样才能提高性能

你可以用少量线程来处理大量的连接,因为没来一个连结请求你就单独创建一个线程去处理的话,可能会降低效率,并且线程多了就会增加很多锁的机会,我在linux下就是用select 或是 poll 来处理这种问题的,感觉效果不错。你可以试试。

论坛徽章:
0
26 [报告]
发表于 2003-08-04 15:47 |只看该作者

大家给我支支招怎样才能提高性能

[quote]原帖由 "snowpy"][/quote 发表:
     


说的太对了
刚才我在试极限速度
单客户端一个连接,每秒约1400条,再超过就有点麻烦出现了。

论坛徽章:
0
25 [报告]
发表于 2003-08-04 15:45 |只看该作者

大家给我支支招怎样才能提高性能

呵呵,gadfly斑竹
其实我这个过程比较简单,没多少能说的
主要是一开始就清楚哪里是性能的瓶颈
无非两个地方,一是网络通信,socket的收和发
二是线程间的通信队列

所以就抓住这两个地方反复试来试去。
调优感觉最困难的其实不是调而是找,发现瓶颈是比较困难的一件事情。

论坛徽章:
0
24 [报告]
发表于 2003-08-04 15:43 |只看该作者

大家给我支支招怎样才能提高性能

如果你的操作是纯内存而不含有数据库以及IO操作的话
每秒400条太慢了,起码应该上千条性能才算合格
原帖由 "unicorns" 发表:
   

一个连接就只对应一个read和send
querythread的个数比例正在测试看如何才合适。

lock用的是pthread_mutex
pthread_mutex_lock()
不论读或写都要先把整个队列锁住,队列是用双链表实现的。

多谢大?.........
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP