Linux監控工具介紹系列——smem
smem工具介紹
smem是Linux系統上的一款可以生成多種記憶體耗用報告的命令列工具。與現有工具不一樣的是smem可以報告實際使用的實體記憶體(PSS),這是一種更有意義的指標。可以衡量虛擬記憶體系統的庫和應用程式所佔用的記憶體數量。
由於大部分的實體記憶體通常在多個應用程式之間共享,名為實際使用實體記憶體(RSS)的這個標準的記憶體耗用衡量指標會大大高估記憶體耗用情況。PSS這個引數而是衡量了每個應用程式在每個共享記憶體區中的“公平分配”,給出了一個切合實際的衡量指標。
smem有許多功能特性:
系統概況列表
按程序、對映和使用者列表
按使用者、對映或使用者過濾
來自多個數據源的可配置列
可配置的輸出單位和百分比
可配置的標題和總和
從/proc讀取活動資料
從目錄映象或經過壓縮的打包檔案讀取資料快照
面向嵌入式系統的輕型捕獲工具
內建的圖表生成功能
smem的系統要求
系統核心為2.6.27以上
Python版本必須為2.4或以上
依賴matplotlib庫生成圖表(可選的,自動檢測)依賴matplotlib,是因為smem除了一般的文字資訊報告外,smem 也可以生成條狀或餅狀圖。
對應的英文原文如下:
smem is a tool that can give numerous reports on memory usage on Linux systems. Unlike existing tools, smem can report proportional set size
Because large portions of physical memory are typically shared among multiple applications, the standard measure of memory usage known as resident set size (RSS) will significantly overestimate memory usage. PSS instead measures each application's "fair share" of each shared area to give a realistic measure.
smem has many features:
system overview listing
listings by process, mapping, user
filtering by process, mapping, or user
configurable columns from multiple data sources
configurable output units and percentages
configurable headers and totals
reading live data from /proc
reading data snapshots from directory mirrors or compressed tarballs
lightweight capture tool for embedded systems
built-in chart generation
smem has a few requirements:
a reasonably modern kernel (> 2.6.27 or so)
a reasonably recent version of Python (2.4 or so)
the matplotlib library for chart generation (optional, auto-detected)
Linux使用到了虛擬記憶體(virtual memory),因此要準確的計算一個程序實際使用的實體記憶體就不是那麼簡單。只知道程序的虛擬記憶體大小也並沒有太大的用處,因為還是無法獲取到實際分配的實體記憶體大小。
RSS(Resident set size),使用top命令可以查詢到,是最常用的記憶體指標,表示程序佔用的實體記憶體大小。但是,將各程序的RSS值相加,通常會超出整個系統的記憶體消耗,這是因為RSS中包含了各程序間共享的記憶體。
PSS(Proportional set size)所有使用某共享庫的程式均分該共享庫佔用的記憶體時,每個程序佔用的記憶體。顯然所有程序的PSS之和就是系統的記憶體使用量。它會更準確一些,它將共享記憶體的大小進行平均後,再分攤到各程序上去。
USS(Unique set size )程序獨自佔用的記憶體,它是PSS中自己的部分,它只計算了程序獨自佔用的記憶體大小,不包含任何共享的部分。
VSS – Virtual Set Size 虛擬耗用記憶體(包含共享庫佔用的記憶體)
RSS – Resident Set Size 實際使用實體記憶體(包含共享庫佔用的記憶體)
PSS – Proportional Set Size 實際使用的實體記憶體(比例分配共享庫佔用的記憶體)
USS – Unique Set Size 程序獨自佔用的實體記憶體(不包含共享庫佔用的記憶體)
smem工具安裝
首先去官方網址https://www.selenic.com/smem/ 下載對應的smem安裝包,目前最新的版本為smem-1.4. 下面安裝是在RHEL 5.7上安裝,不同版本系統、以及不同安裝方法都有一些區別。
1: [[email protected] tmp]# tar -xzvf smem-1.4.tar.gz
2: smem-1.4/.hg_archival.txt
3: smem-1.4/.hgtags
4: smem-1.4/COPYING
5: smem-1.4/smem
6: smem-1.4/smem.8
7: smem-1.4/smemcap.c
8: [[email protected] tmp]# cd smem-1.4
9: [[email protected] smem-1.4]# ls
10: COPYING smem smem.8 smemcap.c
11: [[email protected] smem-1.4]# cp /tmp/smem-1.4/smem /usr/bin
12: [[email protected] smem-1.4]# chmod +x /usr/bin/smem
smem工具使用
檢視smem命令的相關幫助資訊
1: [[email protected] tmp]# smem -h
2: usage: smem [options]
3:
4: options:
5: -h, --help show this help message and exit
6: -H, --no-header disable header line
7: -c COLUMNS, --columns=COLUMNS
8: columns to show
9: -t, --totals show totals
10: -R REALMEM, --realmem=REALMEM
11: amount of physical RAM
12: -K KERNEL, --kernel=KERNEL
13: path to kernel image
14: -m, --mappings show mappings
15: -u, --users show users
16: -w, --system show whole system
17: -P PROCESSFILTER, --processfilter=PROCESSFILTER
18: process filter regex
19: -M MAPFILTER, --mapfilter=MAPFILTER
20: map filter regex
21: -U USERFILTER, --userfilter=USERFILTER
22: user filter regex
23: -n, --numeric numeric output
24: -s SORT, --sort=SORT field to sort on
25: -r, --reverse reverse sort
26: -p, --percent show percentage
27: -k, --abbreviate show unit suffixes
28: --pie=PIE show pie graph
29: --bar=BAR show bar graph
30: -S SOURCE, --source=SOURCE
31: /proc data source
1:無引數時顯示所有程序的記憶體使用情況
2:引數-u 顯示每個使用者所耗用的記憶體總量
smem -u
3: 引數-p 檢視耗用記憶體情況的百分比。
smem -p
4: 引數-w 檢視系統記憶體使用情況
1: [[email protected] ~]# smem -w
2: Area Used Cache Noncache
3: firmware/hardware 0 0 0
4: kernel image 0 0 0
5: kernel dynamic memory 22021892 21721584 300308
6: userspace memory 1899296 122424 1776872
7: free memory 686340 686340 0
8: [[email protected] ~]# smem -w -p
9: Area Used Cache Noncache
10: firmware/hardware 0.00% 0.00% 0.00%
11: kernel image 0.00% 0.00% 0.00%
12: kernel dynamic memory 89.49% 88.27% 1.22%
13: userspace memory 7.73% 0.50% 7.23%
14: free memory 2.78% 2.78% 0.00%
5: 引數-R REALMEM,REALMEM這個值是指實體記憶體數量。此引數可以讓smem在整個系統(-w)的輸出中發現韌體/硬體所耗用的記憶體數量(對比上下即可發現,注意firmware/hardware)
1: [[email protected] ~]# smem -R 24G -w
2: Area Used Cache Noncache
3: firmware/hardware 558296 0 558296
4: kernel image 0 0 0
5: kernel dynamic memory 22024108 21722972 301136
6: userspace memory 1907676 122436 1785240
7: free memory 675744 675744 0
6:引數-c 用來顯示需要展示的列。
1: [[email protected] ~]# smem -c "name user pss"
2: Name User PSS
3: mingetty root 18
4: mingetty root 18
5: mingetty root 18
6: mingetty root 18
7: mingetty root 18
8: bash root 911
9: sftp-server root 939
10: cupsd root 1208
11: rsyslogd root 1403
12: smbd tibco 1474
13: hald haldaemon 1477
14: pickup postfix 1487
15: vmtoolsd root 2309
16: sshd root 2521
17: python root 5464
18: beremote root 7585
19: java weblogic 18454
20: java weblogic 31431
21: java weblogic 69389
22: java tomcat 339977
23: java tomcat 355037
24: java tomcat 421133
25: java weblogic 640531
7: 引數-s 根據某一列(例如 rss)來排序.
8: 引數-r 一般與引數-s結合使用,表示反轉排序(從升序改為降序)
9:引數-M 過濾相關程序。Show processes filtered by mapping
1: [[email protected] tmp]# smem -M mysql
2: PID User Command Swap USS PSS RSS
3: 4172 mysql /usr/sbin/mysqld --basedir= 0 3924 3924 3924
相關推薦
Linux監控工具介紹系列——smem
smem工具介紹 smem是Linux系統上的一款可以生成多種記憶體耗用報告的命令列工具。與現有工具不一樣的是smem可以報告實際使用的實體記憶體(PSS),這是一種更有意義的指標。可以衡量虛擬記憶體系統的庫和應用程式所佔用的記憶體數量。 由於大部分的實體記憶體通常在多個應用程式之間共享,名為實際使用
Linux監控工具介紹系列——vmstat
[[email protected] ~]# vmstat -w 2 5 procs -------------------memory------------------ ---swap-- -----io---- --system-- -----cpu------- r b s
Linux效能監控工具sysstat系列:介紹與安裝
簡介 sysstat提供了Linux效能監控的工具集,包括sar、sadf、mpstat、iostat、pidstat等,這些工具可以監控系統性能和使用情況。各工具的作用如下: iostat - 提供CPU統計,儲存I/O統計(磁碟裝置,分割槽及網路檔案系統) mpstat - 提供單個或組合CPU
Linux常用工具介紹——free
linux常用工具在Linux系統中,我們查看、監控系統內存使用情況,一般最常用的命令就是free,關於free的實現,其實是調用linux下的/proc/meminfo文件。[[email protected]/* */ /]# free -Vfree from procps-ng 3.3.9[
Linux監控平臺介紹,zabbix監控介紹,安裝zabbix,忘記admin密碼如何做
linux 操作系統 zabbix 筆記內容:19.1 Linux監控平臺介紹19.2 zabbix監控介紹19.3/19.4/19.6 安裝zabbix19.5 忘記Admin密碼如何做筆記日期:2017-11-1619.1 Linux監控平臺介紹監控是一個很重要的東西,如果一個企業裏的服務器沒
linux監控平臺介紹、zabbix監控介紹、安裝zabbix
web .so dmi zabbix日誌 展現 com 狀態 中文顯示 代理 linux監控平臺介紹 常見開源監控軟件 cacti、nagios、zabbix、smokeping、open-falcon 等等。 nagios和zabbix流行度很高。 cacti
19.1 Linux監控平臺介紹 19.2 zabbix監控介紹及安裝
19.1 Linux監控平臺介紹 19.19.1 Linux監控平臺介紹 19.2 zabbix監控介紹 19.3/19.4/19.6 安裝zabbix 19.5 忘記Admin密碼如何做 19.1 Linux監控平臺介紹 19.2 zabbix監控介紹及安裝
Linux監控平臺介紹, zabbix監控介紹,安裝zabbix,忘記Admin密碼如何做
zabbixLinux監控平臺介紹 常見開源監控軟件cacti、nagios、zabbix、smokeping、open-falcon等等 cacti、smokeping偏向於基礎監控,成圖非常漂亮 cacti、nagios、zabbix服務端監控中心,需要php環境支持,其中zabbix和cacti都需要m
六十四、Linux監控平臺介紹、zabbix監控介紹、安裝zabbix、忘記Admin密碼如何做
LInux監控平臺介紹 zabbix監控介紹 安裝zabbix 忘記Admin密碼如何做 六十四、Linux監控平臺介紹、zabbix監控介紹、安裝zabbix、忘記Admin密碼如何做一、Linux監控平臺介紹 cacti、nagios、zabbix、smokeping、open-falco
linux監控平臺介紹,zabbix監控介紹,zabbix安裝,忘記Admin密碼如何做
stat can emctl mct web img mman row 安裝源 linux監控平臺介紹 cacti、nagios、zabbix、smokeping、open-falcon等等 cacti、smokeping偏向於基礎監控,成圖非常漂亮 cacti、nagi
19.1 Linux監控平臺介紹 19.2 zabbix監控介紹 19.3/19.4/19.6 安裝zabbix 19.5 忘記Admin密碼如何做
gre users gzip ping epo type 一行 ntp dmi linux監控平臺介紹 常見開源監控軟件:cacti,nagios,zabbix,smokeping,open-falcon等等 cacti,smokeping偏向於基礎監控,成圖非常漂亮 ca
Linux監控平臺介紹 zabbix監控介紹 安裝zabbix 忘記Admin密碼如何做
.repo auth off sys read .sql oss 屬組 關閉 一、Linux監控平臺介紹這幾款軟件都是需要PHP環境支持,使用Apache PHP或者NGINX的PHP都可以,nagios不需要使用mysql,cacti和zabbix是需要使用mysql的二
一款優秀的linux監控工具——nmon
核心 語法 pri priority str 任務管理器 strong 學習 rec (一)nmon工具概述 nmon是以一個用來做linux服務器監控的工具,通過nmon,可以實現對以下參數的監控: --CPU使用率 --內存、交換空間使用率 --網絡
Linux監控工具vmstat命令詳解
原帖地址:http://www.ha97.com/4512.html 一、前言 很顯然從名字中我們就可以知道vmstat是一個檢視虛擬記憶體(Virtual Memory)使用狀況的工具,但是怎樣通過vmstat來發現系統中的瓶頸呢?在回答這個問題前,還是讓我們回顧一下Linux
Mysql監控工具介紹-Monyog
MONyog監控工具 MONyog是一個優秀的MySQL監控工具,可以實時監測MYSQL伺服器,檢視MySQL伺服器的執行狀態。 支援查詢分析功能,能夠輕鬆找出有MySQL的問題所在,此外,還可以幫助使用者掌握伺服器的執行狀態,檢視在任一時間點繪製的具有詳細查詢資訊的圖表。 支援MySQL、MariaD
Linux監控平臺介紹
cti 其中 linux監控平臺 服務端 mys mysq 項目 sql falcon 常見開源監控軟件:cacti、nagios、zabbix、smokeping、open-falcon等等 cacti(監控網絡設備)、smokeping偏向於基礎監控,成圖非常漂亮 ca
eBPF監控工具bcc系列一啟航
在eBPF篇中,我們知道雖然可用 C 來實現 BPF,但編譯出來的卻仍然是 ELF 檔案,開發者需要手動析出真正可以注入核心的程式碼。工作有些麻煩,於是就有人設計了 BPF Compiler Collection(BCC),BCC 是一個(基於 C 和 C++) python
Java 記憶體洩露監控工具-- JVM監控工具介紹jstack, jconsole, jinfo, jmap, jdb, jstat
u jstack的用法 如果java程式崩潰生成core檔案,jstack工具可以用來獲得core檔案的java stack和native stack的資訊,從而可以輕鬆地知道java程式是如何崩潰和在程式何處發生問題。另外,jstack工具還可以附屬到正在執行的java程式中,看
Java記憶體洩露監控工具:JVM監控工具介紹
jstack -- 如果java程式崩潰生成core檔案,jstack工具可以用來獲得core檔案的java stack和native stack的資訊,從而可以輕鬆地知道java程式是如何崩潰和在程式何處發生問題。另外,jstack工具還可以附屬到正在執行的java程式中,看到 當時執行的java程式的
Linux終端下 dstat 監控工具
linux終端下 dstat 監控工具dstat 是一個可以取代vmstat,iostat,netstat和ifstat這些命令的多功能產品。dstat克服了這些命令的局限並增加了一些另外的功能,增加了監控項,也變得更靈活了。dstat可以很方便監控系統運行狀況並用於基準測試和排除故障。dstat可以讓你實時