網站首頁 編程語言 正文
作用:查看系統進程,比如正在運行的進程有哪些,什么時候開始運行的,哪個用戶運行的,占用了多少資源。
參數:
- -e ????顯示所有進程
- -f ????顯示所有字段(UID,PPIP,C,STIME字段)
- -a ????顯示一個終端的所有進程
- -u ????顯示當前用戶進程和內存使用情況
- -x ????顯示沒有控制終端的進程
- –sort ????按照列名排序
一、常用操作
ps命令常用的方式有三種:
-
ps -ef
:查看所有進程 -
ps -aux
:查看所有進程 -
ps -ef | grep tomcat
:查看指定進程
1、查看所有進程(連帶命令行)
ps -ef
字段解釋:
- UID:用戶ID,即進程的擁有者
- PID:進程ID
- PPID:父進程ID
- C:進程占用的CPU百分比
- STIME:進程開始啟動時間
- TTY:登入者的終端機位置
- TIME:進程使用的CPU(運算)時間
- CMD:調用進程的命令
2、顯示所有包含其他使用者的進程
ps -aux
字段解釋:
- USER:創建進程的用戶
- PID:進程ID
- %CPU:進程占用CPU的百分比
- %MEM:進程占用物理內存的百分比
- VSZ:進程占用虛擬內存的大小(單位KB)
- RSS:進程占用實際物理內存的大小(單位KB)
- TTY:進程在哪個終端運行。
- STAT:進程狀態
- START:進程開始啟動的時間
- TIME:進程使用的CPU(運算)時間
- COMMAND:調用進程的命令
3、查看指定進程(grep過濾)
ps -ef
通常會配合 grep
來過濾指定的進程,比如
搜索 mysql 的進程:ps -ef | grep mysql
搜索 tomcat 的進程:ps -ef | grep tomcat
4、查看CPU/內存占用率最高的進程
1)查看進程的時候,讓進程按照CPU使用率排序,然后展示前10行,就能清晰地看到哪些進程占用的資源比較多。
PS1:head -11
是因為標題也算一行
PS2:+
、-
號可以調整排序,-pcpu
表示降序,+pcpu
表示升序
ps -aux --sort=-pcpu | head -11
2)同理,把 -pcpu
換成 -pmem
,就能查看內存使用最多的10個進程。
ps -aux --sort=-pmem | head -11
3)如果不限制行數,也可以使用 sort
按照指定的列排序
降序:
ps -aux | sort -nk 4 -r
升序:
ps -aux | sort -nk 4
5、查看指定用戶的進程
查看某個用戶開啟了哪些進程,可以使用 -u
參數指定用戶名,比如,查看root用戶的進程有哪些:
ps -u root -ef
6、分頁查看進程
除了 grep 外,還可以配合 more 分頁查看進程:ps -ef | more
翻頁的操作同 more 命令,q鍵退出,空格鍵翻頁
二、拓展
1、TTY字段(終端類型)
TTY字段表示運行進程的終端是哪個,這里的終端類型有兩種:tty和pts。
- tty:表示物理終端,其中
tty1~6
是本地字符界面終端,tty7
是本地圖形終端 - pts:表示虛擬終端,通常指遠程連接的終端,范圍是
pts/0~255
,比如第一個遠程連接的終端是pts/0
,第二個遠程連接的終端是pts/1
,依次類推。
2、STAT字段(進程狀態)
STAT字段表示進程的狀態,常見的狀態有以下幾種:
- D:睡眠狀態(不可被喚醒),常用于I/O情況。
- R:進程正在運行
- S:睡眠狀態(可被喚醒)
- T:停止狀態
- W:內存交互狀態
- Z:僵尸進程(不存在但暫時無法消除)
- <:高優先級
- N:低優先級
- L:被鎖入內存
- s:包含子進程
- l:多線程
- +:位于后臺
3、僵尸進程
進程由于非正常停止或程序編寫錯誤,導致子進程比父進程先結束,而父進程又沒有正常回收子進程,使子進程一直在內存中,導致資源浪費。這種情況就是僵尸進程。
PS:正常情況下應該是父進程先結束,然后子進程由init接管,init 結束子進程并回收對應的資源。
原文鏈接:https://blog.csdn.net/wangyuxiang946/article/details/128262390
相關推薦
- 2022-09-23 C#實現目錄跳轉(TreeView和SplitContainer)的示例代碼_C#教程
- 2022-10-30 Android?WebView預渲染介紹_Android
- 2022-05-21 python中的變量命名規則詳情_python
- 2022-04-28 SQL?Server索引結構的具體使用_MsSql
- 2023-08-13 微信小程序底部導航欄最多只能顯示五個,解決辦法
- 2022-11-13 Flutter入門學習Dart語言變量及基本使用概念_Dart
- 2022-07-29 Linux文件管理方法介紹_linux shell
- 2022-09-08 python?字典生成樹狀圖的實例_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支