一.top指令
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL90TUOBTVU1Ebk1mYxAnMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1AjN3QDOwYTM1EDNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
第一行,任務隊列資訊,同 uptime 指令的執行結果
系統時間:16:09:44 運作時間:up64 days, 1:10 目前登入使用者: 1 user
負載均衡(uptime) load average: 0.00, 0.01, 0.05,三個數分别是1分鐘、5分鐘、15分鐘的負載情況。load average資料是每隔5秒鐘檢查一次活躍的程序數,然後按特定算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高于5的時候就表明系統在超負荷運轉了。
第二行,Tasks — 任務(程序)
總程序:114total, 運作:1 running, 休眠:113sleeping, 停止: 0 stopped, 僵屍程序: 0 zombie
第三行,cpu狀态資訊
0.2%us【user space】— 使用者空間占用CPU的百分比。
0.3%sy【sysctl】— 核心空間占用CPU的百分比。
0.0%ni【】— 改變過優先級的程序占用CPU的百分比
99.7%id【idolt】— 空閑CPU百分比
0.0%wa【wait】— IO等待占用CPU的百分比
0.0%hi【Hardware IRQ】— 硬中斷占用CPU的百分比
0.0%si【Software Interrupts】— 軟中斷占用CPU的百分比
第四行,記憶體狀态(實體記憶體)
7733528k total, 4490188k used, 147412k free, 3095928k buffers【緩存的記憶體量】
第五行,swap交換分區資訊(交換空間)
0k total, 0k used, 0k free, 2891000k avail Mem【表示可用于程序下一次配置設定的實體記憶體數量】
可用記憶體=free + buffer + cached
對于記憶體監控,在top裡我們要時刻監控第五行swap交換分區的used,如果這個數值在不斷的變化,說明核心在不斷進行記憶體和swap的資料交換,這是真正的記憶體不夠用了。
第七行以下:各程序(任務)的狀态監控
PID — 程序id
USER — 程序所有者
PR — 程序優先級
NI — nice值。負值表示高優先級,正值表示低優先級
VIRT — 程序使用的虛拟記憶體總量,機關kb。VIRT=SWAP+RES
RES — 程序使用的、未被換出的實體記憶體大小,機關kb。RES=CODE+DATA
SHR — 共享記憶體大小,機關kb
S —程序狀态。D=不可中斷的睡眠狀态 R=運作 S=睡眠 T=跟蹤/停止 Z=僵屍程序
%CPU — 上次更新到現在的CPU時間占用百分比
%MEM — 程序使用的實體記憶體百分比
TIME+ — 程序使用的CPU時間總計,機關1/100秒
COMMAND — 程序名稱(指令名/指令行)
二.使用
1.用top指令指定固定的PID
ps -ef|grep omsacc
cloud-u+ 4680 4678 0 Mar10 ? 00:47:06 /apps/jdk1.7.0_60/bin/java -Djava.util.logging.config.file=/apps/omsacc/omsacc-tomcat-8640/conf/logging.properties -
top -p 4680
2.使用ps查詢指定程序名或者PID的占用情況
ps -aux | grep omsacc 或者 ps -aux | grep 4680
cloud-u+ 4680 0.0 9.8 3704608 762316 ? Sl Mar10 47:08 /apps/jdk1.7.0_60/bin/java -Djava.util.logging.config.file=/apps/omsacc/omsacc-tomcat-8640/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Xms1024m -Xmx2048m -XX:PermSize=128m -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8646 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899 -classpath /apps/omsacc/omsacc-tomcat-8640/bin/bootstrap.jar:/apps/omsacc/omsacc-tomcat-8640/bin/tomcat-juli.jar -Dcatalina.base=/apps/omsacc/omsacc-tomcat-8640 -Dcatalina.home=/apps/omsacc/omsacc-tomcat-8640 -Djava.io.tmpdir=/apps/omsacc/omsacc-tomcat-8640/temp org.apache.catalina.startup.Bootstrap start
4680為PID
0.0為CPU占用百分比(注意:如果有兩個CPU,32核64線程,那麼總占比是6400%)
9.8為記憶體占用百分比
3.檢視更詳細的記憶體占比
cat /proc/4680/status