AIX中的进程管理
1、AIX中的進程
(1)后臺進程
后臺進程運行時,用戶不必等待當前后臺進程的結束,即可以運行下一個進程。
后臺進程的運行方式:
# command &
(2)提高進程優先等級
-- nice:可增加 nice 的值,降低進程的優先級別。
# nice [-lncrement | -n lncrement]
renice:可再增加 nice 的值,以再降低進程的優先級別。
(3)終止進程
--前臺進程
ctrl-c:終止當前的前臺進程
kill:終止指定的前臺進程
--后臺進程
kill:終止指定的后臺進程
(4)kill 的用法
#kill [ -Signalnumber | -Signalname ] Processes
常用:
#kill ProcessesID
# kill -9 ProcessesID
ProcessesID 為進程號,可以用 ps命令獲取
(5)運行長進程
nohup:使用戶的后臺進程在用戶退出系統時仍然運行,如果無指定 nohup 的輸出信息會將保存在 nohup.out 中
# nohup command &
# nohup ls -R / &
2、ps指令
常用參數
-A 表示顯示系統中所有的進程,包括進程組組長(process group leader)和核心進程
-a 表示顯示系統中所有的進程,除了進程組組長和沒有相關終端的進程
-d 表示顯示系統中所有的進程,除了進程組組長,但包括核心進程
-e 表示顯示系統中所有的進程,除了核心進程
-f 表示 顯示進程的詳細信息
-G grouplist 顯示grouplist列表中包含的所有進程組中的進程
-g 同-G grouplist
-k 顯示核心進程
-l 以長格式顯示進程信息,輸出的內容比-f參數輸出的內容多
-m 顯示進程中的線程信息
-o format 按format 指定的格式顯示進程信息
-P Plist顯示由Plist指定進程號的進程信息
-t TList 顯示由Tlist指定終端上的進程信息
-U Ulist 顯示由Ulist指定用戶名或用戶標識號的進程信息
-u Ulist 同-U Ulist
| PS常用指令 | |
| #ps -elf | |
| #ps aux | |
| # ps aux|head -1; ps aux|sort -nr +2 |head -10 | 顯示10個消耗cpu最多的進程 |
| # ps -eakl |head -1; ps -eakl | sort -nr +5 |head -10 | 按順序顯示系統中受罰的進程 |
| # ps vx |head -1; ps vx |sort +6 -nr | head -10 | 按實際內存使用的多少順序顯示系統中的前十個進程 |
| # ps vx |head -1; ps vx |sort -nr +4 | head -10 | 按換入頁面的多少順序顯示系統中的前十個進程 |
3、topas命令監控進程
Topas命令用于監控各種系統資源,如cpu的使用情況, cpu事件和隊列,內存和換頁空間的使用,磁盤性能,網絡性能以及NFS統計等.
它還會報告指派給不同WLM類的進程對系統資源的消耗情況.同時可以報告系統中最熱門的進程和工作量管理器(WLM的熱門類).
Topas命令將熱門進程定義為那些使用大量cpu時間的進程. Topas命令沒有作日志的選項,所有信息都是實時的.
3.1 topas參數
Topas命令可以監控系統活動――memory,I/O,paging space,cpu,process。
此命令包含在perfagent.tools文件集里面。
命令使用方法:
topas [ -d number_of_monitored_hot_disks ] [ -h ]
[ -i monitoring_interval_in_seconds ]
[ -n number_of_monitored_hot_network_interfaces]
[ -p number_of_monitored_hot_processes ]
[ -w number_of_monitored_hot_WLMclasses ]
[ -c number_of_monitored_hot_CPUs ]
[ -P | -W ]
參數:
-d:指定要監控的磁盤數。如果屏幕顯示的區域足夠大的話,這也是磁盤可顯示的最大數。當這個數值超出實際安裝的磁盤數,僅僅監控并顯示安裝磁盤的信息。這個參數缺省值為2,如果這個值設為0,將沒有磁盤被監控。
-h:顯示幫助信息。
-i:設置監控時間的間隔(秒),默認為2秒。
-n:設置被監控的網絡接口數。這也是在屏幕上顯示的最大網絡接口數,當這個值超出了實際安裝的網絡接口數,僅僅監控并顯示安裝的網絡接口信息。參數缺省值為2,如果這個值設為0,將沒有網絡信息被監控。
-p:指定被監控的進程數。這也是在屏幕上顯示的最大進程數。缺省值為20,如果這個值為0,沒見進程信息被監控。得到的這些進程信息是topas的主要開銷。如果進程信息不需要,通常使用這個參數指定那些不想要的進程信息。
-w:指明被監控的WLM類的值。這也是在屏幕上顯示的最大WLM值,當這個值超出了實際安裝的WLM數,僅僅顯示那些安裝的WLM類的信息,缺省值為2,如果這個值為0,將沒有信息顯示。
-c:指明被監控的CPU數。這也是在屏幕上顯示的最大CPU值,當這個值超出了實際安裝的CPU數,僅僅顯示那些安裝的CPU的信息,缺省值為2,如果這個值為0,將沒有信息顯示。
-P:顯示整個全屏進程顯示。顯示一系列最繁忙的進程,類似于默認顯示的一部分,每個進程僅僅顯示幾列,可以通過任何列排序。
-W:顯示全屏WLM(負載管理器)類。頂部顯示一系列WLM類,類似于WLM類的一部分顯示。
3.2 topas子命令
一些子命令:
a這個鍵顯示所有被監控的(CPU,network,disk,WLM,process)不同部分。
c這個鍵在累積報告和最忙的CPU之間進行切換。
d這個鍵在最忙的磁盤和系統總的磁盤活動之間進行切換。
h顯示幫助信息。
n這個鍵在最忙的接口和系統總的網絡活動之間進行切換。
w這個鍵在WLM類的開關之間切換。
p這個鍵進程的開關之間切換。
P這個鍵用全屏進程顯示替換默認的顯示。
W這個鍵用全屏WLM類顯示替換默認顯示。
f移動光標到一個WLM類上,這個鍵可以在WLM屏幕底端顯示一系列進程情況。
q退出程序。
r更新顯示。
3.3 EVENTs部分
下是各個部分表示的含義:
Cswitch:在監控期間每秒鐘內容轉換的次數;
Syscall:在監控期間每秒鐘運行系統呼叫的總次數;
Reads:在監控期間每秒鐘運行讀系統呼叫的次數;
Writes:在監控期間每秒鐘運行寫系統呼叫的次數;
Forks:在監控期間每秒鐘運行派生系統呼叫的次數;
Execs:在監控期間每秒鐘運行執行系統呼叫的次數;
Runqueue:等待處理器空閑以便運行的線程平均數;
Waitqueue:等待分頁完成的線程平均數;
Readch:在監控期間通過讀系統呼叫每秒鐘讀出的字節數;
Writech:在監控期間通過寫系統呼叫每秒鐘寫入的字節數;
Rawin:在監控期間通過TTYs每秒鐘讀入的裸字節數;
Ttyout:在監控期間每秒鐘寫入TTYs的字節數;
Igets:在監控期間每秒鐘到節點查找例行程序的呼叫數;
Namei:在監控期間每秒鐘路徑查找例行程序的呼叫數;
Dirblk:在監控期間通過目錄搜索例行程序每秒鐘掃描到的目錄塊數;
3.4 PAGING部分
PAGING部分顯示的是分頁每秒鐘次數的統計:
Faults:在監控期間每秒鐘發生的分頁錯誤總數;
Steals:在監控期間被虛擬內存管理器每秒鐘偷走的物理內存4k的幀;
PgspIn:在監控期間每秒鐘從分頁空間中讀取的4k分頁數;
PgspOut:在監控期間每秒鐘寫入分頁空間的4k分頁數;
PageIn:在監控期間每秒鐘讀取的4k分頁數,這包括從文件系統讀操作相關的分頁活動,從這個值減去PgspIn的值就是每秒鐘從文件系統讀操作相關的分頁活動數;
PageOut:在監控期間每秒鐘寫入的4k分頁數,這包括向文件系統寫操作相關的分頁活動,從這個值減去PgspOut的值就是每秒鐘向文件系統寫操作相關的分頁活動數;
Sios:在監控期間通過虛擬內存管理器得到的I/O請求數;
3.5 MEMORY部分
Momory部分顯示的是實際內存和在使用中的內存:
Real,MB:以M為單位的實際內存;
%Comp:當前分配給計算分頁片斷的內存占實際內存的百分比。計算分頁片斷由分頁空間產生。
%Nocomp:當前分配非計算分頁片斷的內存占實際內存的百分比。非計算分頁片斷包括那些文件空間,數據文件、可執行文件、或者共享庫文件。
%Client:當前分配給用來緩沖遠程掛載文件的內存占實際內存的百分比。
3.6 PAING SPACE部分
PAING SPACE顯示分頁空間的大小和使用率:
Size,MB:系統里所有分頁空間的大小,以M為單位;
%Used:當前使用的分頁空間占總空間的百分比;
%Free:當前空閑的分頁空間占總空間的百分比。
3.7 CPU工具:
User%:顯示運行的用戶程序所占用的CPU百分比;
Kern%:顯示運行的內核程序所占用的CPU百分比;
Wait%:顯示等待IO操作所占用的CPU百分比;
Idel%:顯示CPU空閑的百分比。
3.8網絡接口:
Interf:網絡接口的名稱;
KBPS:在監控期間每秒鐘通過的以M為單位的總流量,這部分包括每秒鐘接收和發送的總和。
I-Pack:在監控期間每秒鐘接收到的數據包數;
O-Pack:在監控期間每秒鐘發送的數據包數;
KB-In:在監控期間每秒鐘接收到的字節數(以K為單位);
KB-Out:在監控期間每秒鐘發送的字節數(以K為單位)。
3.9物理磁盤:
Disk:物理磁盤的名稱;
Busy%:指明物理磁盤在活動狀態的時間百分比;
KBPS:在監控期間每秒鐘讀寫的字節數(以K為單位);
TPS:每秒鐘物理磁盤的數據傳輸量。一次傳輸指的是一次I/O請求;
KB-Read:每秒鐘從物理磁盤讀出的K字節數;
KB-Write:每秒鐘向物理磁盤寫入的K字節數。
3.10 WLM(負載管理)類:
%CPU Utilization:CPU的平均利用率;
%Mem Utilization:內存的平均利用率;
%Blk I/O:塊I/O的平均利用率;
3.11進程:
NAME:可執行程序的名稱;
Process ID:進程的ID號;
%CPU Utilization:進程的CPU平均使用率,這個值指的是進程在生命周期中的平均使用率;
Paging Space Used:分配給進程的分頁空間大小;
Process Owner:擁有這個進程的用戶名;
Workload Management(WLM)Class:進程屬于哪個WLM class。
4、pTools—進程監控的一組工具
Ptools是Aix5.2引進的system v unix提供的一組工具, 用于查看進程相關的信息.
包括命令procwdx, procfiles, procflags, proccred, procmap, procldd, procsid, procstack, procstop, procrun, procwait, proctree.
4.1 procwdx
Procwdx打印進程的當前工作目錄
# ps vx |head -1; ps vx |sort +3 -nr | head -10
PIDTTY STATTIME PGINSIZERSSLIMTSIZTRS %CPU %MEM COMMAND
53274- A137617:5104036xx00 12.80.0 wait
8196- A136562:0504036xx00 12.70.0 wait
49176- A128993:2604036xx00 12.00.0 wait
57372- A128264:5704036xx00 11.90.0 wait
303258- A533:494121364256xx4200.00.0 dtgreet
483564- A129:40 4401804548xx32240.00.0 /usr/bi
368856- A82:3556287220xx4000.00.0 /usr/sb
0- A59:0775244xx000.00.0 swapper
16392- A58:5906032xx000.00.0 lrud
131254- A52:22 1719512284xx340.00.0 /usr/sb
#
#
# procwdx 131254
131254: /
4.2 procfiles
報告關于進程打開的所有文件描述符的信息
# ps -ef |head -1; ps -ef |grep ora|head -5
UIDPIDPPIDCSTIMETTYTIME CMD
oracle29914610Apr 10- 13:39 ora_pmon_arpdb
oracle32360010Apr 10- 10:31 ora_smon_arpdb
oracle44246010Apr 10-9:38 ora_lgwr_arpdb
oracle46292410Apr 10- 15:14 ora_dbw0_arpdb
oracle47106210Apr 10-1:44 ora_mman_arpdb
#
# procfiles 299146
299146 : ora_pmon_arpdb
Current rlimit: 65534 file descriptors
0: S_IFCHR mode:00 dev:10,4 ino:286 uid:202 gid:201 rdev:2,2
O_RDONLY
1: S_IFCHR mode:00 dev:10,4 ino:286 uid:202 gid:201 rdev:2,2
O_RDONLY
2: S_IFCHR mode:00 dev:10,4 ino:286 uid:202 gid:201 rdev:2,2
O_RDONLY
3: S_IFCHR mode:00 dev:10,4 ino:286 uid:202 gid:201 rdev:2,2
O_RDONLY
4: S_IFCHR mode:00 dev:10,4 ino:286 uid:202 gid:201 rdev:2,2
O_RDONLY
5: S_IFREG mode:0200 dev:10,12 ino:191040 uid:202 gid:201 rdev:0,0
O_WRONLY size:550
6: S_IFREG mode:0200 dev:10,12 ino:190026 uid:202 gid:201 rdev:0,0
O_WRONLY | O_APPEND size:8944487
7: S_IFREG mode:0660 dev:10,12 ino:76412 uid:202 gid:201 rdev:0,0
O_RDWR size:0
8: S_IFREG mode:0200 dev:10,12 ino:190026 uid:202 gid:201 rdev:0,0
O_WRONLY | O_APPEND size:8944487
9: S_IFREG mode:0775 dev:10,12 ino:76408 uid:202 gid:201 rdev:0,0
O_RDWR | O_SYNC size:1552
10: S_IFREG mode:0640 dev:10,12 ino:191039 uid:202 gid:201 rdev:0,0
O_RDWR | O_APPEND size:1148
11: S_IFREG mode:0555 dev:10,12 ino:143871 uid:202 gid:201 rdev:0,0
O_RDONLY size:842240
12: S_IFREG mode:0775 dev:10,12 ino:76408 uid:202 gid:201 rdev:0,0
O_RDWR | O_SYNC size:1552
15: S_IFREG mode:0775 dev:10,12 ino:76409 uid:202 gid:201 rdev:0,0
O_RDWR size:24
16: S_IFREG mode:0555 dev:10,12 ino:143871 uid:202 gid:201 rdev:0,0
O_RDONLY size:842240
4.3 procflags
打印/proc跟蹤標志、暫掛和掛起信號和指定進程中每個線程的其它/proc狀態信息。
4.4 proccred
打印進程的憑證(有效的、真實的、已保存的用戶標識和組標識)。
4.5 procmap
打印進程的地址空間映射。
4.6 procldd
列出進程裝入的動態庫,包括使用dlopen()顯式連接的共享對象。
4.7 procsig
列出進程定義的信號操作。
4.8 procstack
打印進程中的所有線程的十六進制地址和符號名稱。
4.9 procstop
停止PR_REQUESTED事件的進程。
4.10 procrun
啟動在PR_REQUESTED事件中停止的進程。
4.11 procwait
等待全部指定的進程終止。
4.12 proctree.
打印包含指定進程標識或用戶的進程樹。
# ps -ef |head -1; ps -ef |grep ora| sort -10
UIDPIDPPIDCSTIMETTYTIME CMD
root 12289648930460 15:33:56pts/00:00 grep ora
oracle29914610Apr 10- 13:39 ora_pmon_arpdb
oracle32360010Apr 10- 10:31 ora_smon_arpdb
oracle44246010Apr 10-9:38 ora_lgwr_arpdb
oracle46292410Apr 10- 15:14 ora_dbw0_arpdb
oracle47106210Apr 10-1:44 ora_mman_arpdb
oracle47947410Apr 10-1:47 ora_psp0_arpdb
oracle48743210Apr 10- 26:34 ora_mmnl_arpdb
oracle49176210Apr 10- 10:51 ora_ckpt_arpdb
oracle49586410Apr 10-2:00 ora_qmnc_arpdb
oracle78664010Apr 10-0:00 ora_q001_arpdb
oracle88498810 11:46:03-0:00 ora_q004_arpdb
oracle90131010Mar 12-3:18 /oracle/product/10.2.0/bin/tnslsnr LISTENER -inherit
oracle 115529810Apr 10-3:22 ora_mmon_arpdb
oracle 117577610Apr 10- 20:09 ora_cjq0_arpdb
oracle 117983010Apr 10-0:09 ora_s000_arpdb
oracle 122493010 02:24:35-0:00 ora_q002_arpdb
oracle 123297410Apr 10-0:01 ora_reco_arpdb
oracle 124126010Apr 10-0:06 ora_d000_arpdb
#
#
# proctree 901310
901310/oracle/product/10.2.0/bin/tnslsnr LISTENER -inherit
# proctree 1241260
1241260ora_d000_arpdb
總結
- 上一篇: 如何正确的使用mshta命令
- 下一篇: CSS中Modules的使用方法