亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 請(qǐng)教java開(kāi)發(fā)高手一個(gè)線程 進(jìn)程 內(nèi)存的問(wèn)題 [打印本頁(yè)]

作者: 75252    時(shí)間: 2010-06-04 20:37
標(biāo)題: 請(qǐng)教java開(kāi)發(fā)高手一個(gè)線程 進(jìn)程 內(nèi)存的問(wèn)題
環(huán)境:16G內(nèi)存 8核處理器
JVM配置:堆大小4G 并行回收
JDK版本:32位 1.5
系統(tǒng)版本:linux 64位
web應(yīng)用:tomcat
程序特點(diǎn):編譯圖片和flash
tomcat線程池配置:
  1. <Connector port="8080" maxHttpHeaderSize="8192"
  2.                maxThreads="1000" minSpareThreads="100" maxSpareThreads="150"
  3.                enableLookups="false" redirectPort="8443" acceptCount="100" debug="0"
  4.                connectionTimeout="30000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
復(fù)制代碼
情況:
壓力測(cè)試一段時(shí)間后通過(guò)jvisualvm觀察 程序jVM回收正常
通過(guò)top觀察,java進(jìn)程消耗的內(nèi)存一直增長(zhǎng)直到系統(tǒng)內(nèi)存溢出 ,(data)17G左右的時(shí)候 系統(tǒng)會(huì)自動(dòng)殺掉 java進(jìn)程
再此之前jvm的堆內(nèi)存還在健康回收,保持4G上限不變。而且tomcat日志中并未出現(xiàn)OOM的信息

問(wèn)題:
1.java整個(gè)進(jìn)程會(huì)過(guò)多申請(qǐng)系統(tǒng)內(nèi)存(17-4)G是什么導(dǎo)致的
2.通過(guò)對(duì)運(yùn)行中線程的觀察 發(fā)現(xiàn)雖然開(kāi)啟了多個(gè)處理線程但是實(shí)際running的一直是20個(gè)processor(壓力測(cè)試并發(fā)是20個(gè)線程)
其余80個(gè)線程一直是waitting狀態(tài),理解是不是因?yàn)?0個(gè)processor一直沒(méi)有釋放所以導(dǎo)致java進(jìn)程內(nèi)存一直增長(zhǎng)
如果在程序中增加每個(gè)處理請(qǐng)求后sleep 1或者關(guān)閉線程會(huì)好些【本人從未搞過(guò)開(kāi)發(fā),純屬假想】
作者: friendmine    時(shí)間: 2010-06-06 08:19
1.我覺(jué)得跟你的網(wǎng)站的邏輯代碼有關(guān)系。
2.這個(gè)基本上不是你控制的。還是仔細(xì)分析一下你的代碼中是否有內(nèi)存問(wèn)題吧。

另:64位的系統(tǒng)上是可以用64的JVM的,如果換一下,是不是會(huì)更好?
作者: 75252    時(shí)間: 2010-06-07 12:37
1.我覺(jué)得跟你的網(wǎng)站的邏輯代碼有關(guān)系。
2.這個(gè)基本上不是你控制的。還是仔細(xì)分析一下你的代碼中是否有內(nèi)存 ...
friendmine 發(fā)表于 2010-06-06 08:19



    謝謝樓主回復(fù),不過(guò)還是有些不明白
多出來(lái)的 7-8G內(nèi)存是被誰(shuí)拿走了呢
JVM本身的內(nèi)存回收和使用范圍都是正常的
作者: 75252    時(shí)間: 2010-06-07 15:15
這個(gè)問(wèn)題有了一定程度進(jìn)展。
Java所謂的內(nèi)存溢出其實(shí)可以分為內(nèi)部溢出和外部溢出。
而網(wǎng)文一般都針對(duì)內(nèi)部溢出(GC回收)做了詳述
往往忽略了外部溢出
什么是外部溢出?
jvm是不會(huì)對(duì)非java語(yǔ)言申請(qǐng)的內(nèi)存做回收的,而程序員在code的時(shí)候如果使用了類(lèi)似JNI的本地調(diào)而且
處理不當(dāng)就可能造成 java外的內(nèi)存溢出。不知道說(shuō)的對(duì)不對(duì)~~
作者: surpass_li    時(shí)間: 2010-06-08 12:32
linux 系統(tǒng)有這種特性吧,啟動(dòng)后會(huì)把大量?jī)?nèi)存占用,當(dāng)有其它應(yīng)用申請(qǐng)時(shí)會(huì)劃分出一部分給應(yīng)用使用




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2