有关java进程占用CPU100%

早起鸟儿 2013-12-11 02:27:14
项目发布到服务器,服务器CPU占用率从0%到100%蹦达,但是只要一请求服务器,(xxxx.action)服务器CPU就会瞬间100%(我看了是JAVA进程),然后回落, 服务器是weblogic 11的,服务器系统是W7的,

按照网上所说的可能是死循环的问题,如果是,那么本地运行是不是也应该是CPU100%呢?但是我本地虽然也会偏高(80%+算是占用最多的时候),但是没有一个能达到100%的啊。所以这个不成立。
还有一种原因,是因为服务器运行内存不足导致(个人比较偏向于这个),但是如果需要添加的话会很麻烦。。。。。

求各位大神给说说可能还有什么我没有考虑到的。


服务器是一台虚拟机
...全文
575 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
闲去野鹤 2013-12-11
  • 打赏
  • 举报
回复
引用 14 楼 qswdcs1 的回复:
[quote=引用 13 楼 u010684923 的回复:] 程序写的有问题了
能说说是关于哪方面的吗?[/quote] 代码都没有,木法分析呀
早起鸟儿 2013-12-11
  • 打赏
  • 举报
回复
引用 13 楼 u010684923 的回复:
程序写的有问题了
能说说是关于哪方面的吗?
闲去野鹤 2013-12-11
  • 打赏
  • 举报
回复
程序写的有问题了
oh_Maxy 2013-12-11
  • 打赏
  • 举报
回复
引用 10 楼 qswdcs1 的回复:
[quote=引用 9 楼 oh_Maxy 的回复:] [quote=引用 7 楼 qswdcs1 的回复:] [quote=引用 6 楼 qin_easy 的回复:] 访问一个action 45% 这个也不正常 。如果没有死循环的话,找找当前运行的线程在干嘛。
数据库取list 然后把list封装到对象 [/quote] 服务器是虚拟机,是说,本机上再建一个虚拟机的么? 还有,这list个数据量多大?[/quote] 是在灵位一台服务器上,是公司给搞的,具体不是很清楚,list有大的有小的,看数据而定。(个人感觉是因为list太大引起内存不足所以导致CPU100%)期间还会有一些运算的。 [/quote] 嗯,那你可以在本地用jdk自带的jvisualvm.exe之类的性能监测工具看看,哪些操作、对象占用资源较多。
早起鸟儿 2013-12-11
  • 打赏
  • 举报
回复
引用 8 楼 u012852259 的回复:
[quote=引用 5 楼 qswdcs1 的回复:] [quote=引用 4 楼 u012852259 的回复:] 4核CPU,有一个地方死循环就是25%,2核CPU,一个死循环就是50%。 应该是漏了写休眠了。
如果是忘写了休眠本地是不是也应该一样的情况?但是本地运行属于正常范围的啊![/quote] 都88%了还正常?业务系统没有那么多CPU操作的,会消耗在io,数据库等。88%表示至少有一个CPU核占满了。 [/quote] 我们应用服务器和数据服务器是分开的。
早起鸟儿 2013-12-11
  • 打赏
  • 举报
回复
引用 9 楼 oh_Maxy 的回复:
[quote=引用 7 楼 qswdcs1 的回复:] [quote=引用 6 楼 qin_easy 的回复:] 访问一个action 45% 这个也不正常 。如果没有死循环的话,找找当前运行的线程在干嘛。
数据库取list 然后把list封装到对象 [/quote] 服务器是虚拟机,是说,本机上再建一个虚拟机的么? 还有,这list个数据量多大?[/quote] 是在灵位一台服务器上,是公司给搞的,具体不是很清楚,list有大的有小的,看数据而定。(个人感觉是因为list太大引起内存不足所以导致CPU100%)期间还会有一些运算的。
oh_Maxy 2013-12-11
  • 打赏
  • 举报
回复
引用 7 楼 qswdcs1 的回复:
[quote=引用 6 楼 qin_easy 的回复:] 访问一个action 45% 这个也不正常 。如果没有死循环的话,找找当前运行的线程在干嘛。
数据库取list 然后把list封装到对象 [/quote] 服务器是虚拟机,是说,本机上再建一个虚拟机的么? 还有,这list个数据量多大?
poooll 2013-12-11
  • 打赏
  • 举报
回复
引用 5 楼 qswdcs1 的回复:
[quote=引用 4 楼 u012852259 的回复:] 4核CPU,有一个地方死循环就是25%,2核CPU,一个死循环就是50%。 应该是漏了写休眠了。
如果是忘写了休眠本地是不是也应该一样的情况?但是本地运行属于正常范围的啊![/quote] 都88%了还正常?业务系统没有那么多CPU操作的,会消耗在io,数据库等。88%表示至少有一个CPU核占满了。
早起鸟儿 2013-12-11
  • 打赏
  • 举报
回复
引用 6 楼 qin_easy 的回复:
访问一个action 45% 这个也不正常 。如果没有死循环的话,找找当前运行的线程在干嘛。
数据库取list 然后把list封装到对象
悲剧的程序员 2013-12-11
  • 打赏
  • 举报
回复
访问一个action 45% 这个也不正常 。如果没有死循环的话,找找当前运行的线程在干嘛。
早起鸟儿 2013-12-11
  • 打赏
  • 举报
回复
引用 4 楼 u012852259 的回复:
4核CPU,有一个地方死循环就是25%,2核CPU,一个死循环就是50%。 应该是漏了写休眠了。
如果是忘写了休眠本地是不是也应该一样的情况?但是本地运行属于正常范围的啊!
poooll 2013-12-11
  • 打赏
  • 举报
回复
4核CPU,有一个地方死循环就是25%,2核CPU,一个死循环就是50%。 应该是漏了写休眠了。
早起鸟儿 2013-12-11
  • 打赏
  • 举报
回复
引用 2 楼 oh_Maxy 的回复:
你先把那“80%”的问题解决了。
本地最高45% 80%的时候有别的程序占用
oh_Maxy 2013-12-11
  • 打赏
  • 举报
回复
你先把那“80%”的问题解决了。
早起鸟儿 2013-12-11
  • 打赏
  • 举报
回复
求回复啊!!!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