在linux中,mem是指物理內存,是由于安裝內存條而獲得的臨時儲存空間,主要作用是在計算機運行時為操作系統和各種程序提供臨時儲存。linux系統的物理內存被劃分為許多相同大小的部分,也稱作內存頁;內存頁的大小取決于CPU的架構和操作系統的配置,一般為4KB。
本教程操作環境:linux7.3系統、Dell G3電腦。
linux mem是什么
mem 是物理內存,是指由于安裝內存條而獲得的臨時儲存空間。 主要作用是在計算機運行時為操作系統和各種程序提供臨時儲存。
當物理內存即將溢出時,會將內存中不常用的內存轉移到SWAP中 等到物理內存空余,并且swap的內存活躍后才轉移回來
free?-m
-
mem:表示物理內存統計
-
buff/cache:表示物理內存的緩存統計
-
swap:表示硬盤上交換分區的使用情況
系統當前真正可用的內存并不是第一行 free 標記的,他僅代表未被分配的內存
系統的物理內存被劃分為許多相同大小的部分,也稱作內存頁。內存頁的大小取決于CPU的架構和操作系統的配置,一般為4KB。物理內存的使用主要分為以下幾方面:
(1)內核使用
? ? ? ? 操作系統啟動時,位于/boot目錄下的壓縮內核文件會被加載到內存中并解壓。這部分內容在系統允許期間都會常駐在內存的起始位置。
(2)slab分配器? ? ? ?
? ? ? ? 操作系統的運行還需要更多的空間來分配給管理進程、文件描述符、socket和加載的內和模塊等內容。所以內核會通過slab分配器動態分配內存。
?PS:slab是Linux操作系統的一種內存分配機制。其工作是針對一些經常分配并釋放的對象,如進程描述符等,這些對象的大小一般比較小,如果直接采用brk系統調用來進行分配和釋放,不僅會造成大量的碎片,而且也會影響性能。而slab分配器是基于對象進行管理的,相同類型的對象歸為一類(如進程描述符就是一類),每當要申請這樣一個對象,slab分配器就從一個slab列表中分配一個這樣大小的單元出去,而當要釋放時,將其重新保存在該列表中,而不是直接返回給操作系統,從而避免這些出現內存碎片。slab分配器并不丟棄已分配的對象,而是釋放并把它們保存在內存中。當以后又要請求新的對象時,就可以從內存直接獲取而不用重復初始化。可以在/proc/meminfo中查看當前slab分配器中的內存大小。
(3)進程使用? ? ? ??
? ? ? ? 除去內核使用的部分,所有的進程都需要分配物理內存頁給它們的代碼、數據和堆棧。進程消耗的這些物理內存被稱為“駐留內存”,RSS。
(4)頁緩存page cache
? ? ? ? 除去在內核和進程使用的部分,物理內存剩下的部分被稱為頁緩存,page cache。因為磁盤io的速度遠遠低于內存的訪問速度,所以為了加快訪問磁盤數據的速度,頁緩存盡可能的保存著從磁盤讀入的數據。page cache中還有一部分稱為buffer,它的作用是緩存要寫入到磁盤的數據。
? ? ? ? 頁緩存的大小是在一直動態變化的。當系統內存充足時,頁緩存會一直增大;當系統free內存不足時,這時如果有進程申請內存,操作系統會從page cache中回收內存頁進行分配,如果page cache也已不足,那么系統會將當期駐留在內存中的數據置換到事先配置在磁盤上的swap空間中,然后空出來的這部分內存就可以用來分配了。這就是swap交換。
PS:出現swap交換時,數據被置換到swap空間后(swap out),該進程使用的內存量下降,在atop等監控工具中的RGROW列為負值,但這并不表示該進程釋放了內存,當它需要時,這部分數據又會被換入到內存中(swap in)。另外, swap交換往往會帶來磁盤IO的大量消耗,嚴重影響到系統正常的磁盤io。出現大量的swap交換說明系統已經快要不行了,需要重點關注。
查看 Linux 物理內存的方法
方法-1:使用 free 命令
free 顯示系統中空閑和已用的物理內存和交換內存的總量,以及內核使用的緩沖區和緩存。它通過解析 /proc/meminfo 來收集信息。
建議閱讀: free – 在 Linux 系統中檢查內存使用情況統計(空閑和已用)的標準命令
$?free?-m ??????????????total????????used????????free??????shared??buff/cache???available Mem:???????????1993????????1681??????????82??????????81?????????228?????????153 Swap:?????????12689????????1213???????11475 $?free?-g ??????????????total????????used????????free??????shared??buff/cache???available Mem:??????????????1???????????1???????????0???????????0???????????0???????????0 Swap:????????????12???????????1??????????11
方法-2:使用 /proc/meminfo 文件
/proc/meminfo 是一個虛擬文本文件,它包含有關系統 RAM 使用情況的大量有價值的信息。
它報告系統上的空閑和已用內存(物理和交換)的數量。
$?grep?MemTotal?/proc/meminfo MemTotal:????????2041396?kB $?grep?MemTotal?/proc/meminfo?|?awk?'{print?$2?/?1024}' 1993.55 $?grep?MemTotal?/proc/meminfo?|?awk?'{print?$2?/?1024?/?1024}' 1.94683
方法-3:使用 top 命令
top 命令是 Linux 中監視實時系統進程的基本命令之一。它顯示系統信息和運行的進程信息,如正常運行時間、平均負載、正在運行的任務、登錄的用戶數、CPU 數量和 CPU 利用率,以及內存和交換信息。運行 top 命令,然后按下 E 來使內存利用率以 MB 為單位顯示。
建議閱讀: TOP 命令示例監視服務器性能
$?top top?-?14:38:36?up??1:59,??1?user,??load?average:?1.83,?1.60,?1.52 Tasks:?223?total,???2?running,?221?sleeping,???0?stopped,???0?zombie %Cpu(s):?48.6?us,?11.2?sy,??0.0?ni,?39.3?id,??0.3?wa,??0.0?hi,??0.5?si,??0.0?st MiB?Mem?:?1993.551?total,???94.184?free,?1647.367?used,??252.000?buff/cache MiB?Swap:?12689.58+total,?11196.83+free,?1492.750?used.??306.465?avail?Mem? ??PID?USER??????PR??NI????VIRT????RES????SHR?S??%CPU?%MEM?????TIME+?COMMAND???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?9908?daygeek???20???0?2971440?649324??39700?S??55.8?31.8??11:45.74?Web?Content???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 21942?daygeek???20???0?2013760?308700??69272?S??35.0?15.1???4:13.75?Web?Content???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?4782?daygeek???20???0?3687116?227336??39156?R??14.5?11.1??16:47.45?gnome-shell
方法-4:使用 vmstat 命令
vmstat 是一個漂亮的標準工具,它報告 Linux 系統的虛擬內存統計信息。vmstat 報告有關進程、內存、分頁、塊 IO、陷阱和 CPU 活動的信息。它有助于 Linux 管理員在故障檢修時識別系統瓶頸。
建議閱讀: vmstat – 一個報告虛擬內存統計信息的標準且漂亮的工具
$?vmstat?-s?|?grep?"total?memory" ??????2041396?K?total?memory ?????? $?vmstat?-s?-S?M?|?egrep?-ie?'total?memory' ?????????1993?M?total?memory $?vmstat?-s?|?awk?'{print?$1?/?1024?/?1024}'?|?head?-1 1.94683
方法-5:使用 nmon 命令
nmon 是另一個很棒的工具,用于在 Linux 終端上監視各種系統資源,如 CPU、內存、網絡、磁盤、文件系統、NFS、top 進程、Power 的微分區和資源(Linux 版本和處理器)。
只需按下 m 鍵,即可查看內存利用率統計數據(緩存、活動、非活動、緩沖、空閑,以 MB 和百分比為單位)。
建議閱讀: nmon – Linux 中一個監視系統資源的漂亮的工具
┌nmon─14g──────[H?for?help]───Hostname=2daygeek──Refresh=?2secs?───07:24.44─────────────────┐ │?Memory?Stats?─────────────────────────────────────────────────────────────────────────────│ │????????????????RAM?????High??????Low?????Swap????Page?Size=4?KB???????????????????????????│ │?Total?MB?????32079.5?????-0.0?????-0.0??20479.0???????????????????????????????????????????│ │?Free??MB?????11205.0?????-0.0?????-0.0??20479.0???????????????????????????????????????????│ │?Free?Percent????34.9%???100.0%???100.0%???100.0%??????????????????????????????????????????│ │?????????????MB??????????????????MB??????????????????MB????????????????????????????????????│ │??????????????????????Cached=?19763.4?????Active=??9617.7??????????????????????????????????│ │?Buffers=???172.5?Swapcached=?????0.0??Inactive?=?10339.6??????????????????????????????????│ │?Dirty??=?????0.0?Writeback?=?????0.0??Mapped???=????11.0??????????????????????????????????│ │?Slab???=???636.6?Commit_AS?=???118.2?PageTables=?????3.5??????????????????????????????????│ │───────────────────────────────────────────────────────────────────────────────────────────│ │???????????????????????????????????????????????????????????????????????????????????????????│ │???????????????????????????????????????????????????????????????????????????????????????????│ │???????????????????????????????????????????????????????????????????????????????????????????│ │???????????????????????????????????????????????????????????????????????????????????????????│ │???????????????????????????????????????????????????????????????????????????????????????????│ │???????????????????????????????????????????????????????????????????????????????????????????│ └───────────────────────────────────────────────────────────────────────────────────────────┘
方法-6:使用 dmidecode 命令
dmidecode 是一個讀取計算機 DMI 表內容的工具,它以人類可讀的格式顯示系統硬件信息。(DMI 意即桌面管理接口,也有人說是讀取的是 SMBIOS —— 系統管理 BIOS)
此表包含系統硬件組件的描述,以及其它有用信息,如序列號、制造商信息、發布日期和 BIOS 修改等。
建議閱讀: Dmidecode – 獲取 Linux 系統硬件信息的簡便方法
#?dmidecode?-t?memory?|?grep??Size: ????????Size:?8192?MB ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?8192?MB ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?8192?MB ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?8192?MB ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed ????????Size:?No?Module?Installed
只打印已安裝的 RAM 模塊。
#?dmidecode?-t?memory?|?grep??Size:?|?grep?-v?"No?Module?Installed" ????????Size:?8192?MB ????????Size:?8192?MB ????????Size:?8192?MB ????????Size:?8192?MB
匯總所有已安裝的 RAM 模塊。
#?dmidecode?-t?memory?|?grep??Size:?|?grep?-v?"No?Module?Installed"?|?awk?'{sum+=$2}END{print?sum}' 32768
方法-7:使用 hwinfo 命令
hwinfo 意即硬件信息,它是另一個很棒的實用工具,用于探測系統中存在的硬件,并以人類可讀的格式顯示有關各種硬件組件的詳細信息。
它報告有關 CPU、RAM、鍵盤、鼠標、圖形卡、聲音、存儲、網絡接口、磁盤、分區、BIOS 和網橋等的信息。
建議閱讀: hwinfo(硬件信息)– 一個在 Linux 系統上檢測系統硬件信息的好工具
$?hwinfo?--memory 01:?None?00.0:?10102?Main?Memory ??[Created?at?memory.74] ??Unique?ID:?rdCR.CxwsZFjVASF ??Hardware?Class:?memory ??Model:?"Main?Memory" ??Memory?Range:?0x00000000-0x7a4abfff?(rw) ??Memory?Size:?1?GB?+?896?MB ??Config?Status:?cfg=new,?avail=yes,?need=no,?active=unknown
方法-8:使用 lshw 命令
lshw(代表 Hardware Lister)是一個小巧的工具,可以生成機器上各種硬件組件的詳細報告,如內存配置、固件版本、主板配置、CPU 版本和速度、緩存配置、USB、網卡、顯卡、多媒體、打印機、總線速度等。
它通過讀取 /proc 目錄和 DMI 表中的各種文件來生成硬件信息。
建議閱讀: LSHW (Hardware Lister) – 一個在 Linux 上獲取硬件信息的好工具
$?sudo?lshw?-short?-class?memory [sudo]?password?for?daygeek:? H/W?path??????Device???????Class???????Description ================================================== /0/0???????????????????????memory??????128KiB?BIOS /0/1???????????????????????memory??????1993MiB?System?memory
方法-9:使用 inxi 命令
inxi 是一個很棒的工具,它可以檢查 Linux 上的硬件信息,并提供了大量的選項來獲取 Linux 系統上的所有硬件信息,這些特性是我在 Linux 上的其它工具中從未發現的。它是從 locsmif 編寫的古老的但至今看來都異常靈活的 infobash 演化而來的。
inxi 是一個腳本,它可以快速顯示系統硬件、CPU、驅動程序、Xorg、桌面、內核、GCC 版本、進程、RAM 使用情況以及各種其它有用的信息,還可以用于論壇技術支持和調試工具。
建議閱讀: inxi – 一個檢查 Linux 上硬件信息的好工具
$?inxi?-F?|?grep?"Memory" Info:??????Processes:?234?Uptime:?3:10?Memory:?1497.3/1993.6MB?Client:?Shell?(bash)?inxi:?2.3.37
方法-10:使用 screenfetch 命令
screenfetch 是一個 bash 腳本。它將自動檢測你的發行版,并在右側顯示該發行版標識的 ASCII 藝術版本和一些有價值的信息。
建議閱讀: ScreenFetch – 以 ASCII 藝術標志在終端顯示 Linux 系統信息
$?screenfetch ??????????????????????????./+o+-???????daygeek@ubuntu ??????????????????yyyyy-?-yyyyyy+??????OS:?Ubuntu?17.10?artful ???????????????://+//////-yyyyyyo??????Kernel:?x86_64?Linux?4.13.0-37-generic ???????????.++?.:/++++++/-.+sss/`??????Uptime:?44m ?????????.:++o:??/++++++++/:--:/-??????Packages:?1831 ????????o:+o+:++.`..``?`.-/oo+++++/?????Shell:?bash?4.4.12 ???????.:+o:+o/.??????????`+sssoo+/????Resolution:?1920x955 ??.++/+:+oo+o:`?????????????/sssooo.???DE:?GNOME? ?/+++//+:`oo+o???????????????/::--:.???WM:?GNOME?Shell ?+/+o+++`o++o???????????????++////.???WM?Theme:?Adwaita ??.++.o+++oo+:`?????????????/dddhhh.???GTK?Theme:?Azure?[GTK2/3] ???????.+.o+oo:.??????????`oddhhhh+????Icon?Theme:?Papirus-Dark ????????+.++o+o``-````.:ohdhhhhh+?????Font:?Ubuntu?11 ?????????`:o+++?`ohhhhhhhhyo++os:??????CPU:?Intel?Core?i7-6700HQ?@?2x?2.592GHz ???????????.o:`.syhhhhhhh/.oo++o`??????GPU:?llvmpipe?(LLVM?5.0,?256?bits) ???????????????/osyyyyyyo++ooo+++/?????RAM:?1521MiB?/?1993MiB ???????????????????`````?+oo+++o:???? ??????????????????????????`oo++.
方法-11:使用 neofetch 命令
neofetch 是一個跨平臺且易于使用的命令行(CLI)腳本,它收集你的 Linux 系統信息,并將其作為一張圖片顯示在終端上,也可以是你的發行版徽標,或者是你選擇的任何 ascii 藝術。
建議閱讀: Neofetch – 以 ASCII 分發標志來顯示 Linux 系統信息
$?neofetch ????????????.-/+oossssoo+/-.???????????????daygeek@ubuntu ????????`:+ssssssssssssssssss+:`???????????-------------- ??????-+ssssssssssssssssssyyssss+-?????????OS:?Ubuntu?17.10?x86_64 ????.ossssssssssssssssssdMMMNysssso.???????Host:?VirtualBox?1.2 ???/ssssssssssshdmmNNmmyNMMMMhssssss/??????Kernel:?4.13.0-37-generic ??+ssssssssshmydMMMMMMMNddddyssssssss+?????Uptime:?47?mins ?/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/????Packages:?1832 .ssssssssdMMMNhsssssssssshNMMMdssssssss.???Shell:?bash?4.4.12 +sssshhhyNMMNyssssssssssssyNMMMysssssss+???Resolution:?1920x955 ossyNMMMNyMMhsssssssssssssshmmmhssssssso???DE:?ubuntu:GNOME ossyNMMMNyMMhsssssssssssssshmmmhssssssso???WM:?GNOME?Shell +sssshhhyNMMNyssssssssssssyNMMMysssssss+???WM?Theme:?Adwaita .ssssssssdMMMNhsssssssssshNMMMdssssssss.???Theme:?Azure?[GTK3] ?/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/????Icons:?Papirus-Dark?[GTK3] ??+sssssssssdmydMMMMMMMMddddyssssssss+?????Terminal:?gnome-terminal ???/ssssssssssshdmNNNNmyNMMMMhssssss/??????CPU:?Intel?i7-6700HQ?(2)?@?2.591GHz ????.ossssssssssssssssssdMMMNysssso.???????GPU:?VirtualBox?Graphics?Adapter ??????-+sssssssssssssssssyyyssss+-?????????Memory:?1620MiB?/?1993MiB ????????`:+ssssssssssssssssss+:`? ????????????.-/+oossssoo+/-.
? ? ? ? ? ? ? ? ? ? ? ? ? ?
方法-12:使用 dmesg 命令
dmesg(代表顯示消息或驅動消息)是大多數類 Unix 操作系統上的命令,用于打印內核的消息緩沖區。
$?dmesg?|?grep?"Memory" [????0.000000]?Memory:?1985916K/2096696K?available?(12300K?kernel?code,?2482K?rwdata,?4000K?rodata,?2372K?init,?2368K?bss,?110780K?reserved,?0K?cma-reserved) [????0.012044]?x86/mm:?Memory?block?size:?128MB
方法-13:使用 atop 命令
atop 是一個用于 Linux 的 ASCII 全屏系統性能監視工具,它能報告所有服務器進程的活動(即使進程在間隔期間已經完成)。
它記錄系統和進程活動以進行長期分析(默認情況下,日志文件保存 28 天),通過使用顏色等來突出顯示過載的系統資源。它結合可選的內核模塊 netatop 顯示每個進程或線程的網絡活動。
建議閱讀: Atop – 實時監控系統性能,資源,進程和檢查資源利用歷史
$?atop?-m ATOP?-?ubuntu???????????????????????????????????????????????????2018/03/31??19:34:08???????????????????????????????????????????????????-------------????????????????????????????????????????????????????10s?elapsed PRC?|?sys????0.47s??|?user???2.75s??|???????????????|??????????????|??#proc????219?|??#trun??????1?|?#tslpi???802??|?#tslpu?????0??|?#zombie????0??|?clones?????7?|???????????????|???????????????|??#exit??????4?| CPU?|?sys???????7%??|?user?????22%??|?irq???????0%??|??????????????|???????????????|??idle????170%?|?wait??????0%??|???????????????|?steal?????0%??|?guest?????0%?|???????????????|??curf?2.59GHz?|??curscal????%?| cpu?|?sys???????3%??|?user?????11%??|?irq???????0%??|??????????????|???????????????|??idle?????85%?|?cpu001?w??0%??|???????????????|?steal?????0%??|?guest?????0%?|???????????????|??curf?2.59GHz?|??curscal????%?| cpu?|?sys???????4%??|?user?????11%??|?irq???????0%??|??????????????|???????????????|??idle?????85%?|?cpu000?w??0%??|???????????????|?steal?????0%??|?guest?????0%?|???????????????|??curf?2.59GHz?|??curscal????%?| CPL?|?avg1????1.98??|???????????????|?avg5????3.56??|?avg15???3.20?|???????????????|???????????????|?csw????14894??|???????????????|?intr????6610??|??????????????|???????????????|??numcpu?????2?|???????????????| MEM?|?tot?????1.9G??|?free??101.7M??|?cache?244.2M??|?dirty???0.2M?|??buff????6.9M?|??slab???92.9M?|?slrec??35.6M??|?shmem??97.8M??|?shrss??21.0M??|?shswp???3.2M?|??vmbal???0.0M?|??hptot???0.0M?|??hpuse???0.0M?| SWP?|?tot????12.4G??|?free???11.6G??|???????????????|??????????????|???????????????|???????????????|???????????????|???????????????|???????????????|??????????????|??vmcom???7.9G?|???????????????|??vmlim??13.4G?| PAG?|?scan???????0??|?steal??????0??|???????????????|?stall??????0?|???????????????|???????????????|???????????????|???????????????|???????????????|??????????????|??swin???????3?|???????????????|??swout??????0?| DSK?|??????????sda??|?busy??????0%??|???????????????|?read?????114?|??write?????37?|??KiB/r?????21?|?KiB/w??????6??|???????????????|?MBr/s????0.2??|?MBw/s????0.0?|??avq?????6.50?|???????????????|??avio?0.26?ms?| NET?|?transport?????|?tcpi??????11??|?tcpo??????17??|?udpi???????4?|??udpo???????8?|??tcpao??????3?|?tcppo??????0??|???????????????|?tcprs??????3??|?tcpie??????0?|??tcpor??????0?|??udpnp??????0?|??udpie??????0?| NET?|?network???????|?ipi???????20??|???????????????|?ipo???????33?|??ipfrw??????0?|??deliv?????20?|???????????????|???????????????|???????????????|??????????????|??icmpi??????5?|???????????????|??icmpo??????0?| NET?|?enp0s3????0%??|?pcki??????11??|?pcko??????28??|?sp?1000?Mbps?|??si????1?Kbps?|??so????1?Kbps?|???????????????|?coll???????0??|?mlti???????0??|?erri???????0?|??erro???????0?|??drpi???????0?|??drpo???????0?| NET?|?lo??????----??|?pcki???????9??|?pcko???????9??|?sp????0?Mbps?|??si????0?Kbps?|??so????0?Kbps?|???????????????|?coll???????0??|?mlti???????0??|?erri???????0?|??erro???????0?|??drpi???????0?|??drpo???????0?| ???PID????????TID?????MINFLT??????MAJFLT?????VSTEXT??????VSLIBS??????VDATA??????VSTACK??????VSIZE???????RSIZE??????PSIZE???????VGROW??????RGROW??????SWAPSZ?????RUID??????????EUID??????????MEM??????CMD????????1/1 ??2536??????????-????????941???????????0???????188K??????127.3M?????551.2M????????144K???????2.3G??????281.2M?????????0K??????????0K???????344K???????6556K?????daygeek???????daygeek???????14%??????Web?Content ??2464??????????-?????????75???????????0???????188K??????187.7M?????680.6M????????132K???????2.3G??????226.6M?????????0K??????????0K???????212K??????42088K?????daygeek???????daygeek???????11%??????firefox ??2039??????????-???????4199???????????6????????16K??????163.6M?????423.0M????????132K???????3.5G??????220.2M?????????0K??????????0K??????2936K??????109.6M?????daygeek???????daygeek???????11%??????gnome-shell ?10822??????????-??????????1???????????0?????????4K??????16680K?????377.0M????????132K???????3.4G??????193.4M?????????0K??????????0K?????????0K??????????0K?????root??????????root??????????10%??????java
方法-14:使用 htop 命令
htop 是由 Hisham 用 ncurses 庫開發的用于 Linux 的交互式進程查看器。與 top 命令相比,htop 有許多特性和選項。
建議閱讀: 使用 Htop 命令監視系統資源
$?htop ??1??[|||||||||||||?????????????????????????????????????????????????????????????????????????????13.0%]???Tasks:?152,?587?thr;?1?running ??2??[|||||||||||||||||||||||||?????????????????????????????????????????????????????????????????25.0%]???Load?average:?0.91?2.03?2.66? ??Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||1.66G/1.95G]???Uptime:?01:14:53 ??Swp[||||||???????????????????????????????????????????????????????????????????????????????782M/12.4G] ??PID?USER??????PRI??NI??VIRT???RES???SHR?S?CPU%?MEM%???TIME+??Command ?2039?daygeek????20???0?3541M??214M?46728?S?36.6?10.8?22:36.77?/usr/bin/gnome-shell ?2045?daygeek????20???0?3541M??214M?46728?S?10.3?10.8??3:02.92?/usr/bin/gnome-shell ?2046?daygeek????20???0?3541M??214M?46728?S??8.3?10.8??3:04.96?/usr/bin/gnome-shell ?6080?daygeek????20???0??807M?37228?24352?S??2.1??1.8??0:11.99?/usr/lib/gnome-terminal/gnome-terminal-server ?2880?daygeek????20???0?2205M??164M?17048?S??2.1??8.3??7:16.50?/usr/lib/firefox/firefox?-contentproc?-childID?6?-isForBrowser?-intPrefs?6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51:0|57:128|58:10000|63:0|65:400|66 ?6125?daygeek????20???0?1916M??159M?92352?S??2.1??8.0??2:09.14?/usr/lib/firefox/firefox?-contentproc?-childID?7?-isForBrowser?-intPrefs?6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51:0|57:128|58:10000|63:0|65:400|66 ?2536?daygeek????20???0?2335M??243M?26792?S??2.1?12.2??6:25.77?/usr/lib/firefox/firefox?-contentproc?-childID?1?-isForBrowser?-intPrefs?6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51:0|57:128|58:10000|63:0|65:400|66 ?2653?daygeek????20???0?2237M??185M?20788?S??1.4??9.3??3:01.76?/usr/lib/firefox/firefox?-contentproc?-childID?4?-isForBrowser?-intPrefs?6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51:0|57:128|58:10000|63:0|65:400|66
方法-15:使用 corefreq 實用程序
CoreFreq 是為 Intel 64 位處理器設計的 CPU 監控軟件,支持的架構有 Atom、Core2、Nehalem、SandyBridge 和 superior,AMD 家族 0F。
CoreFreq 提供了一個框架來以高精確度檢索 CPU 數據。
建議閱讀: CoreFreq – 一個用于 Linux 系統的強大的 CPU 監控工具
$?./corefreq-cli?-k Linux:?????????????????????????????????????????????????????????????????????????? |-?Release???????????????????????????????????????????????????[4.13.0-37-generic] |-?Version??????????????????????????[#42-Ubuntu?SMP?Wed?Mar?7?14:13:23?UTC?2018] |-?Machine??????????????????????????????????????????????????????????????[x86_64] Memory:????????????????????????????????????????????????????????????????????????? |-?Total?RAM??????????????????????????????????????????????????????????2041396?KB |-?Shared?RAM???????????????????????????????????????????????????????????99620?KB |-?Free?RAM????????????????????????????????????????????????????????????108428?KB |-?Buffer?RAM????????????????????????????????????????????????????????????8108?KB |-?Total?High???????????????????????????????????????????????????????????????0?KB |-?Free?High????????????????????????????????????????????????????????????????0?KB
方法-16:使用 glances 命令
Glances 是用 Python 編寫的跨平臺基于 curses(LCTT 譯注:curses 是一個 Linux/Unix 下的圖形函數庫)的系統監控工具。我們可以說它一應俱全,就像在最小的空間含有最大的信息。它使用 psutil 庫從系統中獲取信息。
Glances 可以監視 CPU、內存、負載、進程列表、網絡接口、磁盤 I/O、Raid、傳感器、文件系統(和文件夾)、Docker、監視器、警報、系統信息、正常運行時間、快速預覽(CPU、內存、負載)等。
建議閱讀: Glances (一應俱全)– 一個 Linux 的高級的實時系 統性能監控工具
$?glances ubuntu?(Ubuntu?17.10?64bit?/?Linux?4.13.0-37-generic)?-?IP?192.168.1.6/24???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Uptime:?1:08:40 CPU??[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||????????90.6%]???CPU?-????90.6%??nice:?????0.0%??ctx_sw:????4K??????MEM????78.4%??active:?????942M??????SWAP?-????5.9%??????LOAD????2-core MEM??[|||||||||||||||||||||||||||||||||||||||||||||||||||||||||?????????????????78.0%]???user:????55.1%??irq:??????0.0%??inter:???1797??????total:??1.95G??inactive:???562M??????total:???12.4G??????1?min:????4.35 SWAP?[||||???????????????????????????????????????????????????????????????????????5.9%]???system:??32.4%??iowait:???1.8%??sw_int:???897??????used:???1.53G??buffers:???14.8M??????used:?????749M??????5?min:????4.38 ?????????????????????????????????????????????????????????????????????????????????????????idle:?????7.6%??steal:????0.0%?????????????????????free:????431M??cached:?????273M??????free:????11.7G??????15?min:???3.38 NETWORK?????Rx/s???Tx/s???TASKS?211?(735?thr),?4?run,?207?slp,?0?oth?sorted?automatically?by?memory_percent,?flat?view docker0???????0b???232b enp0s3??????12Kb????4Kb???Systemd??????????7????Services?loaded:?197?active:?196?failed:?1? lo??????????616b???616b _h478e48e?????0b???232b?????CPU%??MEM%??VIRT???RES???PID?USER????????NI?S?????TIME+???R/s???W/s?Command? ????????????????????????????63.8??18.9?2.33G??377M??2536?daygeek??????0?R???5:57.78?????0?????0?/usr/lib/firefox/firefox?-contentproc?-childID?1?-isForBrowser?-intPrefs?6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51 DefaultGateway?????83ms?????78.5??10.9?3.46G??217M??2039?daygeek??????0?S??21:07.46?????0?????0?/usr/bin/gnome-shell ?????????????????????????????8.5??10.1?2.32G??201M??2464?daygeek??????0?S???8:45.69?????0?????0?/usr/lib/firefox/firefox?-new-window DISK?I/O?????R/s????W/s??????1.1???8.5?2.19G??170M??2653?daygeek??????0?S???2:56.29?????0?????0?/usr/lib/firefox/firefox?-contentproc?-childID?4?-isForBrowser?-intPrefs?6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51 dm-0???????????0??????0??????1.7???7.2?2.15G??143M??2880?daygeek??????0?S???7:10.46?????0?????0?/usr/lib/firefox/firefox?-contentproc?-childID?6?-isForBrowser?-intPrefs?6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51 sda1???????9.46M????12K??????0.0???4.9?1.78G?97.2M??6125?daygeek??????0?S???1:36.57?????0?????0?/usr/lib/firefox/firefox?-contentproc?-childID?7?-isForBrowser?-intPrefs?6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51
方法-17 : 使用 Gnome 系統監視器
Gnome 系統監視器是一個管理正在運行的進程和監視系統資源的工具。它向你顯示正在運行的程序以及耗費的處理器時間,內存和磁盤空間。
相關推薦:《Linux視頻教程》