免费注册 查看新帖 |

Chinaunix

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

小弟求教关于线程的一个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-22 23:34 |只看该作者 |倒序浏览
最近在看key-list系统,redis中在读的时候使用的是单线程,说单线程在只有I/O操作的时候将速度优势发挥到最大,下面是几个不明白的地方:
1、多线程为什么会比单线程在I/O方面慢?是因为线程切换吗?能慢多少?
2、怎么样能减少线程切换的开销?如果少开几个线程,然后规定每个线程只能在哪个CPU上面运行,这样做可以么?

非常感谢。

论坛徽章:
0
2 [报告]
发表于 2011-11-23 10:33 |只看该作者
本帖最后由 agathewiky 于 2011-11-24 10:11 编辑

本人的观点:
1.key-list系统是I/O密集型的,占用CPU时间极短,也就是访问即到即返回,不会有阻塞,所以不用考虑多线程。而且I/O密集的话,线程切换也会增长,性能必然会下降。
反过来,如果是CPU消耗型的,而且一个请求可能陷入 阻塞(比如 网络应用),当然考虑多线程更优。
2.如果系统是多核的,绑定CPU能提升性能。其实操作系统会为你做这些分配的。

论坛徽章:
0
3 [报告]
发表于 2011-11-23 12:52 |只看该作者
本人的观点:
1.key-list系统是I/O密集型的,占用CPU时间极端,也就是访问即到即返回,不会有阻塞,所以不 ...
agathewiky 发表于 2011-11-23 10:33

“占用CPU时间极端”应该是“占用CPU时间极短”吧。这个意思正好相反啊。

论坛徽章:
0
4 [报告]
发表于 2011-11-23 15:11 |只看该作者
本人的观点:
1.key-list系统是I/O密集型的,占用CPU时间极端,也就是访问即到即返回,不会有阻塞,所以不 ...
agathewiky 发表于 2011-11-23 10:33



    那如果在接到请求后分发给多个线程去执行,然后再通过一个线程写出去,这样的效率是不是应该更高呢?

论坛徽章:
0
5 [报告]
发表于 2011-11-23 19:24 |只看该作者
可能是因为多线程造成频繁的磁头移动吧

论坛徽章:
0
6 [报告]
发表于 2011-11-23 22:42 |只看该作者
回复 5# Aquester


    那比如socket通信的时候多线程和单线程的差别呢?

论坛徽章:
0
7 [报告]
发表于 2011-11-24 09:17 |只看该作者
回复  Aquester


    那比如socket通信的时候多线程和单线程的差别呢?
ggzwtj 发表于 2011-11-23 22:42



    对于IO(网络也是IO)一般会采用多线程+异步方式,而线程的个数一般设置成和CPU核个数相同即可达到最佳,当然和实际有关,需要测试调整参数值。

论坛徽章:
0
8 [报告]
发表于 2011-11-24 09:43 |只看该作者
回复 7# Aquester


    我想了下,其实线程间切换的开销是不可避免的,只要线程的数目不是太多,这个应该不是问题。会不会是因为在写文件或者网络传输的时候线程之间是不能并行的,而且这种线程占用的资源又比较大,这就导致了在线程切换的时候处理资源的时间上面的时间就比较大了。

论坛徽章:
0
9 [报告]
发表于 2011-11-24 09:47 |只看该作者
回复  Aquester


    我想了下,其实线程间切换的开销是不可避免的,只要线程的数目不是太多,这个应该 ...
ggzwtj 发表于 2011-11-24 09:43



    网络和磁盘可以并行的,前提是不在同一个线程。你应当找出系统的瓶颈是在网络,还是磁盘IO,你可以看看磁盘IO是不是很重,系统负载用uptime命令看,磁盘IO可以用iostat和vmstat命令,当然一个top命令合看得到。一种常遇到的问题是:多线程写多文件,造成磁盘磁头效率低。

论坛徽章:
0
10 [报告]
发表于 2011-11-24 10:11 |只看该作者
回复 3# digdeep126


    谢谢,是打错字了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP