成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux下的進程管理

系統 Linux
在操作系統系統中,進程是一個非常重要的概念。通俗的來說進程是運行起來的程序。唯一標示進程的是進程描述符(PID),在linux內核中是通過task_struck和task_list來定義和管理進程的。

在操作系統系統中,進程是一個非常重要的概念。

一、Linux中進程的相關知識

1、什么是進程呢?

通俗的來說進程是運行起來的程序。唯一標示進程的是進程描述符(PID),在linux內核中是通過task_struck和task_list來定義和管理進程的。

2、進程的分類

1)根據在linux不同模式下運行分為:

核心態:這類進程運行在內核模式下,執行一些內核指令(Ring 0)。

用戶態:這類進程工作在用戶模式下,執行用戶指令(Ring 3)。

如果用戶態的進程要執行一些核心態的指令,此時就會產生系統調用,系統調用會請求內核指令完成相關的請求,就執行的結果返回給用戶態進程。

2)按照進程的狀態可分為:

運行態:running 正在運行的進程

可中斷睡眠態:進程處于睡眠狀態,但是可以被中斷

不可中斷的睡眠態:進程處于睡眠狀態,但是不可以被中斷

停止態:stoped 不會被內核調度

僵死態:zombie產生的原因是進程結束后,它的父進程沒有wait它,所導致的。

3)按照操作的密集程度

CPU密集型:進程在運行時,占用CPU時間較多的進程。

I/O密集型:進程在運行時,占用I/O時間較多的進程。

通常情況下,I/O密集型的優先級要高于CPU密集型。

4)按照進程的處理方式

批處理進程:

交互式進程:

實時進程:

3、進程的優先級

進程的有優先級,是用0-139數字來表示的,數字優先級從小到大依次是:0-99,139-100。

優先級分為2類:

實時優先級:0-99,是由內核維護的

靜態優先級:100-139,可以使用nice來調整,nice值的取值范圍是[-20,19),分別對應100到139。nice默認值是0。

動態優先級:由內核動態維護,動態調整。

二、進程的管理工具

1、pstree命令 查看進程數。 常用用法如下:

wKioL1PLqdyyIb19AAEMNH_9wPY525.jpg

#p#

2、ps 命令 查看進程的相關狀態。支持SysV和BSD兩種風格的選項。

常用選型:

a 與終端相關的進程

x 與終端無關的進程

u 顯示運行進程的用戶

常用組合選項:ps aux

wKiom1PLsWrBbbpGAAMO4REz0So556.jpg

  1. # 下面分別來說明上圖的各個字段的含義  
  2. # USER 進程以什么用戶身份運行  
  3. # PID 進程描述符 具有唯一性  
  4. # %CPU 進程運行時所占的cpu百分比  
  5. # %MEM 進程運行時內存所占的百分比  
  6. # VSZ Virtual memory SiZe 虛擬內存使用大小  
  7. # RSS 常駐內存集,所有不能被置換出去的內存集  
  8. # STAT 表示內存狀態  
  9. # 常用的狀態有:  
  10. # S:可中段睡眠狀態  
  11. # R:運行態  
  12. # D:不可中斷睡眠態  
  13. # T:停止態  
  14. # Z:僵尸態  
  15. # s:session leader 所謂進程的領導者  
  16. # +:表示是前臺進程  
  17. # l:多線程進程  
  18. # N:低優先級進程  
  19. <:高優先級進程  
  20. # TTY 用來表示終端 顯示為“?”的說明是與終端無關的進程  
  21. # START 進程開始時間  
  22. # TIME 進程運行時間  
  23. # COMMAND 執行進程的命令 如果命令被 "[]"包圍,說明是內核線程 

-e 顯示所有進程

-f 顯示完成格式信息

常組合在一起使用:ps -ef

wKiom1PLtv3AM8G8AAIzFXcrn_M342.jpg

但是有些這種情況下,我們的命令有時候顯示不完整

wKioL1PLt_HRegDWAAFNVp3t6Hw292.jpg

此時想要顯示完成就要 ps -efww

wKioL1PLuLPhBEpsAAIah-16qRE706.jpg

-F:顯示額外信息 

-H:顯示進程的層次結構

常用組合方式:ps -eFH

wKiom1PLuWaShIYVAAHLO4AzcZA175.jpg

可能以后我們用到最多的選項:

-o 我們可以自定義顯示字段

  1. # 常用的有:  
  2. # pid command psr pri ni %cpu %mem rsz vsz等 

wKioL1PLvOPC-vh8AAEWrtgKOts189.jpg

