免费注册 查看新帖 |

Chinaunix

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

进程占用CPU过高问题探讨,求帮助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-09 21:07 |只看该作者 |倒序浏览
问题描述:
某个进程占用CPU达到120%,一般发生在运行一天后,进程处理数据量最高峰时期,进程处理数据为电话通话量数据,一天的早上,中午,下班时间为高峰。进程占CPU过高基本出现在早上8点左右。
1、硬件环境:
操作系统:Linux localhost.localdomain 2.6.18-53.el5xen #1 SMP Wed Oct 10 16:48:44 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
资源情况:(TOP命令显示)
top - 20:48:26 up 70 days, 22:00,  5 users,  load average: 0.57, 0.68, 0.82
Tasks: 156 total,   3 running, 153 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.7%us,  2.9%sy,  0.0%ni, 90.4%id,  0.0%wa,  0.3%hi,  2.5%si,  0.2%st
Mem:  16390144k total,  4312480k used, 12077664k free,   604720k buffers
Swap: 51199144k total,        0k used, 51199144k free,  1815696k cached

2、软件描述
程序用C++实现,分为主程序和子模块,子模块以动态库方法被主程序加载,主程序负责接收远程数据包(多个点)和发送远程数据包(多个点),主程序和子模块的交互为队列交互方式,子模块被加载起来后,单独以线程方式运行,主程序发送数据给子模块时把数据压入子模块队列,子模块需要外发数据时把数据压入相关队列,主程序负责发送。各队列加锁同步。基本排除了子模块自身处理速度不够的情况。

进程占用CPU过高后,导致自身来源数据队列堵塞,可达到1000万条数据堵塞。

论坛徽章:
0
2 [报告]
发表于 2010-06-09 21:08 |只看该作者
早上出问题后,重启程序,CPU就降下来了,如果是自身无法处理高峰数据量,此时仍然会CPU过高才对。

论坛徽章:
0
3 [报告]
发表于 2010-06-09 23:37 |只看该作者
是跑在XEN上面的啊?一定要用XEN么?不能用普通的KERNEL?

当看目前的描述看不出来啥。如果可以的话,加个OPROFILE,看看具体哪里慢了或者堵塞了。如果不能直接在客户那边加OPROFILE,就自己搭个小环境,想办法重现问题。

其实这个应该是事先测试好的。。。。。

论坛徽章:
2
摩羯座
日期:2013-10-10 14:29:04天蝎座
日期:2014-01-03 09:14:49
4 [报告]
发表于 2010-06-10 08:59 |只看该作者
120% ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP