linux中進程及內存管理工具

pstree 顯示進程樹 ({}是線程)

選項-p #顯示進程編號

pstree username #查看指定用戶的進程

centos7中可以使用選項-s來查看指定進程的父子進程

 

ps (默認顯示當前終端運行的進程)

支持三種選項:

1、UNIX選項

-C cmdlist 指定命令(允許同時指定多個命令)

-L 顯示線程

-e: 顯示所有進程,相當于-A

-f: 顯示完整格式程序信息

-F: 顯示更完整格式的進程信息

-H: 以進程層級格式顯示進程相關信息

-u userlist 指定有效的用戶ID或名稱(發起者)

-U userlist 指定真正的用戶ID或名稱(執行者)

-g gid或groupname 指定有效的gid或組名稱

-G gid或groupname 指定真正的gid或組名稱

-p pid 顯示指定pid的進程(支持多個)

–ppid pid 顯示屬于pid的子進程

-M 顯示SELinux信息,相當于Z

-t 指定終端號

2、BSD選項

a 選項包括所有終端中的進程

x 選項包括不鏈接終端的進程

u 選項顯示進程所有者的信息

f 選項顯示進程樹,相當于 –forest

k|–sort 屬性 對屬性排序,屬性前加- 表示倒序

o 屬性… 選項顯示定制的信息 pid、cmd、%cpu、%mem

L 顯示支持的屬性列表

常用組合-例:

ps axo pid,cmd,%cpu –sort %cpu

ps -C vim o pid,cmd,%mem

ps aux

3、GNU選項

–sort

–ppid

 

ps輸出屬性說明

VSZ 虛擬內存(系統分配的內存大小)

RSS 實際內存(進程實際可用的內存大小)

STAT:進程狀態

R:running

S: interruptable sleeping

D: uninterruptable sleeping

T: stopped

Z: zombie

+: 前臺進程

l: 多線程進程

L:內存分頁并帶鎖

N:低優先級進程

<: 高優先級進程

s: session leader,會話(子進程)發起者

ps示例

列出有效組名稱(或會話)所擁有的所有進程:

ps -fg mysql ps -fG 27

以父進程ID來顯示其下所有的進程,如顯示父進程為1154的 所有進程:

ps -f –ppid 1234

查看進程的PID,PPID,用戶名和命令:

ps -eo pid,ppid,user,cmd

自定義格式顯示文件系統組,ni值開始時間和進程的時間:

ps -p 1234 -o pid,ppid,fgroup,ni,lstart,etime

查找指定進程名所有的所屬PID,在編寫需要從std輸出或文 件讀取PID的腳本時這個參數很有用:

ps -C httpd,sshd -o pid=

檢查一個進程的執行時間

ps -eo comm,etime,user | grep nginx

查找占用最多內存和CPU的進程:

ps -eo pid,ppid,cmd,%mem,%cpu –sort=-%mem | head

ps -eo pid,ppid,cmd,%mem,%cpu –sort=-%cpu | head

使用watch實用程序執行重復的輸出以實現對就程進行實時的 監視,如下面的命令顯示每秒鐘的監視:

watch -n 1 ‘ps -eo pid,ppid,cmd,%mem,%cpu –sort=- %mem | head’

 

pidof cmd?? #查看此進程下的所有子進程

說明:此命令可以作為判斷進程是否運行正常的手段

 

uptime

顯示當前時間,系統已啟動的時間、當前上線人數,系統平均負載(1、5、10分鐘的平均負載,一般不會超過1)

系統平均負載: 指在特定時間間隔內運行隊列中的平均進程數

通常每個CPU內核的當前活動進程數不大于3,那么系統 的性能良好。如果每個CPU內核的任務數大于5,那么此 主機的性能有嚴重問題

如果linux主機是1個雙核CPU,當Load Average 為6的 時候說明機器已經被充分使用

 

top:有許多內置命令:

排序:

P:以占據的CPU百分比,%CPU

M:占據內存百分比,%MEM

T:累積占據CPU時長,TIME+

首部信息顯示:

uptime信息:l命令

tasks及cpu信息:t命令

cpu分別顯示:1 (數字)

memory信息:m命令

退出命令:q

修改刷新時間間隔:s

終止指定進程:k

保存文件:W

 

欄位信息簡介

us:用戶空間

sy:內核空間

ni:調整nice時間

id:空閑

wa:等待IO時間

hi:硬中斷

si:軟中斷(模式切換)

st:虛擬機偷走的時間

 

選項:

-d #: 指定刷新時間間隔,默認為3秒

-b: 全部顯示所有進程

-n #: 刷新多少次后退出

 

ltop命令

選項:

-d #: 指定延遲時間;

-u UserName: 僅顯示指定用戶的進程

-s COLUME: 以指定字段進行排序

子命令:

s: 跟蹤選定進程的系統調用

l: 顯示選定進程打開的文件列表

a:將選定的進程綁定至某指定CPU核心

t: 顯示進程樹

 

vmstat命令:虛擬內存信息(以內存為參照)

vmstat 1 5?? #1秒顯示1次,顯示5次

輸出說明:

procs

r:可運行(正運行或等待運行)進程的個數,和核心數有關

b:處于不可中斷睡眠態的進程個數(被阻塞的隊列的長度)

memory

swpd: 交換內存的使用總量

free:空閑物理內存總量

buffer:用于buffer的內存總量

cache:用于cache的內存總量

swap:

si:從磁盤交換進內存的數據速率(kb/s)

so:從內存交換至磁盤的數據速率(kb/s)

io:

bi:從塊設備讀入數據到系統的速率(kb/s)

bo: 保存數據至塊設備的速率

system

in: interrupts 中斷速率,包括時鐘

