当前位置: 技术问答>linux和unix
进程的内核CPU占用高
来源: 互联网 发布时间:2017-04-22
本文导语: 执行某个程序,该程序主要是执行一些诸如open(),ioctl()的系统调用,并且大部分的时间应该是在执行ioctl()时陷入内核进行相关的数据处理。 现在发现执行该程序时,用top命令查看,CPU %sys可以达到80%多,...
执行某个程序,该程序主要是执行一些诸如open(),ioctl()的系统调用,并且大部分的时间应该是在执行ioctl()时陷入内核进行相关的数据处理。
现在发现执行该程序时,用top命令查看,CPU %sys可以达到80%多,也就是CPU大部分时间都运行在内核态,并且占用CPU很厉害,能不能有办法知道比如我ioctl系统调用下去,到底是执行哪些代码导致内核CPU占用高?
现在发现执行该程序时,用top命令查看,CPU %sys可以达到80%多,也就是CPU大部分时间都运行在内核态,并且占用CPU很厉害,能不能有办法知道比如我ioctl系统调用下去,到底是执行哪些代码导致内核CPU占用高?
|
内存分配,磁盘读写,都会造成内核态搞
|
可以用iostat 5,这条命令看下是不是有大量的读写操作而导致的CPU使用率高。
|
strace + top ?
没搞过这个,坐等大湿
没搞过这个,坐等大湿
|
你确定那么高是内核,而不是你的程序?
|
如果确定是内核的话,那就看源码吧