回答:
@khedronが言うように、この情報はアクティビティモニターで確認できます。
コマンドラインでそれが必要な場合は、有線、アクティブ、非アクティブ、空きメモリ量を表示するために私が書いた(またはおそらく他の誰かから変更された、覚えていない、今ではかなり古い)Pythonスクリプトがあります:
#!/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のタブのサイズに合わせてわずかに調整されています;)
ps -caxm -orss= | awk '{ sum += $1 } END { print "Resident Set Size: " sum/1024 " MiB" }'
必要なコマンドはvm_stat
-従来のUnixツールに似ていますvmstat
が、MACH固有の違いがいくつかあります。マニュアルページはよく書かれています。
遅い理由はtop -l 1
、完了後常に標準の遅延である1秒の遅延があるためです。コマンドに-s 0を追加すると、すぐに完了します。
top -l 1 -s 0 | grep PhysMem
また、わかりやすくするために、行に各mem-componentを表示するのが好きなので、sed置換文字列の 'PhysMem:'に合わせて9つのスペースを追加しました。
top -l 1 -s 0 | grep PhysMem | sed 's/, /\n /g'
vm_stat
です。
top
は呼び出しよりも大幅に遅くなりますvm_stat
が、top
抽出の冗長性ははるかに低く、単位はメガバイトでページではありません。さらに冗長にするために、改行を削除し、結果をにawk
置き換えることができます。grep
top -l 1 | grep ^PhysMem
page
ユニットで結果を出さない/ユニットを解釈可能にするためにある種のハッキング後処理を必要としない。
以下は、vm_stat
出力全体をより人間に優しいものにするための簡単なワンライナーです。
$ vm_stat | perl -ne '/page size of (\d+)/ and $size=$1; /Pages\s+([^:]+)[^\d]+(\d+)/ and printf("%-16s % 16.2f Mi\n", "$1:", $2 * $size / 1048576);'
free: 2330.23 Mi
active: 2948.07 Mi
inactive: 1462.97 Mi
speculative: 599.45 Mi
wired down: 840.46 Mi
copy-on-write: 43684.84 Mi
zero filled: 385865.48 Mi
reactivated: 608.14 Mi
free
Mac OS Xに似た端末コマンドがあります...top
詳細については、このAppleサポートドキュメントをご覧ください。
htop
ただ、服用@zackからソリューションを、非アクティブと投機的なブロックを追加。
#!/bin/bash
FREE_BLOCKS=$(vm_stat | grep free | awk '{ print $3 }' | sed 's/\.//')
INACTIVE_BLOCKS=$(vm_stat | grep inactive | awk '{ print $3 }' | sed 's/\.//')
SPECULATIVE_BLOCKS=$(vm_stat | grep speculative | awk '{ print $3 }' | sed 's/\.//')
FREE=$((($FREE_BLOCKS+SPECULATIVE_BLOCKS)*4096/1048576))
INACTIVE=$(($INACTIVE_BLOCKS*4096/1048576))
TOTAL=$((($FREE+$INACTIVE)))
echo Free: $FREE MB
echo Inactive: $INACTIVE MB
echo Total free: $TOTAL MB
free="$(( $(vm_stat | awk '/free/ {gsub(/\./, "", $3); print $3}') * 4096 / 1048576)) MiB free"
tcsh
(デフォルト)またはで動作しませんsh
。コマンドはシェル固有ですか?
bash
とksh
特定。tcsh
試してみてくださいset freeblocks=`vm_stat | grep free | awk '{ print $3 }' | sed 's/\.//'` ; set freeMB=`expr $freeblocks \* 4096 / 1048576`; set free=`echo $freeMB MiB free`
。その後echo $free
、空きメモリの量を印刷することができます。エイリアスを作成することもできますalias free echo $freeMB MiB free
。
Mac OS Xで配布されているものとまったく同じものはありませんが、情報を取得する方法は他にもいくつかあります。
system_profiler
-シェルにMacのシステムプロファイル情報をすべて表示します sysctl -a | grep mem
またはsysctl hw.memsize
(合計メモリ)上記は私の好みにはあまりにも多くの努力であり、あなたも完全にインストールされていることを前提としています... Mac OS X起動ディスクから起動した場合、上記のすべてのソリューションは明らかに動作しません。 ..コマンド "hostinfo"を使用するだけで、Mavericks(10.9.1)を実行している2012年半ばのMBAirからの出力を次に示します。
Mach kernel version:
Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu-2422.1.72~6/RELEASE_X86_64
Kernel configured for up to 4 processors.
2 processors are physically available.
4 processors are logically available.
Processor type: i486 (Intel 80486)
Processors active: 0 1 2 3
Primary memory available: 8.00 gigabytes
Default processor set: 195 tasks, 961 threads, 4 processors
Load average: 1.61, Mach factor: 2.38
このコマンドの優れた点は、10.9インストーラーにもプリインストールされている/usr/bin
ことです。したがって、非常に便利です。
理想的には、RAMのみが必要な場合は、次を発行します。
$ hostinfo | grep memory
ただし、hostinfoが以前のOSに存在するかどうかはわかりません...
hostinfo
表示されますか?
top -l 1 -s 0 | awk ' /Processes/ || /PhysMem/ || /Load Avg/{print}'
これはうまくいくはずです:)
最近はpsutil
、そのmeminfo.py
スクリプトが最も役立つメモリ使用量の詳細を提供していると思います。試すには:
pip install psutil
curl -O https://raw.githubusercontent.com/giampaolo/psutil/master/scripts/meminfo.py
python ./meminfo.py
生成される出力は次のようになります。
MEMORY
------
Total : 16.0G
Available : 5.5G
Percent : 65.8
Used : 13.5G
Free : 1.5G
Active : 7.4G
Inactive : 4.0G
Wired : 2.1G
SWAP
----
Total : 1.0G
Used : 33.5M
Free : 990.5M
Percent : 3.3
Sin : 15.9G
Sout : 71.6M
Available
行に注目してください。これは、スワップせずに、新しいアプリケーションを開始するために実際に使用可能なメモリ量を 示しています。
使用可能なメモリの見積もりを提供する他のMacOSユーティリティは知りません。
比較のため:Linuxシステムではavailable
、現在のバージョンの出力の列に同じ種類の情報が表示されますfree
:
total used free shared buff/cache available
Mem: 7.8G 552M 182M 156M 7.1G 6.9G
Swap: 0B 0B 0B
Total: 7.8G 552M 182M
出力のそのavailable
列free
は、から来てMemAvailable
い/proc/meminfo
ます。また、があるシステムでは/proc/meminfo
、psutilはそれを使用して利用可能なメモリを推定するだけです。
しかし、MacOSにはない/proc/meminfo
ので、その場合の使用可能なメモリを推定するために、 psutilはLinuxで使用されるのと同じアルゴリズムを使用してを計算MemAvailable
し/proc/meminfo
ます。
memory_pressure
コマンドを試すことができます。システムの出力を見る(i5、4 GB RAM)
The system has 2147483648 (524288 pages with a page size of 4096).
Stats:
Pages free: 90009
Pages purgeable: 139593
Pages purged: 7496548
Swap I/O:
Swapins: 470466
Swapouts: 530913
Page Q counts:
Pages active: 407739
Pages inactive: 148277
Pages speculative: 16200
Pages throttled: 0
Pages wired down: 263064
Compressor Stats:
Pages used by compressor: 122815
Pages decompressed: 7327420
Pages compressed: 17625795
File I/O:
Pageins: 1538997
Pageouts: 86692
System-wide memory free percentage: 63%
これは、この投稿の2回目の再発行です。最初は2つありました-1
。1つは、英語で説明していないため、修正されています。もう1つはgawk
(標準のOS Xインストールの一部ではない)を使用したためawk
です。これも修正され、現在はを使用しています。ザ・は-2
;-)まだそこにあります。最良の方法は、おそらくコマンド自体をテストして評価することでしょうか?
フレンドリーで高度に設定可能なディスプレイを備えたエンドユーザー向けコマンドを1つだけ作成するという最初のアイデアを検討し、2つ作成しました。
free-like.sh
スクリプトは常に「エンドユーザー」指向で、より正確で、「フレンドリー」で構成可能なディスプレイですが、より多くの計算とリソース消費があります。
free-like-raw.sh
、コマンド指向の開発者、システム管理者など。計算量とリソース消費量は少ないが、精度も低く、「使いやすい」表示も少ない。
物理メモリのデータは、コマンドvm_stat
の結果(ブロックサイズで結果を返す)から抽出されます。バイト単位の変換の結果の不正確さ(number_of_blocks * block_size、計算のデフォルト値)は、0 <ブロックのサイズの間です。仮想メモリのデータはtop
コマンドから取得されます。ここでの不正確さは、top
コマンドの参照単位であるキロ、メガ、ギガにリンクしています。
計算は、awk
(に対してbc
)丸められた点を使用して行われます。awk
もより速いですbc
。テストスクリプトはここで見ることができます:http : //myblog.robert.sebille.name/article29.html#awk-bc
コマンドの結果は、バイト(デフォルト)、キロ、メガ、またはギガで表示でき、free-like.shの場合は小数点以下x桁、メガouギガで表示する場合は表示できます。
スクリプトは投稿するには長すぎますが、私のブログのこの記事で見つけることができます:http : //myblog.robert.sebille.name/article29.html
この記事はフランス語ですが、各コマンドとその統合ヘルプ(./free-like.sh -h
および./free-like-raw.sh -h
)の表示例が英語で表示されます。これらの補助は、コマンドを完全に説明しています。記事にはコードも表示されます。
英語は私の母国語ではありません。誰かが統合ヘルプのエラーを修正したい場合、彼は大歓迎です;)。
あなたのもの。
gawk
、標準のOS Xインストールの一部ではないスクリプトが必要なようです。
これは私の$ PS1で実行されます。
https://github.com/vigo/dotfiles-universal/blob/master/prompts/free_memory
(Rubyバージョン:https : //github.com/vigo/dotfiles-universal/blob/master/prompts%2Ffree_memory.rb)
vm_stat
キロバイト単位で表示します。
以下のonelinerはメガバイト単位で表示されます。
paste <(vm_stat | awk 'NR>1' | grep -o ".*:") <(for i in $(vm_stat | awk 'NR>1' | tr -d '.' | awk '{print $NF}'); do perl -e "print $i/1024" | awk '{printf "%0.2f", $0}'; echo; done) | column -s: -t
返却値:
Pages free 11.06
Pages active 798.25
Pages inactive 776.03
Pages speculative 9.15
Pages throttled 0.00
Pages wired down 303.27
Pages purgeable 0.95
"Translation faults" 82172.66
Pages copy-on-write 11629.60
Pages zero filled 27685.41
Pages reactivated 1450.70
Pages purged 91.66
File-backed pages 430.20
Anonymous pages 1153.24
Pages stored in compressor 481.75
Pages occupied by compressor 149.91
Decompressions 1277.92
Compressions 1622.33
Pageins 13198.02
Pageouts 66.61
Swapins 54.34
Swapouts 90.63
場合は、osxでフィッシュシェルを使用し、フィッシャーのパッケージマネージャーを使用します。
次の拡張機能を作成しました:https : //github.com/fisherman/free
これは、osxの無料コマンドの完全なやり直しです。自分で見る
> free
total used free appmem wired compressed
Mem: 8.00Gb 6.65Gb 1.95Gb 2.87Gb 2.09Gb 1.86Gb
+/- Cache: 1.24Gb 1.87Gb
Swap(43%): 2048Mb 877Mb 1171Mb
Load Avg: 1.63 1.95 1.95