Linux中顯示記憶體和CPU使用率最高的程式的SHELL指令碼例子
顯示CPU佔用率最高的十個程式資訊
# ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 30222 5.0 3.8 10685936 38228 ? Sl Apr24 1453:59 ./pd-server -data-dir=/data/tidb/pd -log-file=/data/tidb/log/pd.log -name=pd1
root 23484 2.4 14.7 779468 147244 ? Sl Apr24 701:46 ./tidb-server -L info -store=tikv --path=/data/tidb/tidb --path=127.0.0.1:2379 -log-file=/data/tidb/log/tidb.log
root 23415 2.0 10.1 1359044 101332 ? S<l Apr24 597:36 ./tikv-server --pd=127.0.0.1:2379 --data-dir=/data/tidb/tikv --log-file=/data/tidb/log/tikv.log
root 9092 0.2 0.1 158240 1972 ? Ssl Mar29 150:51 redis-server 0.0.0.0:6379
root 4072 0.1 0.4 110676 4204 pts/2 Ss 10:16 0:00 -bash
mysql 27252 0.1 16.1 6842120 160408 ? Sl Apr25 50:53 /usr/local/mysql-5.7.25/bin/mysqld --basedir=/usr/local/mysql-5.7.25 --datadir=/data/mysql/data --plugin-dir=/usr/local/mysql-5.7.25/lib/plugin --user=mysql --log-error=/data/mysql/log/mysqld.err --open-files-limit=81920 --pid-file=/data/mysql/mysqld.pid --socket=/tmp/mysql.sock --port=3306
rpcuser 3805 0.0 0.0 28372 8 ? Ss Mar12 0:00 rpc.statd --no-notify
rpc 3798 0.0 0.0 18988 100 ? Ss Mar12 0:13 rpcbind
root 95 0.0 0.0 0 0 ? S Mar12 0:00 [deferwq]
root 944 0.0 0.0 0 0 ? S Mar12 0:24 [kauditd]
顯示系統消耗記憶體資源最高的四個程式
# ps aux | grep -v "USER" | sort -rn -k +4 | head -4 | awk -F ' ' '{print $11,$4}'
/usr/local/mysql-5.7.25/bin/mysqld 16.1
./tidb-server 14.7
./tikv-server 10.1
./pd-server 3.8
虛擬記憶體使用最多的前10個程式--詳細
# ps auxw|head -1;ps auxw|sort -rn -k5|head -10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
mysql 23730 73.1 82.4 29577272 27209640 ? Sl Apr30 15657:26 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysqllog/error.log --open-files-limit=65535 --pid-file=/data/mysql/mysql-zhsq-ref1-168.pid --socket=/var/lib/mysql/mysql.sock
root 1285 0.0 0.0 255616 5456 ? Sl Mar07 10:37 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
root 3228 0.0 0.0 155444 928 pts/0 S+ 09:01 0:00 sort -rn -k5
root 3783 0.4 0.0 123720 7816 ? S<sl Apr26 126:21 /usr/local/aegis/aegis_client/aegis_10_63/AliYunDun
root 1784 0.0 0.0 116916 1280 ? Ss Mar07 0:13 crond
root 3227 0.0 0.0 110240 1172 pts/0 R+ 09:01 0:00 ps auxw
root 2753 0.0 0.0 108320 1984 pts/0 Ss 08:50 0:00 -bash
root 2992 0.0 0.0 108316 1956 pts/1 Ss+ 08:55 0:00 -bash
root 16579 0.0 0.0 108312 1752 ? Ss Apr24 0:00 -bash
root 2751 0.0 0.0 102552 4508 ? Ss 08:50 0:00 sshd: root@pts/0,pts/1
指令碼如下:
# vim mem.sh
#!/bin/bash
date=`date "+%Y-%m-%d %H:%M:%S"`
#顯示消耗資源記憶體最高的程式名
first=`ps aux | grep -v "grep" | grep -v "USER" | sort -rn -k +4 | head -4 | awk -F ' ' '{print $11}' | sed -n 1p`
Second=`ps aux | grep -v "grep" | grep -v "USER" | sort -rn -k +4 | head -4 | awk -F ' ' '{print $11}' | sed -n 2p`
Third=`ps aux | grep -v "grep" | grep -v "USER" | sort -rn -k +4 | head -4 | awk -F ' ' '{print $11}' | sed -n 3p`
Fourth=`ps aux | grep -v "grep" | grep -v "USER" | sort -rn -k +4 | head -4 | awk -F ' ' '{print $11}' | sed -n 4p`
#顯示消耗記憶體資源最高程式、記憶體使用率
one=`ps aux | grep -v "grep" | grep -v "USER" | grep "$first" | awk -F ' ' '{print $4}'`
two=`ps aux | grep -v "grep" | grep -v "USER" | grep "$Second" | awk -F ' ' '{print $4}'`
three=`ps aux | grep -v "grep" | grep -v "USER" | grep "$Third" | awk -F ' ' '{print $4}'`
four=`ps aux | grep -v "grep" | grep -v "USER" | grep "$Fourth" | awk -F ' ' '{print $4}'`
#使用echo顯示結果
echo "$date $first $one"
echo "$date $Second $two"
echo "$date $Third $three"
echo "$date $Fourth $four"
執行結果展示:
# ./mem.sh
2019-05-14 10:23:00 /usr/local/mysql-5.7.25/bin/mysqld 0.0
16.1
2019-05-14 10:23:00 ./tidb-server 14.7
2019-05-14 10:23:00 ./tikv-server 10.1
2019-05-14 10:23:00 ./pd-server 3.8
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2644256/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何用bash shell 指令碼監控 Linux記憶體、磁碟和 CPU?指令碼Linux記憶體
- Linux上執行記憶體中的指令碼和程式Linux記憶體指令碼
- 在Linux中,如何檢視linux中記憶體使用率最高的程序?Linux記憶體
- 利用 Shell 指令碼來監控 Linux 系統的記憶體指令碼Linux記憶體
- redis裡顯示key大小的shell指令碼Redis指令碼
- linux shell指令碼中 =~ 的作用Linux指令碼
- Shell----監控CPU/記憶體/負載高時的程式記憶體負載
- 統計記憶體使用率百分比的指令碼記憶體指令碼
- 監控磁碟使用率的shell指令碼指令碼
- Linux shell程式設計(一)shell指令碼中的變數詳解Linux程式設計指令碼變數
- PowerShell 指令碼來監控 CPU、記憶體和磁碟使用情況:指令碼記憶體
- linux常用的shell指令碼Linux指令碼
- 在Linux中,如何檢查系統的CPU和記憶體使用情況?Linux記憶體
- CPU和記憶體如何互動的記憶體
- 遊戲畫面中實時顯示FPS幀數和CPU和顯示卡使用率、溫度等資訊的方法遊戲
- 如何使用 Bash 指令碼從 SAR 報告中獲取 CPU 和記憶體使用情況指令碼記憶體
- 什麼是Shell指令碼?Shell指令碼在Linux運維工作中的地位!指令碼Linux運維
- Shell指令碼應用兩個例子指令碼
- Linux Shell指令碼Linux指令碼
- 【Azure Developer】通過Azure提供的Azue Java JDK 查詢虛擬機器的CPU使用率和記憶體使用率DeveloperJavaJDK虛擬機記憶體
- Linux命令和shell指令碼學習Linux指令碼
- linux下啟動和終止JAVA程式shell指令碼LinuxJava指令碼
- Linux shell指令碼中內聯輸入 <<- EOF和 <<EOF的區別Linux指令碼
- 使用shell指令碼在Linux中管理Java應用程式指令碼LinuxJava
- 用 Bash 指令碼監控 Linux 上的記憶體使用情況指令碼Linux記憶體
- 程式碼上線的shell指令碼指令碼
- shell指令碼程式設計筆記指令碼程式設計筆記
- shell基礎教程二十一: shell指令碼中echo顯示內容帶顏色指令碼
- Linux shell:執行shell指令碼的幾種方式Linux指令碼
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- struct和malloc記憶體互轉例子Struct記憶體
- 【學習】Linux Shell指令碼程式設計Linux指令碼程式設計
- Linux中執行Shell指令碼的方式(三種方法)Linux指令碼
- Shell指令碼在Linux運維工作中的地位!指令碼Linux運維
- 記憶體檢查指令碼記憶體指令碼
- CPU快取和記憶體屏障快取記憶體
- Linux中如何檢視CPU使用率?Linux
- 如何檢視 Linux 下 CPU、記憶體和交換分割槽的佔用率?Linux記憶體