当前位置:编程学习 > JAVA >>

有关java进程占用CPU100%

项目发布到服务器,服务器CPU占用率从0%到100%蹦达,但是只要一请求服务器,(xxxx.action)服务器CPU就会瞬间100%(我看了是JAVA进程),然后回落, 服务器是weblogic 11的,服务器系统是W7的,
 
   按照网上所说的可能是死循环的问题,如果是,那么本地运行是不是也应该是CPU100%呢?但是我本地虽然也会偏高(80%+算是占用最多的时候),但是没有一个能达到100%的啊。所以这个不成立。
    还有一种原因,是因为服务器运行内存不足导致(个人比较偏向于这个),但是如果需要添加的话会很麻烦。。。。。

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


   服务器是一台虚拟机 --------------------编程问答-------------------- 求回复啊!!! --------------------编程问答-------------------- 你先把那“80%”的问题解决了。 --------------------编程问答--------------------
引用 2 楼 oh_Maxy 的回复:
你先把那“80%”的问题解决了。


本地最高45% 80%的时候有别的程序占用 --------------------编程问答-------------------- 4核CPU,有一个地方死循环就是25%,2核CPU,一个死循环就是50%。
应该是漏了写休眠了。 --------------------编程问答--------------------
引用 4 楼 u012852259 的回复:
4核CPU,有一个地方死循环就是25%,2核CPU,一个死循环就是50%。
应该是漏了写休眠了。


如果是忘写了休眠本地是不是也应该一样的情况?但是本地运行属于正常范围的啊! --------------------编程问答-------------------- 访问一个action 45% 这个也不正常 。如果没有死循环的话,找找当前运行的线程在干嘛。 --------------------编程问答--------------------
引用 6 楼 qin_easy 的回复:
访问一个action 45% 这个也不正常 。如果没有死循环的话,找找当前运行的线程在干嘛。

数据库取list 然后把list封装到对象
--------------------编程问答--------------------
引用 5 楼 qswdcs1 的回复:
Quote: 引用 4 楼 u012852259 的回复:

4核CPU,有一个地方死循环就是25%,2核CPU,一个死循环就是50%。
应该是漏了写休眠了。


如果是忘写了休眠本地是不是也应该一样的情况?但是本地运行属于正常范围的啊!


都88%了还正常?业务系统没有那么多CPU操作的,会消耗在io,数据库等。88%表示至少有一个CPU核占满了。
--------------------编程问答--------------------
引用 7 楼 qswdcs1 的回复:
Quote: 引用 6 楼 qin_easy 的回复:

访问一个action 45% 这个也不正常 。如果没有死循环的话,找找当前运行的线程在干嘛。

数据库取list 然后把list封装到对象

服务器是虚拟机,是说,本机上再建一个虚拟机的么?
还有,这list个数据量多大? --------------------编程问答--------------------
引用 9 楼 oh_Maxy 的回复:
Quote: 引用 7 楼 qswdcs1 的回复:

Quote: 引用 6 楼 qin_easy 的回复:

访问一个action 45% 这个也不正常 。如果没有死循环的话,找找当前运行的线程在干嘛。

数据库取list 然后把list封装到对象

服务器是虚拟机,是说,本机上再建一个虚拟机的么?
还有,这list个数据量多大?


是在灵位一台服务器上,是公司给搞的,具体不是很清楚,list有大的有小的,看数据而定。(个人感觉是因为list太大引起内存不足所以导致CPU100%)期间还会有一些运算的。
--------------------编程问答--------------------
引用 8 楼 u012852259 的回复:
Quote: 引用 5 楼 qswdcs1 的回复:

Quote: 引用 4 楼 u012852259 的回复:

4核CPU,有一个地方死循环就是25%,2核CPU,一个死循环就是50%。
应该是漏了写休眠了。


如果是忘写了休眠本地是不是也应该一样的情况?但是本地运行属于正常范围的啊!


都88%了还正常?业务系统没有那么多CPU操作的,会消耗在io,数据库等。88%表示至少有一个CPU核占满了。



我们应用服务器和数据服务器是分开的。 --------------------编程问答--------------------
引用 10 楼 qswdcs1 的回复:
Quote: 引用 9 楼 oh_Maxy 的回复:

Quote: 引用 7 楼 qswdcs1 的回复:

Quote: 引用 6 楼 qin_easy 的回复:

访问一个action 45% 这个也不正常 。如果没有死循环的话,找找当前运行的线程在干嘛。

数据库取list 然后把list封装到对象

服务器是虚拟机,是说,本机上再建一个虚拟机的么?
还有,这list个数据量多大?


是在灵位一台服务器上,是公司给搞的,具体不是很清楚,list有大的有小的,看数据而定。(个人感觉是因为list太大引起内存不足所以导致CPU100%)期间还会有一些运算的。

嗯,那你可以在本地用jdk自带的jvisualvm.exe之类的性能监测工具看看,哪些操作、对象占用资源较多。 --------------------编程问答-------------------- 程序写的有问题了 --------------------编程问答--------------------
引用 13 楼 u010684923 的回复:
程序写的有问题了


能说说是关于哪方面的吗? --------------------编程问答--------------------
引用 14 楼 qswdcs1 的回复:
Quote: 引用 13 楼 u010684923 的回复:

程序写的有问题了


能说说是关于哪方面的吗?

代码都没有,木法分析呀
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,