1. 程式人生 > >【檢視記憶體】Linux檢視記憶體使用情況(一)

【檢視記憶體】Linux檢視記憶體使用情況(一)

用 'top -i' 看看有多少程序處於 Running 狀態,可能系統存在記憶體或 I/O 瓶頸,用 free 看看系統記憶體使用情況,swap 是否被佔用很多,用 iostat 看看 I/O 負載情況...

還有一種辦法是 ps -ef | sort -k7 ,將程序按執行時間排序,看哪個程序消耗的cpu時間最多。

top:
主要引數 :
d:指定更新的間隔,以秒計算。 
q:沒有任何延遲的更新。如果使用者有超級使用者,則top命令將會以最高的優先序執行。 
c:顯示程序完整的路徑與名稱。 
S:累積模式,會將己完成或消失的子行程的CPU時間累積起來。 
s:安全模式。 
i:不顯示任何閒置(Idle)或無用(Zombie)的行程。 
n:顯示更新的次數,完成後將會退出to 
顯示引數::


PID(Process ID):程序標示號。 
USER:程序所有者的使用者名稱。 
PR:程序的優先級別。 
NI:程序的優先級別數值。 
VIRT:程序佔用的虛擬記憶體值。 
RES:程序佔用的實體記憶體值。 
SHR:程序使用的共享記憶體值。 
S:程序的狀態,其中S表示休眠,R表示正在執行,Z表示僵死狀態,N表示該程序優先值是負數。 
%CPU:該程序佔用的CPU使用率。 
%MEM:該程序佔用的實體記憶體和總記憶體的百分比。 
TIME+:該程序啟動後佔用的總的CPU時間。 
Command:程序啟動的啟動命令名稱,如果這一行顯示不下,程序會有一個完整的命令列。 


top命令使用過程中,還可以使用一些互動的命令來完成其它引數的功能。這些命令是通過快捷鍵啟動的。 
<空格>:立刻重新整理。 
P:根據CPU使用大小進行排序。 
T:根據時間、累計時間排序。 
q:退出top命令。 
m:切換顯示記憶體資訊。 
t:切換顯示程序和CPU狀態資訊。 
c:切換顯示命令名稱和完整命令列。 
M:根據使用記憶體大小進行排序。 
W:將當前設定寫入~/.toprc檔案中。這是寫top配置檔案的推薦方法。 


free
1.作用 
free命令用來顯示記憶體的使用情況,使用許可權是所有使用者。 
2.格式 
free [-b-k-m] [-o] [-s delay] [-t] [-V] 
3.主要引數 
-b -k -m -g:分別以位元組(KB、MB、GB)為單位顯示記憶體使用情況。 
-s delay:顯示每隔多少秒數來顯示一次記憶體使用情況。 
-t:顯示記憶體總和列。 
-o:不顯示緩衝區調節列。 

uptime

18:59:15 up 25 min, 2 users, load average: 1.23, 1.32, 1.21 
現在的時間 
系統開機運轉到現在經過的時間 
連線的使用者數量 
最近一分鐘,五分鐘和十五分鐘的系統負載 
引數: -V 顯示版本資訊。 

vmstat


procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- 
r b swpd free buff cache si so bi bo in cs us sy id wa 
0 1 24980 10792 8296 47316 5 19 205 52 1161 698 26 3 1 70 
1 觀察磁碟活動情況 
磁碟活動情況主要從以下幾個指標瞭解: 
bi:表示從磁碟每秒讀取的塊數(blocks/s)。數字越大,表示讀磁碟的活動越多。 
bo:表示每秒寫到磁碟的塊數(blocks/s)。數字越大,表示寫磁碟的活動越多。 
wa:cpu等待磁碟I/O(未決的磁碟IO)的時間比例。數字越大,表示檔案系統活動阻礙cpu的情況越嚴重,因為cpu在等待慢速的磁碟系統提供資料。wa為0是最理想的。如果wa經常大於10,可能檔案系統就需要進行效能調整了。 
2 觀察cpu活動情況 
vmstat比top更能反映出cpu的使用情況: 
us:使用者程式使用cpu的時間比例。這個數字越大,表示使用者程序越繁忙。 
sy: 系統呼叫使用cpu的時間比例。注意,NFS由於是在核心裡面執行的,所以NFS活動所佔用的cpu時間反映在sy裡面。這個數字經常很大的話,就需要注 意是否某個核心程序,比如NFS任務比較繁重。如果us和sy同時都比較大的話,就需要考慮將某些使用者程式分離到另外的伺服器上面,以免互相影響。 
id:cpu空閒的時間比例。 
wa:cpu等待未決的磁碟IO的時間比例。 

iostat

