mac下没有linux/unix 的vmstat,只有vm_stat;

sh-3.2# vm_stat
Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free: 191876.
Pages active: 433086.
Pages inactive: 141819.
Pages speculative: 23119.
Pages throttled: 0.
Pages wired down: 254606.
Pages purgeable: 11895.
"Translation faults": 20445131.
Pages copy-on-write: 1435992.
Pages zero filled: 10414067.
Pages reactivated: 39459.
Pages purged: 23388.
File-backed pages: 172905.
Anonymous pages: 425119.
Pages stored in compressor: 12595.
Pages occupied by compressor: 3399.
Decompressions: 5824.
Compressions: 26966.
Pageins: 1626450.
Pageouts: 4218.
Swapins: 1487.
Swapouts: 5130.

不想用下面这个复杂top命令

sh-3.2# top -l 1 -s 0 | grep PhysMem
PhysMem: 3277M used (992M wired), 817M unused.



用下面这个python

#!/usr/bin/python
 
import subprocess
import re
 
# Get process info
ps = subprocess.Popen([ 'ps' , '-caxm' , '-orss,comm' ], stdout = subprocess.PIPE).communicate()[ 0 ]
vm = subprocess.Popen([ 'vm_stat' ], stdout = subprocess.PIPE).communicate()[ 0 ]
 
# Iterate processes
processLines = ps.split( '\n' )
sep = re. compile ( '[\s]+' )
rssTotal = 0 # kB
for row in range ( 1 , len (processLines)):
     rowText = processLines[row].strip()
     rowElements = sep.split(rowText)
     try :
         rss = float (rowElements[ 0 ]) * 1024
     except :
         rss = 0 # ignore...
     rssTotal + = rss
 
# Process vm_stat
vmLines = vm.split( '\n' )
sep = re. compile ( ':[\s]+' )
vmStats = {}
for row in range ( 1 , len (vmLines) - 2 ):
     rowText = vmLines[row].strip()
     rowElements = sep.split(rowText)
     vmStats[(rowElements[ 0 ])] = int (rowElements[ 1 ].strip( '\.' )) * 4096
 
print 'Wired Memory:\t\t%d MB' % ( vmStats[ "Pages wired down" ] / 1024 / 1024 )
print 'Active Memory:\t\t%d MB' % ( vmStats[ "Pages active" ] / 1024 / 1024 )
print 'Inactive Memory:\t%d MB' % ( vmStats[ "Pages inactive" ] / 1024 / 1024 )
print 'Free Memory:\t\t%d MB' % ( vmStats[ "Pages free" ] / 1024 / 1024 )
print 'Real Mem Total (ps):\t%.3f MB' % ( rssTotal / 1024 / 1024 )

Wired Memory: 1013 MB
Active Memory: 1951 MB
Inactive Memory: 573 MB
Free Memory: 423 MB
Real Mem Total (ps): 3180.027 MB

mac下vmstat


Logo

更多推荐