开发者社区> 问答> 正文

spring2.5 tomcat6 下会出现cpu 很高

各位好:

我现在有一个问题。我的代码

@RequestMapping(value = "{cityname}/{id}", method = { RequestMethod.GET})

public String showOneGroupInfo(@PathVariable String cityname, @PathVariable long id, HttpServletRequest request, HttpServletResponse response, ModelMap model) {
    System.out.println("什么都没有,现在是个空类");

return null;

}

现在就是这样的一个代码。 我访问http://XXX/ma/111 我这样访问的时候, 我观察linux下(top)。cpu一直处于700-800 之间。负载均衡也再20多,太不正常了。 各位帮帮忙!!!谢谢!

展开
收起
a123456678 2016-03-12 17:35:44 2035 0
2 条回答
写回答
取消 提交回答
  • 定位Java CPU高的线程的方法

    1,找到Java PID:ps -ef | grep java

    2,找到CPU最高的线程:top -Hp $pid,然后按 Shift T

    3,将得到的线程ID转换为十六进制。

    4,执行JStack,拿到所有线程状态,然后基于十六进制的线程ID进行搜索,看下当前线程正在执行什么操作。

    注意:
    1,如果CPU 100%时,此时执行jstack可能无法成功。这个时候记得看下gc.log日志,如果CPU持续100%很可能是在频繁FullGC。

    2019-07-17 19:01:17
    赞同 展开评论 打赏
  • top - 22:23:04 up 12:16, 8 users, load average: 22.49, 7.66, 4.51
    Tasks: 143 total, 1 running, 139 sleeping, 3 stopped, 0 zombie
    Cpu(s): 2.9%us, 0.3%sy, 0.0%ni, 96.6%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st
    Mem: 6089996k total, 4759660k used, 1330336k free, 27352k buffers
    Swap: 5920764k total, 36760k used, 5884004k free, 468112k cached

    2019-07-17 19:01:17
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程(第17讲):Spring Boot 2.0实战Docker容器Linux 立即下载
Spring Boot2.0实战Redis分布式缓存 立即下载
Java Spring Boot开发实战系列课程【第15讲】:Spring Boot 2.0 API与Spring REST Docs实战 立即下载

相关实验场景

更多