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 16:15
下一篇 2017-12-17 17:48

相關推薦

  • bash特性之基礎

    bash shell 命令歷史history 環境變量: HISTSIZE :命令歷史記錄的條數 HISTFILE :~/.bash_history HISTFILESIZE: 顯示環境變量:echo    環境變量的修改:export  history history [-c] [-d&…

    Linux干貨 2016-11-22
  • SElinux配置httpd

    一、啟用SELinux策略并安裝httpd服務,改變網站的默認主目錄為/website,添加SELinux文件標簽規則,使網站可訪問     1、修改selinux策略并重啟 [root@localhost ~]# vim /etc/selinux/config# This file controls the stat…

    Linux干貨 2016-09-19
  • 馬哥教育網絡班21期-第七周課程練習

    第七周作業 1、創建一個10G分區,并格式為ext4文件系統; [root@qq ~]# fdisk /dev/sdb         #使用fdisk命令進行分區; Device contains neither&nb…

    Linux干貨 2016-08-08
  • Linux之進程和計劃任務

    進程的概念     內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、 安全功能等     Process: 運行中的程序的一個副本,是被載入內存的一個指令集合進程ID(Process ID,PID)號碼被用來標記各個進程    &nbs…

    Linux干貨 2016-10-09
  • Bonding多塊網卡綁定同一IP地址

    Bonding多塊網卡綁定同一IP地址 就是將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址。 一共有七種模式這里提供三種常用的:   一、Mode 0 (balance-rr)  輪轉( Round-robin…

    Linux干貨 2016-09-07
  • nginx服務

      Nginx 提供web服務,也是工作在應用層的負載均衡器,擁有強大的緩存能力。 本章主要學習,web server、web reverse proxy(http)和cache 緩存服務器使用較多的是varnish+squid: 任何緩存都是反向代理,但是varnish反向代理能力還是與nginx有很大差距。所以,varnish還是做緩存服務,而…

    Linux干貨 2016-11-01
欧美性久久久久