#p#

3、pgrep,pidof

pgrep 常用選型:

-U 查看指定用戶的進程號

-G 查看指定用戶組的進程號

-l 顯示進程名和進程號

wKioL1PLvhCQMqZ0AAD7aQPiG9s329.jpg

pidof:只顯示已啟動進程的PID

  1. [root@server ~]# pidof httpd # 沒啟動的進程不顯示  
  2. [root@server ~]# pidof man  
  3. 5283 
4、top命令

實時監控系統資源

  1. # 執行top命令后,進入交互式模式 

wKiom1PLwTvzUMNsAASsHaYJe14951.jpg

  1. # top中的一些交互式命令:  
  2. # l:控制是否顯示第一行,負載均衡信息  
  3. # t:控制是否顯示進程信息由和cpu信息  
  4. # m:控制是否顯示內存,交換信息  
  5. # I 或者 1(數字):是否分別顯示cpu每個信息  
  6. # M: 按%mem排序顯示,從大到小  
  7. # k: kill 殺掉進程  
  8. # s:修改默認刷新時間 默認是3秒  
  9. # 下面解釋抬頭信息:  
  10. top - 21:35:17 up 10:03,  4 users,  load average: 0.00, 0.00, 0.00  
  11. #   系統時間   啟動時間 登錄用戶數    負載均衡:1min 5min 15min  
  12. # 何為系統負載?在這里指的是等待在進程隊列里的平均進程數  
  13. # 此出顯示的信息 等價于 uptime 命令  
  14. Tasks: 165 total,   1 running, 164 sleeping,   0 stopped,   0 zombie  
  15. # 進程總數            運行數     睡眠態數        停止態數    僵尸進程數  
  16. Cpu(s):  0.0%us,0.0%sy, 0.0%ni, 100.0%id, 0.0%wa, 0.0%hi, 0.0%si,  0.0%st  
  17. # 0.0%us:user space:用于運行用戶空間的程序所占的cpu百分比   
  18. # 0.0%sy:system space:用于運行內核空間的程序所占的cpu百分比     
  19. # 0.0%ni:nice值調用時間所占cpu百分百比  
  20. # 100.0%id:系統cpu空閑所占百分比  
  21. # 0.0%wa:用于等待I/O所占的cpu百分比  
  22. # 0.0%hi:硬中斷所占cpu百分比  
  23. # 0.0%si:軟中斷所占cpu百分比  
  24. # 0.0%st:系統被“偷走”的cpu所占的百分比,一般指的是用于虛擬機運行所占的cpu  
  25. Mem:   1012548k total,   396328k used,   616220k free,    99444k buffers  
  26. #       總內存大小     使用的內存大小    剩余內存大小    緩存的大小  
  27. Swap:  2097144k total,        0k used,  2097144k free,   144156k cached  
  28. #    交換分區總大小        使用的        剩余的            緩沖大小  
  29. # 此處顯示的信息等價于 free 命令 

常用選項:

-d #: 指定刷新時間間隔

-b: 以批次的方式顯示top的刷新

-n #: 顯示的批次

例如:top -d 4 -b 2 -n 3

#p#

4、htop

htop命令是top命令的升級版,無論是在功能上還是在界面顯示上,都比top命令更勝一籌。

u: 交互式選擇顯示指定用戶的進程

l: 顯示光標所在進程所打開的文件列表

s: 顯示光標所在進程執行的系統調用

a: 綁定進程到指定的CPU

#:快速定位光標至PID為#的進程上

下圖是htop的界面。這個工具比較強大,用法功能比較多,在這里先做簡單介紹。以后筆者會專門寫htop的博客。

wKiom1PL1jHCpKO4AATAgaiStJA686.jpg

5、vmstat

