Skip to content

Instantly share code, notes, and snippets.

@dmitriykuptsov
Last active August 29, 2015 14:21
Show Gist options
  • Save dmitriykuptsov/4f6faadbcd7b3415d202 to your computer and use it in GitHub Desktop.
Save dmitriykuptsov/4f6faadbcd7b3415d202 to your computer and use it in GitHub Desktop.

Revisions

  1. dmitriykuptsov renamed this gist Jun 8, 2015. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. dmitriykuptsov created this gist May 24, 2015.
    37 changes: 37 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,37 @@
    #!/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 )