用於統計CPU的使用情況及tty裝置、硬碟和CD-ROM的I/0量 
引數: 
-c 只顯示CPU行 
-d 顯示磁碟行 
-k 以千位元組為單位顯示磁碟輸出 
-t 在輸出中包括時間戳 
-x 在輸出中包括擴充套件的磁碟指標 
avg-cpu: %user %nice %sys %iowait %idle 
20.25 0.18 2.61 76.39 0.57 
%iowait 等待本地I/O時CPU空閒時間的百分比 
%idle 未等待本地I/O時CPU空閒時間的百分比 
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn 
hda 9.86 284.34 84.48 685407 2036 
每秒傳輸數(tps)、每秒512位元組塊讀取數(Blk_read/s)、每秒512位元組塊寫入數(Blk_wrtn/s)和512位元組塊讀取(Blk_read)和寫入(Blk_wrtn)的總數量。

系統
# uname -a # 檢視核心/作業系統/CPU資訊 
# head -n 1 /etc/issue # 檢視作業系統版本 
# cat /proc/cpuinfo # 檢視CPU資訊 
# hostname # 檢視計算機名 
# lspci -tv # 列出所有PCI裝置 
# lsusb -tv # 列出所有USB裝置 
# lsmod # 列出載入的核心模組 
# env # 檢視環境變數 
資源
# free -m # 檢視記憶體使用量和交換區使用量 
# df -h # 檢視各分割槽使用情況 
# du -sh # 檢視指定目錄的大小 
# grep MemTotal /proc/meminfo # 檢視記憶體總量 
# grep MemFree /proc/meminfo # 檢視空閒記憶體量 
# uptime # 檢視系統執行時間、使用者數、負載 
# cat /proc/loadavg # 檢視系統負載 
磁碟和分割槽
# mount | column -t # 檢視掛接的分割槽狀態 
# fdisk -l # 檢視所有分割槽 
# swapon -s # 檢視所有交換分割槽 
# hdparm -i /dev/hda # 檢視磁碟引數(僅適用於IDE裝置) 
# dmesg | grep IDE # 檢視啟動時IDE裝置檢測狀況 
網路
# ifconfig # 檢視所有網路介面的屬性 
# iptables -L # 檢視防火牆設定 
# route -n # 檢視路由表 
# netstat -lntp # 檢視所有監聽埠 
# netstat -antp # 檢視所有已經建立的連線 
# netstat -s # 檢視網路統計資訊 
程序
# ps -ef # 檢視所有程序 
# top # 實時顯示程序狀態 
使用者
# w # 檢視活動使用者 
# id # 檢視指定使用者資訊 
# last # 檢視使用者登入日誌 
# cut -d: -f1 /etc/passwd # 檢視系統所有使用者 
# cut -d: -f1 /etc/group # 檢視系統所有組 
# crontab -l # 檢視當前使用者的計劃任務 
服務
# chkconfig --list # 列出所有系統服務 
# chkconfig --list | grep on # 列出所有啟動的系統服務 
程式
# rpm -qa # 檢視所有安裝的軟體包

相關推薦

原創Linux RCU原理剖析-初窺門徑

背景 Read the fucking source code! --By 魯迅 A picture is worth a thousand words. --By 高爾基 說明: Kernel版本:4.14 ARM64處理器,Contex-A53,雙核 使用工具:Source Insight 3.5

selenium3+JAVA介面自動化測試教程——瀏覽器的啟動之IE瀏覽器的啟動

前言 同chrome、firefox,ie瀏覽器的啟動一樣需要driver,但是IEDriver不像chromeDriver一樣有多個版本,不同版本對應不同的chrome版本,它只有32位版本和64位版本兩種; 下載地址為:https://www.seleniu

資料結構迴圈佇列的應用列印楊輝三角

列印楊輝三角 楊輝三角是比較常見的佇列的應用,下面一行的數是上面2個數字的和,數列首位都是1,高中數學裡牛頓二項式展開式應該有說。 程式碼收穫 這題主要是找規律。利用下面一行比上面一行數字多一個,佇列頭為上一行,除了入隊首尾的1之外,入隊的上一行2個數的和

python學習新手基礎程式練習

  首先得先編一下程式設計師必須編的程式——Hello World……(這應該是程式設計師情結。。。) 1 #coding=utf-8 2 #Version:python3.7.0 3 #Tools:Pycharm 2017.3.2 4 _date_ = '2018/12/30 12:26' 5 _a

Big DataHADOOP叢集的配置

摘要: hadoop叢集配置系列文件,是筆者在實驗室真機環境實驗後整理而得。以便隨後工作所需,做以知識整理,另則與部落格園朋友分享實驗成果,因為筆者在學習初期,也遇到不少問題。但是網上一些文件大多互相抄襲,裡面錯誤百出。筆者結合自學書籍視訊等資料,完成這一套配置資料。實驗結果和過程經過反覆測試無誤後方

微服務服務熔斷與降級

