<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦 > 學習電腦 > 電腦硬件知識 > CPU知識 > Java進程占用CPU高怎么解決

        Java進程占用CPU高怎么解決

        時間: 沈迪豪908 分享

        Java進程占用CPU高怎么解決

          Java進程占用CPU高怎么辦?跟著學習啦小編一起學習Java進程占用CPU高的解決方法吧。

          Java進程占用CPU高的解決方法

          故障分析

          在故障發生時,WebLogic的被管服務器mserver2的gc日志出現連續FULL GC現象,如下所示:

          68354.936: [Full GC 68354.936: [Tenured: 1441791K->1441791K(1441792K), 50.8704538 secs] 1823487K->1793402K(1823488K), [Perm : 122693K->122655K(131072K)], 50.8707784 secs]

          68406.966: [Full GC 68406.966: [Tenured: 1441791K->1441791K(1441792K), 43.3959313 secs] 1823487K->1795107K(1823488K), [Perm : 122691K->122691K(131072K)], 43.3962451 secs]

          68452.057: [Full GC 68452.057: [Tenured: 1441791K->1441791K(1441792K), 43.8102222 secs] 1823487K->1793985K(1823488K), [Perm : 122692K->122692K(131072K)], 43.8105214 secs]

          68497.417: [Full GC 68497.417: [Tenured: 1441791K->1441791K(1441792K), 44.0541711 secs] 1823487K->1791516K(1823488K), [Perm : 122692K->122692K(131072K)], 44.0545032 secs]

          68542.904: [Full GC 68542.904: [Tenured: 1441791K->1441791K(1441792K), 51.2142139 secs] 1823478K->1792950K(1823488K), [Perm : 122709K->122681K(131072K)], 51.2145271 secs]

          由此,判斷有大量對象占用了JVM的內存,并且在GC后沒有釋放。

          同時,實例的輸出日志中,發現有session復制現象,如下所示:

          這說明,WebLogic的被管服務器mserver2在向mserver1復制會話。

          由于mserver1無法處理兩個被管服務器的業務,很快也訪問緩慢了。

          之后,重啟了WebLogic的2個實例,系統恢復正常。

          在接下來的系統監控中,發現WebLogic其中一個實例的JAVA進程的CPU使用率依然非常高,針對這一現象,我們dump出CPU的使用情況,發現有些JAVA線程使用CPU資源較高,且占用時間較長,如下所示:

          PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/LWPID

          27662 cncbss 2225M 1631M cpu10 0 10 0:22.46 22% java/73

          27662 cncbss 2225M 1631M cpu9 0 10 0:20.31 22% java/72

          27662 cncbss 2225M 1631M run 0 10 0:22.12 22% java/75

          經過多次dump CPU使用情況,這三個線程仍然存在。

          此后dump WebLogic的線程,發現是如下線程導致高消耗CPU:

          "ExecuteThread: '51' for queue: 'weblogic.kernel.Default'" daemon prio=5 tid=0x00ef7008 nid=0x4a runnable [0x79480000..0x79481998]

          at java.util.Vector.indexOf(Vector.java:363)

          - waiting to lock <0xa21b73f8> (a java.util.Vector)

          at java.util.Vector.contains(Vector.java:321)

          at cnc.util.FyCol.add(FyCol.java:204)

          at cnc.util.FyCol.add(FyCol.java:194)

          at cnc.util.RecordSet.(RecordSet.java:199)

          at cnc.util.RecordSet.(RecordSet.java:93)

          at cnc.util.FyDao.query(FyDao.java:264)

          at cnc.util.FyDao.query(FyDao.java:234)

          at listquery.ListQueryBean.getfreeList(ListQueryBean.java:404)

          at listquery.ListQuery_gq76y8_EOImpl.getfreeList(ListQuery_gq76y8_EOImpl.java:98)

          at listquery.ListQuery_gq76y8_EOImpl_WLSkel.invoke(Unknown Source)

          at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:166)

          at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290)

          at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:248)

          at listquery.ListQuery_gq76y8_EOImpl_816_WLStub.getfreeList(Unknown Source)

          at cnc.query.list.QueryList.createExcel(QueryList.java:790)

          at cnc.query.list.ExportData.processRequest(ExportData.java:39)

          at cnc.query.list.ExportData.probe

        學習啦 > 學習電腦 > 電腦硬件知識 > CPU知識 > Java進程占用CPU高怎么解決

        Java進程占用CPU高怎么解決

        時間: 沈迪豪908 分享

        Java進程占用CPU高怎么解決

          Java進程占用CPU高怎么辦?跟著學習啦小編一起學習Java進程占用CPU高的解決方法吧。

          Java進程占用CPU高的解決方法

          故障分析

          在故障發生時,WebLogic的被管服務器mserver2的gc日志出現連續FULL GC現象,如下所示:

          68354.936: [Full GC 68354.936: [Tenured: 1441791K->1441791K(1441792K), 50.8704538 secs] 1823487K->1793402K(1823488K), [Perm : 122693K->122655K(131072K)], 50.8707784 secs]

          68406.966: [Full GC 68406.966: [Tenured: 1441791K->1441791K(1441792K), 43.3959313 secs] 1823487K->1795107K(1823488K), [Perm : 122691K->122691K(131072K)], 43.3962451 secs]

          68452.057: [Full GC 68452.057: [Tenured: 1441791K->1441791K(1441792K), 43.8102222 secs] 1823487K->1793985K(1823488K), [Perm : 122692K->122692K(131072K)], 43.8105214 secs]

          68497.417: [Full GC 68497.417: [Tenured: 1441791K->1441791K(1441792K), 44.0541711 secs] 1823487K->1791516K(1823488K), [Perm : 122692K->122692K(131072K)], 44.0545032 secs]

          68542.904: [Full GC 68542.904: [Tenured: 1441791K->1441791K(1441792K), 51.2142139 secs] 1823478K->1792950K(1823488K), [Perm : 122709K->122681K(131072K)], 51.2145271 secs]

          由此,判斷有大量對象占用了JVM的內存,并且在GC后沒有釋放。

          同時,實例的輸出日志中,發現有session復制現象,如下所示:

          這說明,WebLogic的被管服務器mserver2在向mserver1復制會話。

          由于mserver1無法處理兩個被管服務器的業務,很快也訪問緩慢了。

          之后,重啟了WebLogic的2個實例,系統恢復正常。

          在接下來的系統監控中,發現WebLogic其中一個實例的JAVA進程的CPU使用率依然非常高,針對這一現象,我們dump出CPU的使用情況,發現有些JAVA線程使用CPU資源較高,且占用時間較長,如下所示:

          PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/LWPID

          27662 cncbss 2225M 1631M cpu10 0 10 0:22.46 22% java/73

          27662 cncbss 2225M 1631M cpu9 0 10 0:20.31 22% java/72

          27662 cncbss 2225M 1631M run 0 10 0:22.12 22% java/75

          經過多次dump CPU使用情況,這三個線程仍然存在。

          此后dump WebLogic的線程,發現是如下線程導致高消耗CPU:

          "ExecuteThread: '51' for queue: 'weblogic.kernel.Default'" daemon prio=5 tid=0x00ef7008 nid=0x4a runnable [0x79480000..0x79481998]

          at java.util.Vector.indexOf(Vector.java:363)

          - waiting to lock <0xa21b73f8> (a java.util.Vector)

          at java.util.Vector.contains(Vector.java:321)

          at cnc.util.FyCol.add(FyCol.java:204)

          at cnc.util.FyCol.add(FyCol.java:194)

          at cnc.util.RecordSet.(RecordSet.java:199)

          at cnc.util.RecordSet.(RecordSet.java:93)

          at cnc.util.FyDao.query(FyDao.java:264)

          at cnc.util.FyDao.query(FyDao.java:234)

          at listquery.ListQueryBean.getfreeList(ListQueryBean.java:404)

          at listquery.ListQuery_gq76y8_EOImpl.getfreeList(ListQuery_gq76y8_EOImpl.java:98)

          at listquery.ListQuery_gq76y8_EOImpl_WLSkel.invoke(Unknown Source)

          at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:166)

          at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290)

          at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:248)

          at listquery.ListQuery_gq76y8_EOImpl_816_WLStub.getfreeList(Unknown Source)

          at cnc.query.list.QueryList.createExcel(QueryList.java:790)

          at cnc.query.list.ExportData.processRequest(ExportData.java:39)

          at cnc.query.list.ExportData.probe

        $doGet(ExportData.java:15)

          at cnc.query.list.ExportData.doGet(ExportData.java)

          at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

          at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

          at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)

          at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)

          at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)

          at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7047)

          at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)

          at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)

          at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)

          at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)

          at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)

          at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)

          經判斷,這是清單查詢的功能。

          之后,轉由開發人員對清單查詢代碼進行分析。

          總結及改進措施

          此次故障是由于個別程序性能不佳消耗CPU過高導致,在3~5個這樣查詢的情況下就會使系統出現緩慢現象,而且清單查詢對JVM內存消耗也較大,如果有大量清單查詢會使JVM的內存出現溢出情況。

          由于在目前情況下,1臺服務器的處理能力不足,特別是在業務高峰時,WebLogic的1個被管服務器并不足以支撐2個被管服務器的業務,因此其中一臺服務器出現宕機、掛起等嚴重故障,往往另外一臺也會出現相同故障。

          鑒于上述情況,我們提出下列改進意見:

          1、 在第三臺機器上增加一個WebLogic實例,加入到集群系統。這樣在一臺被管服務器出現故障時,另外兩臺依然可以實現負載均衡功能,宕機的可能性大大降低。

          2、 將清單查詢從BSS系統中移出去,目前這一項目正在進行。

          3、 改良清單查詢程序的性能。

          附:

          收集高 CPU 占用率的數據

          對于有關收集高 CPU 占用率的數據的特定操作信息,請根據您的操作系統執行以下步驟。

          重要說明:

          這些操作系統的所有信息都基于 Sun JVM。 目前在 JRockit 中還沒有辦法將 PID 從說明 CPU 占用率的操作系統命令(prstat、top、pslist 等等)映射到 Thread Dump 中的正確線程。 從 Jrockit 的 70SP4RP2 和 81SP2RP1 以后的版本起,就可實現此映射。 例如,在 Linux 中,Thread Dump 在以后的版本中將采用如下形式(PID 顯示在 Thread Dump 中):

          "ExecuteThread: '20' for queue: 'default'" id: 0x00000e80 prio: 5 ACTIVE, DAEMON, GCABLE

          thread: 0x469b0af0 lastj: 0xac0f19c

          pt_thr: 237596 pid: 23166

          at COM.jrockit.vm.Classes.defineClass0(Native Method)@0x8b4b798

          at COM.jrockit.vm.Classes.defineClass(Unknown Source)@0x8b4b8b1

          at java.lang.ClassLoader.defineClass(Unknown Source)@0x8b4b46f

          在上例中,PID 是 23166,您可以通過 Linux 或任何所在系統上的 top(或任何您需要在操作系統上使用的特定命令)輸出直接關聯該 PID。

          轉換為十六進制號碼

          備注:為協助您計算在本模式中討論的十六進制值,您可以在 Shell 腳本中使用下列行將十進制號碼轉換為十六進制號碼。如果您使用 Unix 操作系統,那么轉換會很方便。

          dec2hex.sh:

          printf "dec -> hex: %d = %x \n" class="main">

        學習啦 > 學習電腦 > 電腦硬件知識 > CPU知識 > Java進程占用CPU高怎么解決

        Java進程占用CPU高怎么解決

        時間: 沈迪豪908 分享
        學習啦 > 學習電腦 > 電腦硬件知識 > CPU知識 > Java進程占用CPU高怎么解決

        Java進程占用CPU高怎么解決

        時間: 沈迪豪908 分享

          用法:

          $ sh dec2hex.sh 755

          dec -> hex: 755 = 2f3

          Solaris

          1. 在 Java 進程中運行 prstat命令。重復幾次這個操作,以便您能夠看到一種模式。例如:prstat -L -p 1 1

          2. 在 Java 進程中運行 pstack命令以獲得從輕量型進程 (LWP) 到 PID(進程 ID)的映射。

          示例:pstack 9499 并將輸出結果重定向到一個文件。

          如果您使用 Solaris 中的常規線程庫(即,在 LD_LIBRARY_PATH 中沒有 /usr/lib/lwp),LWP 就不會直接映射到操作系統線程,因此您必須從進程中執行 pstack(所以檢查看您是否正在使用替代線程庫)。

          3. 經過一段時間后對服務器進行若干 Thread Dump,確保您執行正確的線程。

          您可以通過在 Java 進程中執行 kill -3 來達到此目的。

          4. 將 LWP ID 映射到 Java 線程 ID。

          例如,如果上述的 LWP 為“8”,它可以映射到 Java 線程“76”。然后將 76 換算為十六進制值 0x4c。

          5. 檢查 Thread Dump,找到匹配“nid= <上述標識符/值>”的線程。

          在本示例中,您找到匹配“nid=0x4c”的線程,而該線程就是正在消耗 CPU 資源的那個線程。

        Java進程占用CPU高怎么解決相關文章:

        1.cpu使用率高怎么辦 減小系統進程cpu占用方法

        2.svchost.exe進程CPU占用率過高可能的原因以及解決方法如下

        3.搜狗瀏覽器進程占cpu太多

        4.SYSTEM進程的CPU占用率高怎么解決

        5.如何減小系統進程cpu占用

        2017958 主站蜘蛛池模板: 极品蜜桃臀一区二区av| 一本久道久久综合婷婷五月| 色伦专区97中文字幕| 丰满人妻一区二区三区无码AV| 老色鬼永久精品网站| 国产91久久精品一区二区| 麻豆亚州无矿码专区视频| 亚洲人妻中文字幕一区| 狠狠精品久久久无码中文字幕| 亚洲狠狠婷婷综合久久久| 极品蜜桃臀一区二区av| 一区二区三区四区黄色网| 黄色A级国产免费大片视频| 挺进粗大尤物人妻中文字幕| 开心激情站开心激情网六月婷婷| 亚洲人成色4444在线观看 | 久久天天躁夜夜躁狠狠综合 | 免费无码黄网站在线观看| 国产乱码精品一区二区三区四川人 | 毛片av在线尤物一区二区| 午夜精品极品粉嫩国产尤物| 2020年最新国产精品正在播放| 另类 专区 欧美 制服| 成人无码免费视频在线播| 无码伊人久久大蕉中文无码| 国产在线国偷精品产拍| 国内少妇偷人精品免费| 亚洲A综合一区二区三区| 吉川爱美一区二区三区视频| 性夜久久一区国产9人妻| 国产在线98福利播放视频免费| 国产福利视频区一区二区| 国产线播放免费人成视频播放| 国产高清免费午夜在线视频| 在线国产综合一区二区三区| 亚洲日韩中文无码久久 | 最新中文字幕国产精品| 三上悠亚久久精品| 18禁成人免费无码网站| 亚洲经典一区二区三区四区| 亚洲人成线无码7777|