@Khedron පවසන පරිදි , ඔබට මෙම තොරතුරු ක්රියාකාරකම් මොනිටරයෙන් දැකිය හැකිය.
ඔබට එය විධාන රේඛාවට අවශ්ය නම්, වයර්, සක්රිය, අක්රීය සහ නිදහස් මතක ප්රමාණයන් ඔබට පෙන්වීම සඳහා මා විසින් ලියන ලද පයිතන් පිටපතක් (හෝ වෙනත් අයෙකුගෙන් වෙනස් කර ඇත, මට මතක නැත, එය දැන් තරමක් පැරණි ය):
#!/usr/bin/python
import subprocess
import re
# Get process info
ps = subprocess.Popen(['ps', '-caxm', '-orss,comm'], stdout=subprocess.PIPE).communicate()[0].decode()
vm = subprocess.Popen(['vm_stat'], stdout=subprocess.PIPE).communicate()[0].decode()
# 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 ))
ඔබට පෙනෙන පරිදි, ඔබට vm_stat
විධාන රේඛාවෙන් ඇමතිය හැකිය , එය පිටු 4kB වලින් ගණන් කළද, එම නිසා ස්ක්රිප්ට් එක MB බවට පරිවර්තනය වේ.
සැසඳීම සඳහා සියලු ධාවන ක්රියාවලීන්හි “සැබෑ මතකය” භාවිතය ද ස්ක්රිප්ට් ගණනය කරයි (මෙය සමස්ත මතක සංඛ්යාලේඛනවලින් නිශ්චිත අගයකට නොගැලපේ, මන්ද මතකය සංකීර්ණ තිරිසනෙකි).
මගේ පද්ධතියේ ස්ක්රිප්ටයේ ප්රතිදානය පිළිබඳ උදාහරණයක් මෙන්න:
[user@host:~] % memReport.py
Wired Memory: 1381 MB
Active Memory: 3053 MB
Inactive Memory: 727 MB
Free Memory: 1619 MB
Real Mem Total (ps): 3402.828 MB
(StackExchange හි ටැබ් ප්රමාණයට ගැලපෙන පරිදි තරමක් සකස් කර ඇත;)