vmstat&Linux Shell 記憶體監控

來源:互聯網
上載者:User

1.查看當前系統記憶體使用量狀況(free):

free命令有以下幾個常用選項:

-b 以位元組為單位顯示資料。

-k 以KB(KB)為單位顯示資料(預設值)。

-m 以兆(MB)為單位顯示資料。

-s delay 該選項將使free持續不斷的重新整理,每次重新整理之間的間隔為delay指定的秒數,如果含有小數點,將精確到毫秒,如0.5為500毫秒,1為一秒。

free命令輸出的表格中包含以下幾列:

total: 總計實體記憶體的大小。

used: 已使用的記憶體數量。

free: 可用的記憶體數量。

Shared: 多個進程共用的記憶體總額。

Buffers/cached:磁碟緩衝的大小。

見以下具體樣本和輸出說明:

[root@Rony ~]$ free -k

total used free shared buffers cached

Mem: 262328 242000 20328 0 17336 42488

-/+ buffers/cache: 182176 80152

Swap: 786416 36 786380

對於free命令的輸出,我們只需關注紅色高亮的輸出行和綠色高亮的輸出行,見如下具體解釋:

紅色輸出行:該行使從作業系統的角度來看待輸出資料的,used(242000)表示核心(Kernel)+Applications+buffers+cached。free(20382)表示系統還有多少記憶體可供使用。

綠色輸出行:該行則是從應用程式的角度來看輸出資料的。其free = 作業系統used + buffers + cached,既:

80152 = 20328 + 17336 + 42488

[root@Rony ~]$ free -m

total used free shared buffers cached

Mem: 256 236 19 0 16 41

-/+ buffers/cache: 178 78

Swap: 199 0 199

2. 虛擬記憶體的即時監控工具(vmstat)
vmstat命令用來獲得UNIX系統有關進程、虛存、頁面交換空間及CPU活動的資訊。這些資訊反映了系統的負載情況。vmstat首次運行時顯示自系統啟動開始的各項統計資訊,之後運行vmstat將顯示自上次運行該命令以後的統計資訊。使用者可以通過指定統計的次數和時間來獲得所需的統計資訊。

[root@Rony ~]$ vmstat 1 3 #這是vmstat最為常用的方式,其含義為每隔1秒輸出一條,一共輸出3條後程式退出。
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 36 20740 16888 42212 0 0 0 1 7 1 0 0 100 0 0
0 0 36 20740 16888 42212 0 0 0 0 41 38 0 0 100 0 0
0 0 36 20740 16888 42212 0 0 0 0 29 42 0 0 100 0 0

[root@Rony ~]$vmstat 1 #其含義為每隔1秒輸出一條,直到按CTRL+C後退出。

下面將給出輸出表格中每一列的含義說明:

        有關進程的資訊有:(procs)

r: 在就緒狀態等待的進程數。

b: 在等待狀態等待的進程數。

有關記憶體的資訊有:(memory)

swpd: 正在使用的swap大小,單位為KB。

free: 閒置記憶體空間。

buff: 已使用的buff大小,對塊裝置的讀寫進行緩衝。

cache: 已使用的cache大小,檔案系統的cache。

有關頁面交換空間的資訊有:(swap)

si: 交換記憶體使用量,由磁碟調入記憶體。

so: 交換記憶體使用量,由記憶體調入磁碟。

有關IO塊裝置的資訊有:(io)

bi: 從塊裝置讀入的資料總量(讀磁碟) (KB/s)

bo: 寫入到塊裝置的資料總理(寫磁碟) (KB/s)

有關故障的資訊有:(system)

in: 在指定時間內的每秒中斷次數。

sy: 在指定時間內每秒系統調用次數。

cs: 在指定時間內每秒環境切換的次數。

有關CPU的資訊有:(cpu)

us: 在指定時間間隔內CPU在使用者態的利用率。

sy: 在指定時間間隔內CPU在核心態的利用率。

id: 在指定時間間隔內CPU空閑時間比。

wa: 在指定時間間隔內CPU因為等待I/O而閒置時間比。

vmstat 可以用來確定一個系統的工作是受限於CPU還是受限於記憶體:如果CPU的sy和us值相加的百分比接近100%,或者運行隊列(r)中等待的進程數總是不等於0,且經常大於4,同時id也經常小於40,則該系統受限於CPU;如果bi、bo的值總是不等於0,則該系統受限於記憶體。

3. 輸出當前系統中佔用記憶體最多的5條命令:

#1) 通過ps命令列出當前主機正在啟動並執行所有進程。

#2) 按照第五個欄位基於數值的形式進行正常排序(由小到大)。

#3) 僅顯示最後5條輸出。

[root@Rony ~]$ ps aux | sort -k 5n | tail -5

mysql 25492 0.0 3.3 39860 8680 ? Sl Dec13 0:01 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --log-error=/usr/local/mysql/var/Rony.err --pid-file=/usr/local/mysql/var/Rony.pid --socket=/tmp/mysql.sock
--port=3306
www 25379 0.0 10.3 40212 27216 ? S Dec13 1:20 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
www 25375 0.0 11.0 42016 29052 ? S Dec13 1:17 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
www 25376 0.0 11.2 42260 29416 ? S Dec13 1:20 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
www 25381 0.0 12.6 45884 33156 ? S Dec13 1:19 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf

4. 擷取當前系統實體記憶體的總大小:

#1) 以兆(MB)為單位輸出系統當前的記憶體使用量狀況。

#2) 通過grep定位到Mem行,該行是以作業系統為視角統計資料的。

#3) 通過awk列印出該行的第二列,即total列。

[root@Rony ~]$ free -m | grep "Mem" | awk '{print $2, "MB"}'

256 MB

http://shop104965075.taobao.com

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.