服務熔斷、服務降級,好高大上的樣子,以前望塵莫及,今日終於揭開它神祕面紗,好好應用一把了。 瞭解這兩者之前,我們首先要了解是產生什麼問題了,才需要熔斷、降級。 服務雪崩 分散式系統面臨的問題是,複雜分散式體系結構中的應用有十多個依賴關係,每個依賴在某些

模式識別模式識別的概述

本節主要內容: 模式和模式識別的概念模式識別的發展簡史和應用模式識別的主要方法模式識別的系統和例項幾個相關的數學概念1、模式和模式識別的概念  什麼是模式(Pattern)? 廣義地說,存在於時間和空間中可觀察的事物,如果我們可以區別他們是否相同或是否相似,都可以稱之為

Android 動畫View Animation詳解

安卓平臺目前提供了兩大類動畫,在Android 3.0之前,一大類是View Animation,包括Tween animation(補間動畫),Frame animation(幀動畫),在android3.0中又引入了一個新的動畫系統:property ani

科普周機器學習掃盲篇

給大家舉個例子:以我們之前做的波士頓房價視覺化迴歸預測來看,如果告訴機器一棟房子所在地區的住宅地比例、環保的指標、自住的比例、便利的指數、以及不動產稅率等指標,以及不同指標下房屋的價格,這樣機器就能學習這些指標的特點和房價的關係,而給出當前指標下具體的房屋價格。但是這個價格準確率的問題要看機器通過不同模型和演

Android測試之LogCat命令列

預備知識   首先還是先了解一下上節沒有提到的知識,我覺得還是比較重要的,就是log分類的幾種級別(prority):   v (verbose)  d (debug)   i  (information)   w (warning)   e (error)   這

讀書筆記《暗時間》

專業軟體工程, 現全職 iOS 開發工程師, 業餘 Android/遊戲開發愛好者 專注於C/C++, 移動應用開發,特別是移動遊戲的開發。Lisp語言的死忠粉:),熱衷於計算機底層原理。 連結我: 我的新浪部落格 Q:1020935219 微訊號:C_W_hu

深度學習Inception的前世今生--GoogLeNet

在2014年ILSVRC比賽上,GoogleNet 用了僅僅是AlexNet的12%的引數量,卻拿到了分類top-5的第一名。在之前的深度學習網路的設計中,會存在兩個重要缺陷: 1) 更深更寬的網路模型會產生巨量引數 2) 網路規模的加大會極大的增加計算

Spring Cloud分散式必學springcloud——簡介和看法

一、前言       開篇之前,我想說,springcloud會完勝dubbo。       小編以前做分散式是用的webservice、dubbo。最近的專案中,開始使用了springcloud,

檢視記憶體Linux檢視記憶體使用情況

用 'top -i' 看看有多少程序處於 Running 狀態,可能系統存在記憶體或 I/O 瓶頸,用 free 看看系統記憶體使用情況,swap 是否被佔用很多,用 iostat 看看 I/O 負載情況... 還有一種辦法是 ps -ef | sort -k7 ,將程序按執行時間排序,看哪個程序消耗的cp

對stm32記憶體理解,檢視以及面試題的一些總結

基礎知識儲備 1、keil中如何調用出map檔案,以及map檔案的作用 我是拿正點原子的標準工程來使用分析。 如何獲得map檔案, 雙擊工程名即可得到map檔案。 2、map檔案包含哪些東西 1.Section CrossReferences:模組、段(入口)

Linuxlinux 壓縮文件txt、查看壓縮文件內容、解壓縮文件、

str tool div png gun medium spa clas info 通過Xshell 壓縮文件、解壓縮文件 gzip  tools.txt        壓縮【tools.txt】文件 zcat  tools.txt.gz       查看壓縮文件

Linux系統維護筆記基礎資訊檢視

位數 getconf LONG_BIT 閘道器 cat /etc/sysconfig/network DNS cat /etc/resolv.conf 硬碟 df -h 檢視Linux所有版本資訊    lsb_release -a 修改分

TINY4412LINUX移植筆記:24裝置樹EEPROM驅動

【TINY4412】LINUX移植筆記:(24)裝置樹 EEPROM驅動 宿主機 : 虛擬機器 Ubuntu 16.04 LTS / X64 目標板[底板]: Tiny4412SDK - 1506 目標板[核心板]:

TINY4412LINUX移植筆記:27裝置樹LCD驅動

【TINY4412】LINUX移植筆記:(27)裝置樹 LCD驅動 宿主機 : 虛擬機器 Ubuntu 16.04 LTS / X64 目標板[底板]: Tiny4412SDK - 1506 目標板[核心板]: Ti

linux下殺死程序kill的N種方法

轉載一篇,最原始的出處已不可考,望見諒! 常規篇:  首先,用ps檢視程序,方法如下: $ ps -ef …… smx       1822     1  0 11:38 ?        00:00:49 gnome-terminal smx       1823  1