Operating system 查看Solaris上内存使用情况的综合方法

Operating system 查看Solaris上内存使用情况的综合方法,operating-system,solaris,sysadmin,Operating System,Solaris,Sysadmin,在Linux上,“top”命令显示内存使用情况的详细但高级概述,显示: 总内存、已用内存、可用内存、缓冲区使用情况、缓存使用情况、交换大小和交换使用情况 我的问题是,有哪些命令可以清晰、简单地显示这些内存使用率数据?如果它们出现在Solaris的“核心”安装中,则可获得额外点数sar不算在内:)“top”通常在Solaris上可用 如果没有,则返回到大多数UNIX系统上可用的“vmstat” 它应该是这样的(在AIX框中) 命令 系统配置:lcpu=4 mem=12288MB ent=2.00

在Linux上,“top”命令显示内存使用情况的详细但高级概述,显示:

总内存、已用内存、可用内存、缓冲区使用情况、缓存使用情况、交换大小和交换使用情况

我的问题是,有哪些命令可以清晰、简单地显示这些内存使用率数据?如果它们出现在Solaris的“核心”安装中,则可获得额外点数sar不算在内:)

“top”通常在Solaris上可用

如果没有,则返回到大多数UNIX系统上可用的“vmstat”

它应该是这样的(在AIX框中)

命令 系统配置:lcpu=4 mem=12288MB ent=2.00 kthr内存页故障cpu ----- ----------- ------------------------ ------------ ----------------------- r b avm fre re pi po fr sr cy在sy cs us sy id wa pc ec中 2 1 1614644 585722 0 0 1 22 104 0 808 29047 2767 12 8 77 3 0.45 22.3 colums的“avm”和“fre”告诉你总内存和空闲内存


一个“man-vmstat”应该能让你获得血淋淋的细节。

Top可以从源代码中编译,也可以从sunfreeware.com下载。如前所述,vmstat是可用的(我相信它在核心安装中?)。

以下是一些基本信息。不过,我不确定这些是否算作“清晰而简单”

ps(1)

$ vmstat 5 5 
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr rm s3 -- --   in   sy   cs us sy id
 0 0 0 535832 219880  1   2  0  0  0  0  0 -0  0  0  0  402   19   97  0  1 99
 0 0 0 514376 203648  1   4  0  0  0  0  0  0  0  0  0  402   19   96  0  1 99
^C
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP       
  1852 martin   4840K 3600K cpu0    59    0   0:00:00 0.3% prstat/1
  1780 martin   9384K 2920K sleep   59    0   0:00:00 0.0% sshd/1
  ...
对于流程级视图:

$ ps -opid,vsz,rss,osz,args
  PID  VSZ  RSS   SZ COMMAND
 1831 1776 1008  222 ps -opid,vsz,rss,osz,args
 1782 3464 2504  433 -bash
$
vsz/vsz:总虚拟进程大小(kb)

rss/rss:常驻集大小(kb,可能不准确(!),请参阅man)

osz/SZ:内存中的总大小(页)

要从页面计算字节大小,请执行以下操作:

$ sz_pages=$(ps -o osz -p $pid | grep -v SZ )
$ sz_bytes=$(( $sz_pages * $(pagesize) ))
$ sz_mbytes=$(( $sz_bytes / ( 1024 * 1024 ) ))
$ echo "$pid OSZ=$sz_mbytes MB"
vmstat(1M)

$ vmstat 5 5 
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr rm s3 -- --   in   sy   cs us sy id
 0 0 0 535832 219880  1   2  0  0  0  0  0 -0  0  0  0  402   19   97  0  1 99
 0 0 0 514376 203648  1   4  0  0  0  0  0  0  0  0  0  402   19   96  0  1 99
^C
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP       
  1852 martin   4840K 3600K cpu0    59    0   0:00:00 0.3% prstat/1
  1780 martin   9384K 2920K sleep   59    0   0:00:00 0.0% sshd/1
  ...
prstat(1M)

$ vmstat 5 5 
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr rm s3 -- --   in   sy   cs us sy id
 0 0 0 535832 219880  1   2  0  0  0  0  0 -0  0  0  0  402   19   97  0  1 99
 0 0 0 514376 203648  1   4  0  0  0  0  0  0  0  0  0  402   19   96  0  1 99
^C
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP       
  1852 martin   4840K 3600K cpu0    59    0   0:00:00 0.3% prstat/1
  1780 martin   9384K 2920K sleep   59    0   0:00:00 0.0% sshd/1
  ...
交换(1)

$ vmstat 5 5 
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr rm s3 -- --   in   sy   cs us sy id
 0 0 0 535832 219880  1   2  0  0  0  0  0 -0  0  0  0  402   19   97  0  1 99
 0 0 0 514376 203648  1   4  0  0  0  0  0  0  0  0  0  402   19   96  0  1 99
^C
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP       
  1852 martin   4840K 3600K cpu0    59    0   0:00:00 0.3% prstat/1
  1780 martin   9384K 2920K sleep   59    0   0:00:00 0.0% sshd/1
  ...
“长列表”和“摘要”模式:

顶部(1)

$ vmstat 5 5 
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr rm s3 -- --   in   sy   cs us sy id
 0 0 0 535832 219880  1   2  0  0  0  0  0 -0  0  0  0  402   19   97  0  1 99
 0 0 0 514376 203648  1   4  0  0  0  0  0  0  0  0  0  402   19   96  0  1 99
^C
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP       
  1852 martin   4840K 3600K cpu0    59    0   0:00:00 0.3% prstat/1
  1780 martin   9384K 2920K sleep   59    0   0:00:00 0.0% sshd/1
  ...
Sun提供的Solaris companion CD上有一个较旧的版本(3.51),声明“支持社区(非Sun)”。 更新的二进制软件包可从sunfreeware.com或blastwave.org获得

load averages:  0.02,  0.00,  0.00;                      up 2+12:31:38                                                                                            08:53:58
31 processes: 30 sleeping, 1 on cpu
CPU states: 98.0% idle,  0.0% user,  2.0% kernel,  0.0% iowait,  0.0% swap
Memory: 1024M phys mem, 197M free mem, 512M total swap, 512M free swap

   PID USERNAME LWP PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND
  1898 martin     1  54    0 3336K 1808K cpu      0:00  0.96% top
     7 root      11  59    0   10M 7912K sleep    0:09  0.02% svc.startd
sar(1M)

$ vmstat 5 5 
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr rm s3 -- --   in   sy   cs us sy id
 0 0 0 535832 219880  1   2  0  0  0  0  0 -0  0  0  0  402   19   97  0  1 99
 0 0 0 514376 203648  1   4  0  0  0  0  0  0  0  0  0  402   19   96  0  1 99
^C
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP       
  1852 martin   4840K 3600K cpu0    59    0   0:00:00 0.3% prstat/1
  1780 martin   9384K 2920K sleep   59    0   0:00:00 0.0% sshd/1
  ...

还有,
sar有什么问题吗?:)

命令
free
很好。理解“+/-buffers/cache”需要一段时间,但是在计算“free”时,cache和buffers实际上并不重要,因为它可以立即转储。因此,要查看您有多少可用(和已使用)内存,您需要删除缓存/缓冲区使用情况—这对您来说很方便。

“vmstat-v”看起来最符合要求<代码>#vmstat-v用法:vmstat[-cipqs][disk…][interval[count]]
此外,vmstat编号也不是很清楚-缓存使用了多少内存?用户模式进程使用了多少?free是一个Linux命令,而不是Solaris命令。您必须是root才能运行该命令