請教一個java程式記憶體釋放的問題
我的程式使用以下方式啟動:
nohup java -Xms4m -Xmx16m -cp $HOME/lib/ 。。。
使用以上方式啟動後,使用ps列出了多個執行緒,
我在啟動程式中又啟過幾個執行緒
之後,我想檢視我的程式當前所使用記憶體空間的情況
根據pid,開啟 /proc/$pid/status檔案
發現這裡面顯示的記憶體使用情況和我分配的有很大的差值
檔案內容如下:
Name: java
State: S (sleeping)
Tgid: 30085
Pid: 30085
PPid: 1
TracerPid: 0
Uid: 1009 1009 1009 1009
Gid: 100 100 100 100
FDSize: 256 /FD的最大值?
Groups: 100
VmSize: 210520 kB //該程式總共所佔的虛擬空間的總數
VmLck: 0 kB //鎖定的程式虛擬空間數
VmRSS: 19836 kB //RSS空間
VmData: 155944 kB //DATA空間
VmStk: 2032 kB //棧空間
VmExe: 56 kB //TEXT空間
VmLib: 7040 kB //動態連結庫空間
SigPnd: 0000000000000000//下邊三項是pend, block, ignore的訊號量的對應位
SigBlk: 0000000000000004
SigIgn: 8000000000000003
SigCgt: 1000000380005ccc
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
因為單獨有很多appliction啟動,都有這種情況,所以佔用了大量的記憶體,使用free命令發現cache怎麼也不能釋放
free
total used free shared buffers cached
Mem: 4011076 3601104 409972 0 320044 2351272
-/+ buffers/cache: 929788 3081288
Swap: 8251336 4964 8246372
請教一下這裡的高手,已經檢查了程式,資源釋放這些問題都沒有,就是不知道程式為什麼佔用這麼多的記憶體
nohup java -Xms4m -Xmx16m -cp $HOME/lib/ 。。。
使用以上方式啟動後,使用ps列出了多個執行緒,
我在啟動程式中又啟過幾個執行緒
之後,我想檢視我的程式當前所使用記憶體空間的情況
根據pid,開啟 /proc/$pid/status檔案
發現這裡面顯示的記憶體使用情況和我分配的有很大的差值
檔案內容如下:
Name: java
State: S (sleeping)
Tgid: 30085
Pid: 30085
PPid: 1
TracerPid: 0
Uid: 1009 1009 1009 1009
Gid: 100 100 100 100
FDSize: 256 /FD的最大值?
Groups: 100
VmSize: 210520 kB //該程式總共所佔的虛擬空間的總數
VmLck: 0 kB //鎖定的程式虛擬空間數
VmRSS: 19836 kB //RSS空間
VmData: 155944 kB //DATA空間
VmStk: 2032 kB //棧空間
VmExe: 56 kB //TEXT空間
VmLib: 7040 kB //動態連結庫空間
SigPnd: 0000000000000000//下邊三項是pend, block, ignore的訊號量的對應位
SigBlk: 0000000000000004
SigIgn: 8000000000000003
SigCgt: 1000000380005ccc
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
因為單獨有很多appliction啟動,都有這種情況,所以佔用了大量的記憶體,使用free命令發現cache怎麼也不能釋放
free
total used free shared buffers cached
Mem: 4011076 3601104 409972 0 320044 2351272
-/+ buffers/cache: 929788 3081288
Swap: 8251336 4964 8246372
請教一下這裡的高手,已經檢查了程式,資源釋放這些問題都沒有,就是不知道程式為什麼佔用這麼多的記憶體
相關文章
- 請教大家一個JAVA的問題Java
- 請教tomcat6記憶體問題Tomcat記憶體
- vector clear() 方法 記憶體釋放問題記憶體
- 【OpenCV】有關記憶體釋放的一些問題OpenCV記憶體
- C/C++記憶體釋放應注意的問題C++記憶體
- android釋放記憶體的一個辦法Android記憶體
- 請教一個cookies的問題Cookie
- 請教一個executeBatch()的問題BAT
- 請教一個關於JAVA SOCKET程式設計中的問題Java程式設計
- 【求助】請教一個初學java的小問題Java
- 急!請教用optimizeit檢測記憶體洩漏的問題?記憶體
- 請教一個JVM問題JVM
- 請教高手一個問題!
- 請教大家一個財務軟體的問題
- 請教:JBoss伺服器不能釋放資源的問題伺服器
- 請教一個struct tag的問題Struct
- 請教一個ADAPTER的問題APT
- 請教一個WEB START的問題!Web
- vector 的記憶體釋放記憶體
- 請教各位高手一個問題
- dll內申請的記憶體可以由呼叫它的程式釋放嗎?記憶體
- Chrome 再次最佳化記憶體佔用問題,新增記憶體釋放開關Chrome記憶體
- 請教一個程式執行時,從磁碟到記憶體到CPU的過程?記憶體
- 請教一個go切片引用的問題Go
- 請教一個物件設計的問題物件
- 記憶體的分配與釋放,記憶體洩漏記憶體
- 排查Java的記憶體問題Java記憶體
- 請教ejb釋出問題
- 我是剛開學JAVA,想請教一個問題。Java
- 又是tomcat記憶體請教Tomcat記憶體
- 請教一個演算法問題演算法
- 請教一個observer設計問題。Server
- Linux釋放記憶體及手動釋放Oracle共享記憶體段Linux記憶體Oracle
- 一個記憶體不能被written的問題記憶體
- XCode釋放記憶體XCode記憶體
- linux釋放記憶體Linux記憶體
- 請教一個多執行緒的問題執行緒
- 請教Banq一個Ruby架構的問題架構