cs: context switch 進程切換速率

選項

-s: 顯示內存的統計數據

 

iostat? #統計CPU和設備IO信息

iostat 1 10? #1秒顯示一次,10次結束

 

glances 遠程監控主機狀態

服務器模式:

glances -s -B IPADDR

IPADDR: 指明監聽的本機哪個地址

不加-B 監聽在所有地址

客戶端模式:

glances -c IPADDR

IPADDR:要連入的服務器端地址

 

iotop命令是一個用來監視磁盤I/O使用狀況的top類工具

iotop輸出說明

第一行:Read和Write速率總計

第二行:實際的Read和Write速率

第三行:參數如下:

線程ID(按p切換為進程ID)

優先級

用戶

磁盤讀速率

磁盤寫速率

swap交換百分比

IO等待所占的百分比

線程/進程命令

iotop常用參數

-o, –only只顯示正在產生I/O的進程或線程。除了傳參,可以在運行過程中按o生效。

-b, –batch非交互模式,一般用來記錄日志。

-n NUM, –iter=NUM設置監測的次數,默認無限。在非交互模式下很有用。

-d SEC, –delay=SEC設置每次監測的間隔,默認1秒,接受非整形數據例如1.1。

-p PID, –pid=PID指定監測的進程/線程。

-u USER, –user=USER指定監測某個用戶產生的I/O

-P, –processes僅顯示進程,默認iotop顯示所有線程。

-a, –accumulated顯示累積的I/O,而不是帶寬。

-k, –kilobytes使用kB單位,而不是對人友好的單位。在非交互模式下,腳本編程有用

-t, –time 加上時間戳,非交互非模式

-q, –quiet 禁止頭幾行,非交互模式,有三種指定方式

-q 只在第一次監測時顯示列名

-qq 永遠不顯示列名

-qqq 永遠不顯示I/O匯總

交互按鍵

left和right方向鍵:改變排序

r:反向排序

o:切換至選項–only

p:切換至–processes選項

a:切換至–accumulated選項

q:退出

i:改變線程的優先級

 

kill命令(

顯示當前系統可用信號

kill –l或trap -l

常用信號

1) SIGHUP: 無須關閉進程而讓其重讀配置文件

2) SIGINT: 中止正在運行的進程;相當于Ctrl+c

3) SIGQUIT:相當于ctrl+\

9) SIGKILL: 強制殺死正在運行的進程

15) SIGTERM:終止正在運行的進程

18) SIGCONT:繼續運行

19) SIGSTOP:后臺休眠

0? 檢查進程是否正常工作

 

指定信號的方法:

(1) 信號的數字標識:1, 2, 9

(2) 信號完整名稱:SIGHUP

(3) 信號的簡寫名稱:HUP

 

例:

按pid

kill -SIGNAL pid

按名字

Killall -SIGNAL cmd

按模式

pkill

-SIGNAL

-u uid: effective user,生效者

-U uid: real user,真正發起運行命令者

-t terminal: 與指定終端相關的進程

-l: 顯示進程名(pgrep可用)

-a: 顯示完整格式的進程名(pgrep可用)

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90203

(0)
oranixoranix
上一篇 2017-12-17
下一篇 2017-12-17

相關推薦

  • N25-第一周博客

      第一周博客作業內容 1.描述計算機的組成及其功能 2.按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別 3.描述Linux哲學思想,并按照自己的理解對其進行解釋性描述。 4.說明Linux系統上命令的使用格式:詳細介紹,ifconfg,echo,tty,startx,export pwd,history,shutdown,powe…

    Linux干貨 2016-12-03
  • 安裝CentOS 6.9

    安裝完VMvare,VMware可以運行虛擬機,虛擬機就相當于一臺電腦,然后我們在這臺電腦上安裝Linux系統,我們這次介紹安裝CentOS 6.9的過程 1.打開VMware,依照下圖步驟安裝     首先我們需要創建新的虛擬機,然后配置出適合自己物理機的虛擬機 2.點擊典型類型安裝     這里推薦使用典…

    2017-07-12
  • linux 文本處理工具 grep cut sort等

    linux day 7 間歇性回憶 自動屬于這個組 是  SGID 的功能 chmod g+s /data/testdir setfacl —m g:g2:rwx /data/testdir setfacl -m b:g:g2:rwx /data/testdir setfacl -m d:g:g3:r testdir chmod o= testdi…

    Linux干貨 2016-08-08
  • 正則表達式

    什么是正則表達式? 正則表達式(Regular Expression)是一種文本模式,包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為”元字符”)。正則表達式使用單個字符串來描述、匹配一系列匹配某個句法規則的字符串,許多程序設計語言都支持利用正則表達式進行字符串操作。正則表達式是煩瑣的,但它是強大的,學會之后的應用會讓你除…

    Linux干貨 2017-06-01
  • lvs 基本概念

    LVS(linux virtual machine) 的簡寫,是一個虛擬的服務器集群系統,主要用于4層負載均衡。 宗旨: 使用集群技術和Linux操作系統實現一個高性能、高可用的服務器. 很好的可伸縮性(Scalability) 很好的可靠性(Reliability),應該還是高可用吧 很好的可管理性(Manageability…

    Linux干貨 2015-09-14
  • Linux 系統啟動流程及bash 腳本編程練習

    馬哥教育網絡班23期 第10周課堂練習 Linux 系統啟動流程及bash 腳本編程練習1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) 2、為運行于虛擬機上的CentOS 6添加一塊新硬件,提供兩個主分區; (1)為硬盤新建兩個主分區;并為其安裝grub; (2)為硬盤的第一個主分區提供內核和ramdisk文件;為第二個分區提供r…

    Linux干貨 2017-01-23
欧美性久久久久