wmstat 查看虛擬使用情況

  1. # 常用用法:  
  2. # vmstat 顯示信息會默認1秒刷新一次,一直顯示  
  3. # vmstart -n 2 顯示信息會2秒刷新一次,一直顯示  
  4. # vmstat -n 1 4 顯示信息會1秒刷新一次,刷新4次  
  5. [root@server ~]# vmstat -n 1 1  
  6. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----  
  7. r b swpd free buff cache si so bi bo in cs us sy id wa st  
  8. 0 0 0 614392 100468 144776 0 0 2 1 6 5 0 0 100 0 0  
  9. # 我們解釋一下每個字段的含義:  
  10. # procs字段 關于進程的  
  11. # r 指運行隊列的進程數,如果過長,可能是cpu性能較低  
  12. # b 阻塞隊列的長度,通常是用于等待I/O的完成。如果太大,說明I/O性能較低  
  13. # memory字段 關于內存使用的  
  14. # swap 使用的交換內存大小  
  15. # free 空余內存大小 它的值=總大小-buff-cache-used  
  16. # buff 緩沖大小,目的是為了加速I/O的寫操作(一般是磁盤)  
  17. # cache 緩存大小,摸底是為了加速I/O的讀操作(一般是磁盤)  
  18. # swap字段 說明交換內存  
  19. # si swapin 指的是數據進入交換內存的速率 單位:KB/s  
  20. # so swapout 指的是數據出交換內存的速率 單位:KB/s  
  21. # 如果這2個值比較大的時候,會出現抖動現象。建議增加內存  
  22. # io字段 I/O的說明  
  23. # bi:Block in 從塊設備讀入內存的速率 KB/s  
  24. # bo: block out 保存到塊設備的速率 KB/s  
  25. # 這就是我們通常說的磁盤的讀寫性能,可以通過RAID提高。  
  26. # system字段 關于系統的  
  27. # in: interruppt 中斷發生的速率  
  28. # cs: 上下文切換的速率(進程調度)  
  29. # cpu字段 說明cpu的使用情況  
  30. # us:user space:用于運行用戶空間的程序所占的cpu百分比  
  31. # sy:system space:用于運行內核空間的程序所占的cpu百分比   
  32. # id:系統cpu空閑所占百分比  
  33. # wa:用于等待I/O所占的cpu百分比,這是由于cpu和i/o速度相差太多所造成的  
  34. # st:系統被“偷走”的cpu所占的百分比,一般指的是用于虛擬機運行所占的cpu的時間百分比 

6、nice,renice

調整進程的優先級。 

nice 在進程啟動的時候設置優先級。

  1. # 常用參數:  
  2. # -n NICE 例如:nice -n 3 httpd  
  3. # 一般情況下,nice值是負值的設定一般有管理員來設定。普通用戶只能設置nice為正值。  
  4. # 如果不指定 -n 參數,默認的nice值是10 

renice 重新設置已啟動進程的優先級。

  1. # 常用選項是:  
  2. # -n NICE 重新設定nice的值   
  3. # -p PID  設定進程的PID 

7、kill,killall

對于有Linux C編程經驗的人來說,我們知道IPC通信方式之一就是通過信號量(signal),那么對于kill和killall命令來說,它們與信號量有著很大的關系,或者說kill,killall命令通過信號量讓我們可以手動的向進程傳遞信號來控制進程。

常見的信號量如下:

  1. [root@server ~]# kill -l  
  2. 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP  
  3. 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1  
  4. 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM  
  5. 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP  
  6. 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ  
  7. 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR  
  8. 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3  
  9. 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8  
  10. 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13  
  11. 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12  
  12. 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7  
  13. 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2  
  14. 63) SIGRTMAX-1 64) SIGRTMAX   
  15. # 我們常用到的信號是:  
  16. # 1 SIGHUP 在不關閉進程的情況下,重讀配置文件。ngnix在這方面做得相當的好,甚至可以實現在線升級。  
  17. # 2 SIGINT 中斷信號 相當于 ctrl + C   
  18. # 9 SIGKILL 暴力殺死  
  19. # 15 SIFTERM 優雅的關閉 默認是這種情況  
  20. # kill用法如下:  
  21. # kill [-SIGNAL] PID  
  22. # 對于SIGNAL有三種表示:例如:1) -9 -15 -1 -2 2)-SIGKILL -SIGHUP -SIGTERM 3) -HUP -KILL -TERM -INT 等。  
  23. #   
  24. # killall是殺掉一類進程  
  25. # 例如:killall httpd 等價于 kill `pidof httpd` 

#p#

8、jobs,bg,fg

什么是作業呢?作業就是許多進程一起協同完成一項具體的工作。作業有前臺作業和后臺作業2種。

使用 & 或者 ctrl + Z可以把一個進程打入后臺。

  1. # ping 192.168.0.1 &  
  2. # 這樣打入后臺的運行的作業,退出終端的時候,作業就會終止。  
  3. # 使用 nohup 命令可避免這個問題  
  4. # nohup ping 192.168.0.1 &  
  5. # 可以使用jobs命令查看后臺的作業  
  6. # 每個作業都有一個作業號來標識作業  
  7. # 作業控制命令  
  8. # bg [[%]JOB_NUM]: 讓送往后臺的作業繼續在后臺運行   
  9. # fg [[%]JOB_NUM]: 將后臺作業調回前臺  
  10. # kill %JOB_NUM: 終止指定的作業 

