使用取自本网站的脚本
#!/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"
我看到使用了很多 ram
Avai Mem: 7.25 GB
Free Mem: .62 GB
Used Mem: 6.63 GB
使用 top 命令,我看到最“吃内存”的进程使用 144M 的内存,但只有 690M 的内存是免费的,这有点奇怪,即使计算其他 rss 进程我仍然不明白系统如何使用超过 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=有一个区域处于活动状态,但是..没有运行
正如@Fox 在评论中指出的那样,默认情况下可能是 ZFS 使用空闲内存来缓存 IO。有各种调整,但仅升级 Solaris 可能会有所帮助,因为它们添加了一些特性来帮助 Solaris 11 中的 ZFS 性能。参考 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
此外,如果您在任何数据集上使用 dedup,它将使用大量内存。