다음에서 가져온 스크립트를 사용하세요.장소
#!/usr/bin/ksh
# Available memory
memory=`prtconf | grep Memory | head -1 | awk 'BEGIN {FS=" "} {print $3}'`
gb_memory=`echo "scale=2; $memory/1024" | bc -l`
# Free memory
pagesize=`pagesize`
kb_pagesize=`echo "scale=2; $pagesize/1024" | bc -l`
sar_freemem=`sar -r 1 1 | tail -1 | awk 'BEGIN {FS=" "} {print $2}'`
gb_freemem=`echo "scale=2; $kb_pagesize*$sar_freemem/1024/1024" | bc -l`
# Used Memory
gb_usedmem=`echo "scale=2; $gb_memory-$gb_freemem" | bc -l`
# Conclusion
echo "Avai Mem: $gb_memory GB"
echo "Free Mem: $gb_freemem GB"
echo "Used Mem: $gb_usedmem GB"
메모리를 많이 사용하는 걸 보니
Avai Mem: 7.25 GB
Free Mem: .62 GB
Used Mem: 6.63 GB
top 명령을 사용하면 대부분의 "ram eat" 프로세스가 144M의 RAM을 사용하지만 690M의 RAM만 사용 가능하다는 것을 알 수 있습니다. 이는 약간 이상합니다. 심지어 다른 RSS 프로세스를 세어봐도 여전히 시스템이 더 많은 RAM을 사용하는 방법을 이해할 수 없습니다. 4GB 이상의 램.
last pid: 15109; load avg: 0.08, 0.08, 0.07; up 2+00:33:21 15:25:40
88 processes: 87 sleeping, 1 on cpu
CPU states: 94.4% idle, 1.3% user, 4.3% kernel, 0.0% stolen, 0.0% swap
Kernel: 1031 ctxsw, 633 trap, 769 intr, 2053 syscall, 617 flt
Memory: 7430M phys mem, 690M free mem, 1024M total swap, 1024M free swap
PID USERNAME NLWP PRI NICE SIZE RES STATE TIME CPU COMMAND
879 root 17 59 0 209M 142M sleep 8:11 0.32% sstored
1267 root 43 59 0 129M 30M sleep 0:04 0.01% fmd
14774 root 64 59 0 90M 64M sleep 0:04 0.24% pkg.depotd
14810 root 64 59 0 90M 63M sleep 0:04 0.25% pkg.depotd
14792 root 64 59 0 87M 60M sleep 0:04 0.24% pkg.depotd
15 root 36 59 0 80M 47M sleep 1:23 0.67% svc.configd
13 root 14 59 0 39M 7272K sleep 0:07 0.01% svc.startd
1448 root 12 59 0 28M 7152K sleep 0:14 0.01% sysstatd
1483 _polkitd 6 59 0 25M 196K sleep 0:00 0.00% polkitd
1465 pkg5srv 27 59 0 24M 2228K sleep 0:00 0.00% httpd
4962 pkg5srv 27 59 0 24M 4672K sleep 0:00 0.00% httpd
1461 pkg5srv 27 59 0 24M 4032K sleep 0:00 0.00% httpd
1464 pkg5srv 27 59 0 24M 3516K sleep 0:00 0.00% httpd
1032 webservd 27 59 0 24M 3668K sleep 0:00 0.00% httpd
1045 webservd 27 59 0 24M 3484K sleep 0:00 0.00% httpd
1041 webservd 27 59 0 24M 3480K sleep 0:00 0.00% httpd
1458 pkg5srv 24 59 0 24M 4656K sleep 0:04 0.00% httpd
1012 webservd 18 59 0 23M 7620K sleep 0:04 0.00% httpd
280 root 11 59 0 23M 8360K sleep 0:00 0.00% rad
658 root 31 59 0 23M 5168K sleep 0:07 0.04% nscd
359 daemon 3 59 0 21M 4K sleep 0:00 0.00% colord
560 netadm 8 59 0 18M 4352K sleep 0:02 0.00% nwamd
838 root 3 59 0 18M 3064K sleep 0:00 0.00% zoneadmd
338 root 7 59 0 17M 10M sleep 0:02 0.00% devfsadm
4350 root 1 59 0 17M 4972K sleep 0:01 0.00% sendmail
1469 root 3 59 0 16M 3776K sleep 0:00 0.00% accounts-daemon
ps=활성 영역이 있지만..실행되지 않습니다.
답변1
@Fox가 의견에서 지적했듯이 ZFS는 기본적으로 IO를 캐시하기 위해 여유 메모리를 사용합니다. 다양한 조정이 있지만 Solaris 11에서 ZFS 성능을 향상시키는 기능을 추가하므로 Solaris를 업그레이드하는 것만으로도 도움이 될 수 있습니다. MOS 설명서를 참조하십시오.Oracle Solaris 11.x에서 ZFS와 응용 프로그램 간의 메모리 관리(문서 ID 1663862.1)정보와 지침을 얻으세요.
Oracle 외부의 일부 ZFS Reco에 대해서는 다음을 참조하십시오. https://constantin.glez.de/2010/04/28/ten-ways-to-easily-improve-oracle-solaris-zfs-filesystem-performance/#ssdread
또한 데이터 세트에 중복 제거를 사용하면 상당한 양의 메모리를 사용하게 됩니다.