惊群24小时

很有意思,这么有名的事情,昨天才亲身经历了。
隔壁小王继续用google perftools 排查cpu占用率。先说明一下场景。多服务进程阻塞在select上,这个select是和一个消息队列对应的,一旦有消息进入队列,select就唤醒阻塞的进程,从队列中取消息处理。发现select(__select_nocancel)占用了30%左右的cpu。先是怀疑select阻塞也被perftools记在内了。写了个小程序验证了一下,非也。遂在select下加一行log,发现每处理一个消息之前,就会有多个select被唤醒。才意识到一个消息来了之后,多个阻塞在select的服务进程都被唤醒,而只有一个会到达消息并处理。才知道这就是著名的惊群效应。
 
解决中。尝试在select之前加互斥锁,select之后释放锁,确保任何一个时刻只会有一个进程在select阻塞。为了确保锁不会被集体唤醒,特意查了一些资料,linux中,阻塞在互斥锁上的进程id是存放在一个队列中的,每次只会取出一个唤醒。更近一步考虑,获取锁的进程一旦检测到有消息进来,就立即去出一个消息,并释放锁,然后遍历消息队列有一个就处理一个。这里先取出一个基于两点考虑:1.在消息队列中只有一个消息时,如果不及时取出,释放锁后,获得锁的下一个进程就会来取这个消息,但很可能取不到,因为前一个进程刚好去走了,多了一次无谓的进程切换。2.一个进程处理一个消息,特别是比较耗时的业务,能使得并发量最大。

转载于:https://www.cnblogs.com/mjohh/p/5363334.html

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值