前言
昨天看了一本《The Solaris Memory System》的書,裡面寫了很多關於內存監控和內存優化方面的東西,還介紹了一個關於內存監控的軟件,總體感覺這個工具對solaris系統的內存的分析比較細,對我們解決內存方面瓶頸時,應該有很大的幫助。
本人聲明如需轉載請保留如下信息:
作者:SOLARIS小兵
MAIL:[email protected]
FROM:WWW.CHINAUNIX.NET
一、軟件安裝系統環境:
1、系統硬件:SUN F280 solaris8
2、操作系統:#uname -a
SunOS db1 5.8 Generic_117350-02 sun4u sparc SUNW,Sun-Fire-280R
二、 memtool軟件:
1、 軟件下載:
軟件最新版本:RMCmem3.9.4.tar.Z?
下載地址:http://www.solarisinternals.com/si/downloads/_memtool/
2、 RMCmem3.9.4軟件支持版本:
SPARC/Solaris 2.6
SPARC/Solaris 7
SPARC/Solaris 8
SPARC/Solaris 9
x86 /Solaris 8
x86 /Solaris 9
三、memtool軟件安裝:
1、解壓縮軟件:
# uncompress RMCmem3.9.4.tar.Z
# tar xvf RMCmem3.9.4.tar
2、軟件安裝:
# pkgadd -d . RMCmem
注意:就在當前目錄下執行pkgadd,千萬不要到RMCmem下執行 pkgadd。
按照安裝提示,正確安裝軟件即可。
下面是安裝細節
Do you want to join the MemTool mailing list ? yes
Enter your email address > [email protected]
Enter your name or company > mbi
Do you want the kernel module loaded now? yes
Do you want to install the module loader in /etc/rc2.d? yes
使用作為包的基本目錄
## 正在處理軟件包信息.
## 正在處理系統信息.
## 檢查磁盤空間需求
## 檢查同已經安裝的軟件包之間的沖突.
## 檢查setuid/setgid程序。
在這個軟件包中包含了正文程序,只有具有超級-用戶的權限才能在這個軟件包的安裝過程中執行它們.
要繼續安裝嗎? Yes
安裝The MemTool Package成為
手動load系統driver
# /opt/RMCmem/drv/bunyipload
3、 memtool軟件卸載
#pkgrm RMCmem
4、 memtool可以手動安裝使用:(用pkgadd安裝不成功的情況下使用)
#cd /export/home/soft/mem/RMCmem/reloc/RMCmem/drv
# ls
5.6 5.7 5.8 5.9 bunyipload bunyipunload
# chmod 755 *
# ./bunyipload
可以直接執行使用:
#/export/home/soft/mem/RMCmem/reloc/RMCmem/bin/5.8/sparcv9
#./mem
在圖形界面下可以使用:
#./memtool
5、memtool安裝目錄:
memtool安裝根目錄:/opt/RMCmem/bin
MEMTOOL軟件的安裝結束。
五、Memtool軟件使用:
注意:需要在PATH裡面加入/opt/RMCmem/bin/
1、使用prtmem命令,檢查系統總內存和內存的分配使用情況:
# prtmem
Total memory: 1959 Megabytes
Kernel Memory: 174 Megabytes
Application: 961 Megabytes
Executable & libs: 25 Megabytes
File Cache: 290 Megabytes
Free, file cache: 294 Megabytes
Free, free: 211 Megabytes
2、使用mem命令,整個系統的性能監控,功能和top差不多。
#mem
3、使用pmem命令,檢查某一個進程的內存使用的細節:
從上面的命令可以發現,PID為2788的java進程占用的內存資源比較大,我們可以詳細的使用pmem命令詳細的分析2788的內存分配和使
用。
# pmem 2788
2788: /app/jdk141_03/bin/java -client -Xms32m -Xmx200m -XX:MaxPermSize=128m
Address Kbytes Resident Shared Anon Permissions Mapped File
00010000 40 40 40 - read/exec java
00028000 8 8 - 8 read/write/exec java
0002A000 54320 54128 - 54128 read/write/exec [ heap ]
B87FC000 24 24 - 24 read/write [ anon ]
B88FA000 32 32 - 32 read/write [ anon ]
B89FC000 24 24 - 24 read/write [ anon ]
備注:這個命令和/usr/proc/bin/pmap –x命令的功能是一樣的。
4、使用memps命令可以監控節點的buffer cache緩沖內存:
(The list of VNODE’s in the UFS buffer cache can be displayed with the memps)
# memps -m |more
Size InUse E/F Filename
94592k 31944k F /db (inode 152073)
29968k 29504k F /app (inode 39502)
22920k 19992k F /app (inode 602679)
15264k 11848k E /export/home/oracle/ora82/bin/oracle
14680k 16k F /tmp (inode 4555208)
11848k 7512k F / (inode 78955)
11576k 8k F /export/home (inode 5895)
11056k 0k F /export/home (inode 5891)
10664k 5136k F /export/home/soft/RMCmem3.9.4.tar
7240k 0k F /usr (inode 507730)
7168k 0k F /export/home (inode 1244920)
6360k 6328k F /var/sadm/install/t.contents
4944k 0k F /export/home (inode 5890)
4840k 512k F / (inode 371729)
4696k 3920k F /app (inode 107044)
4648k 1624k F / (inode 405755)
4360k 2696k F / (inode 405702)
3952k 680k F /db (inode 152068)
3888k 0k E /export/home/oracle/ora82/lib/libclntsh.so.8.0
3680k 0k F /usr (inode 281649)
3184k 8k E /usr (inode 237176)
3168k 2568k F /export/home/soft/RICHPse.tar
3016k 2640k E /app/jdk141_03/jre/lib/sparc/client/libjvm.so
3008k 1448k F / (inode 281713)
2808k 0k E /usr (inode 338009)
2680k 360k F /db/oradata/ora82/system01.dbf
2664k 0k F /digital/mydomain/applications/app.jar
2568k 0k F /export/home (inode 1244921)
5、使用prtswap命令可以監控,系統swap使用:
# prtswap
Virtual Swap:
---------------------------------------------------------------
Total Virtual Swap Configured: 5627MB
Total Virtual Swap Reserved: 1385MB
Total Virtual Swap Free: (programs will fail if 0) 4242MB
Physical Swap Utilization: (pages swapped out)
---------------------------------------------------------------
Physical Swap Configured: 4096MB
Physical Swap Free (programs will be locked in if 0): 4096MB
6、使用命令prtlibs,監控系統類庫使用內存:
# prtlibs
Library (.so) Memory: 3056 K-Bytes
六、MEMTOOL圖形工具
1、 memtool主界面:
#./memtool&
2、Process Memory
可以顯示每個進程的詳細內存使用分配:
3、Process Matrix
(可以顯示進程和映射文件的關系)
4、GUI Options(圖形界面下的一些選項,可以自定義排序規則等)
歡迎大家補充和交流
END.
有些使用界面圖片無法上傳,感興趣的可以給我發郵件,我可以email給你詳細的word文檔。