構建包含jdk和nginx的基礎映象,部署前後端專案
https://www.cnblogs.com/fuqu/p/10230385.html
Linux top命令的用法詳細詳解
目錄
正文
參考:https://www.cnblogs.com/zhoug2020/p/6336453.html
回到頂部1、命令欄位詳解
top命令的輸出如下
- 第一行:系統執行時間和平均負載
當前時間、系統已執行時間、當前登入使用者的數量、最近5、10、15分鐘內的平均負載
- 第二行:任務
任務的總數、執行中(running)的任務、休眠(sleeping)中的任務、停止(stopped)的任務、殭屍狀態(zombie)的任務
- 第三行:cpu狀態
欄位 | 欄位釋義 |
us | user: 執行(未調整優先順序的) 使用者程序的CPU時間 |
sy | system: 執行核心程序的CPU時間 |
ni | niced:執行已調整優先順序的使用者程序的CPU時間 |
id | idle:空閒時間 |
wa | IO wait: 用於等待IO完成的CPU時間 |
hi | 處理硬體中斷的CPU時間 |
si | 處理軟體中斷的CPU時間 |
st | 這個虛擬機器被hypervisor偷去的CPU時間(譯註:如果當前處於一個hypervisor下的vm,實際上hypervisor也是要消耗一部分CPU處理時間的) |
- 第四行:記憶體
全部可用記憶體、已使用記憶體、空閒記憶體、緩衝記憶體
- 第五行:swap
全部、已使用、空閒和緩衝交換空間
- 第七行至N行:各程序任務的的狀態監控
欄位 | 釋義 |
PID | 程序ID,程序的唯一識別符號 |
USER | 程序所有者的實際使用者名稱 |
PR | 程序的排程優先順序。這個欄位的一些值是'rt'。這意味這這些程序執行在實時態。 |
NI | 程序的nice值(優先順序)。越小的值意味著越高的優先順序。負值表示高優先順序,正值表示低優先順序 |
VIRT |
virtual memory usage 虛擬記憶體,程序使用的虛擬記憶體。程序使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES 1、程序“需要的”虛擬記憶體大小,包括程序使用的庫、程式碼、資料等 |
RES |
resident memory usage 常駐記憶體,駐留記憶體大小。駐留記憶體是任務使用的非交換實體記憶體大小。程序使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA 1、程序當前使用的記憶體大小,但不包括swap out |
SHR |
SHR:shared memory 共享記憶體 1、除了自身程序的共享記憶體,也包括其他程序的共享記憶體 |
S |
這個是程序的狀態。它有以下不同的值:
|
%CPU | 自從上一次更新時到現在任務所使用的CPU時間百分比。%CPU顯示的是程序佔用一個核的百分比,而不是整個cpu(N核)的百分比,有時候可能大於100,那是因為該程序啟用了多執行緒佔用了多個核心,所以有時候我們看該值得時候會超過100%,但不會超過總核數*100 |
%MEM | 程序使用的可用實體記憶體百分比 |
TIME+ | 任務啟動後到現在所使用的全部CPU時間,精確到百分之一秒 |
COMMAND | 執行程序所使用的命令。程序名稱(命令名/命令列) |
2、互動命令
按“h”或者“?”,會顯示幫助,如下
Z:改變顏色;B:加粗
t:顯示和隱藏任務/cpu資訊;m:記憶體資訊
1:監控每個邏輯CPU的狀況;
f:進入欄位顯示配置模式,可增加或者移除顯示欄位,按相應的字母新增或去除;o:進入欄位順序設定模式,可配置顯示位置順序,按相應的字母往下移動,按“shift+相應的字母”往上移動---------常用
F:進入欄位排序配置模式,可設定排序的欄位;
R:正常排序/反向排序;
s:設定重新整理的時間--------常用
u:輸入使用者,顯示使用者的任務
i:忽略閒置和僵死程序。這是一個開關式命令。
r:重新安排一個程序的優先級別。系統提示使用者輸入需要改變的程序PID以及需要設定的程序優先順序值。輸入一個正值將使優先順序降低,反之則可以使該程序擁有更高的優先權。預設值是10。
c:切換顯示命令名稱和完整命令列。
M:根據駐留記憶體大小進行排序。-------------常用
P:根據CPU使用百分比大小進行排序。-----------常用
H:顯示執行緒
回到頂部3、常用引數與命令
d:指定每兩次螢幕資訊重新整理之間的時間間隔。當然使用者可以使用s互動命令來改變之。
p:通過指定監控程序ID來僅僅監控某個程序的狀態。
top –p PID
-H: 設定執行緒模式
顯示某個程序所有活躍的執行緒消耗情況
top -H -p pid
按f、再按j把P調出來,P代表”Last used CPU”
設定執行緒模式下:第二行的tasks指的是執行緒個數
回到頂部4、疑問
如下這個java程序設定的最大可用記憶體為128m,但是這裡virt達到了2478m,RES達到了295m,為什麼?
參考答案:http://www.cnblogs.com/seasonsluo/p/java_virt.html
結論:
VIRT高是因為分配了太多地址空間導致。
一般來說不用太在意VIRT太高,因為你有16EB的空間可以使用。