9、dstat命令,查看各種狀態信息

用法:dstat [-afv] [options..] [delay [count]]

常用參數 具體意義
-c 顯示cpu統計數據,如有多個CPU匯總統計
-d 顯示disk統計數據,如有多塊磁盤則匯總統計
-D DEVICE 顯示特定磁盤的信息
-g 顯示page信息(具體什么是page以及他的作用,會在以后內存調優博客中具體說明)
-i 顯示中斷的統計數據
-m 顯示內存的統計信息
-l 顯示系統的負載信息
-n 顯示網絡接口的相關屬性
-s 顯示系統屬性
-N INTER_FACE_NAME 顯示特定接口的屬性
-s 顯示交換內存的屬性
-p 顯示進程隊列
--ipc 顯示ipc消息隊列、信號量和共享內存的使用狀況
-a 等價于 -cdngy 顯示CPU,磁盤,網卡,page,系統屬性
-f 以完整格式顯示所有信息,
--tcp,--udp 顯示tcp,udp狀態信息

 更多參數查看 man 手冊。

示例:

wKioL1PPjaLSKNvDAAIC62HqoLo613.jpg

10、查看內存映射

pmap PID 查看對應進程的內存映射,常用的用法是:pman `pidof PROCESS_NAME`。當然這些信息也可以查看 /proc/PID/pmap 文件查看。

wKioL1PPlxuwUs3qAASA-p7eoQo539.jpg

11、glances命令

一款強大的系統監控工具:能實時監控像cpu,meomory,load,swap,Network,mount,disk等信息。

wKiom1PPmBeQvjSkAAUMI3MjxWg937.jpg

其他功能的使用,請使用 h 來獲取幫助。由于此工具比較強大,因此這里者簡單的介紹,后期會于 htop 工具做專門的介紹。

原文鏈接:http://guoting.blog.51cto.com/8886857/1440640

 

責任編輯:牛小雨 來源: 51CTO
相關推薦

2023-03-02 23:50:36

Linux進程管理

2011-01-11 13:47:27

Linux管理進程

2023-03-05 16:12:41

Linux進程線程

2021-03-17 21:34:44

Linux內存管理

2012-02-06 09:40:25

2010-02-25 10:28:43

Linux進程管理

2017-04-11 16:00:40

Linuxsyslog進程

2009-09-16 08:43:51

linux進程線程

2010-01-05 10:00:48

Linux進程間通信

2009-10-23 17:35:16

linux進程管理

2019-05-08 11:10:05

Linux進程語言

2023-03-03 00:03:07

Linux進程管理

2009-10-27 08:57:50

linux殺死進程

2013-10-11 14:51:16

Linux進程管理

2021-04-15 05:51:25

Linux

2021-04-22 07:47:46

Linux進程管理

2009-03-05 09:43:32

Linux系統進程管理命令

2017-01-15 20:58:04

Linux進程作業管理

2013-12-19 15:01:03

LinuxLinux進程

2013-11-06 15:35:49

LinuxLinux進程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 狠狠干天天干 | 亚洲精品视频在线观看免费 | 91精品国产麻豆 | 国产精品久久久久久久一区探花 | 美女国内精品自产拍在线播放 | 拍戏被cao翻了h承欢 | 在线国产99 | 国产欧美久久一区二区三区 | 久久久久免费精品国产 | 国产成在线观看免费视频 | 九九视频在线观看 | 日韩av最新网址 | 久久福利电影 | 国产精品一区在线观看 | 中文字幕国产精品视频 | 久久精品亚洲成在人线av网址 | 国产一区二区三区视频 | 本道综合精品 | 一道本不卡视频 | 日韩一二三| 国产一级电影在线观看 | 久久精品视频在线播放 | 在线视频一区二区三区 | 国产一区二区三区在线 | 亚洲视频在线观看 | 精品一区二区三区在线观看国产 | 中文字幕av在线播放 | 伊人免费网| 亚洲免费网站 | 欧美激情五月 | 亚洲成人一区二区三区 | 亚洲www啪成人一区二区麻豆 | 亚洲精品久久久蜜桃网站 | 羞视频在线观看 | 欧美操操操 | 狠狠综合久久av一区二区小说 | 久久丁香| www.亚洲一区二区三区 | 337p日本欧洲亚洲大胆精蜜臀 | 欧美日韩在线免费观看 | 成人午夜视频在线观看 |