亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux進程與內存的基礎命令分別是哪些

發布時間:2021-11-01 17:15:53 來源:億速云 閱讀:110 作者:柒染 欄目:系統運維

這篇文章給大家介紹Linux進程與內存的基礎命令分別是哪些,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

計算機存在的目的就是為了運行各種各樣的程序,迄今我們介紹的絕大多數命令,都是為了完成某種計算而用編程語言編寫的程序,它們以文件的形式保存在操作系統之中(比如/bin下的各種命令);但靜態的程序并不能“自發的”產生結果,只有在操作系統中為其指定輸入數據并運行起來,才能得到輸出結果。而操作系統中程序運行的最主要表現形式便是進程。

靜態程序可以長久的存在,動態的進程具有有限的生命周期。每次程序運行的開始(如鍵入一條命令后按下回車鍵),操作系統都要為程序的運行準備各種資源,這些資源絕大多數都處于內存之中。為了限制多用戶進程的權限,linux還定義了兩種進程運行時態:內核態和用戶態;當進程想要請求系統服務時(比如操作一個物理設備),必須通過系統調用(操作系統提供給用戶空間的接口函數)來實現,此時系統切換到內核態,代表程序執行該系統調用,執行完畢后系統切換回用戶態,繼續執行程序代碼。

小編介紹linux中關于進程與內存的管理命令(更多的是查看命令)

1、uptime 系統運行時間

uptime [options]

單獨執行此命令時,輸出信息表示:當前時間,系統運行時長,登錄用戶個數,系統過去1、5、15分鐘內的平均負載。

[root@centos7 ~]# uptime  10:46:38 up 58 days, 19:20,  3 users,  load average: 0.00, 0.01, 0.05

2、ps 顯示系統進程信息

ps [options]

單獨運行ps命令時顯示信息為:進程ID號(PID)、終端(TTY)、運行累積CPU時長(TIME)、命令名(CMD)

[root@centos7 ~]# ps   PID TTY          TIME CMD  9503 pts/1    00:00:00 bash  9570 pts/1    00:00:00 ps

這里簡要敘述一下關于進程、進程組、會話和終端的關系。linux操作系統為了方便管理進程,將功能相近或存在父子、兄弟關系的進程歸為一組,每個進程必定屬于一個進程組,也只能屬于一個進程組。一個進程除了有進程ID外,還有一個進程組ID(PGID);每個進程組都有一個進程組組長,它的PID和進程組ID相同。像一系列相關進程可以合并為進程組一樣,一系列進程組也可以合并成一個會話session。會話是由其中的進程建立的,該進程叫做會話的首進程(session  leader)。會話首進程的PID即為此會話的SID(session  ID)。每個會話都起始于用戶登錄,終止于用戶退出。會話中的每個進程組稱為一個工作(job)。會話可以有一個進程組成為會話的前臺工作(foreground),而其他的進程組是后臺工作(background)。每個會話都關聯到一個控制終端control  terminal,當會話終止時(用戶退出終端),系統會發送終止信號(SIGHUP)給會話中的所有進程組,進程對此信號的默認處理方式為終止進程。

ps接受三種格式的選項,帶前綴符號-的UNIX格式的選項;不帶前綴的BSD風格的選項;帶兩個-的GNU長格式選項。三種類型的選項可以自由組合,但可能會出現沖突。

選項a(BSD)表示顯示所有和終端關聯的進程信息,當配合選項x(BSD)一起使用時表示顯示所有進程信息(此時終端無關的進程TTY列顯示為?)。

選項-a(UNIX)表示顯示與終端關聯的除了會話首進程之外的進程信息。選項-e表示所有進程。

[root@centos7 ~]# ps a   PID TTY      STAT   TIME COMMAND  2528 tty1     Ss+    0:00 -bash  9336 pts/0    Ss     0:00 -bash  9503 pts/1    Ss     0:00 -bash  9550 pts/2    Ss+    0:00 -bash  9571 pts/0    S+     0:00 man ps  9582 pts/0    S+     0:00 less -s  9643 pts/1    R+     0:00 ps a [root@centos7 ~]# ps -a   PID TTY          TIME CMD  9571 pts/0    00:00:00 man  9582 pts/0    00:00:00 less  9644 pts/1    00:00:00 ps

如例子中所示,BSD風格的選項還會顯示進程的狀態信息以及命令的參數。進程在運行的過程當中可能處于的狀態包括:

D 不可中斷的睡眠狀態(通常在等待IO) R 正在運行或可以運行(在運行隊列中) S 可中斷的睡眠狀態(等待一個事件完成) T 暫停狀態 t 跟蹤狀態 W 換頁狀態(2.6內核以后版本) X 死亡狀態(不可見) Z 僵死狀態 #BSD風格的選項STAT列還可能包括以下字符 < 高優先級進程 N 低優先級進程 L 鎖定狀態 s 會話首進程 l 多線程進程 + 進程處于前臺進程組

選項u顯示用戶導向的進程信息(如進程的發起用戶,用戶態占用CPU和MEM百分比等)

[root@centos7 ~]# ps au USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND root      2528  0.0  0.0 115636  2384 tty1     Ss+  9月30   0:00 -bash root      9336  0.0  0.0 115596  2240 pts/0    Ss   08:44   0:00 -bash root      9571  0.0  0.0 119196  1972 pts/0    S+   10:59   0:00 man ps root      9582  0.0  0.0 110276   980 pts/0    S+   10:59   0:00 less -s root      9835  0.0  0.0 115636  2172 pts/1    Ss   13:48   0:00 -bash root      9938  0.0  0.0 115512  2096 pts/2    Ss   14:49   0:00 -bash root      9960  0.0  0.0 154068  5632 pts/2    S+   14:50   0:00 vim others.sh root      9967  0.0  0.0 139496  1640 pts/1    R+   14:59   0:00 ps au

VSZ表示占用的總的地址空間大小。它包括了沒有映射到內存中的頁面。

RSS表示實際駐留"在內存中"的內存大小,不包括交換出去的內存。和VSZ的單位均為KB

通常查看所有進程信息會使用命令ps -ef或ps aux

選項-o或o表示指定輸出格式

如顯示所有bash進程的pid,命令名,運行于哪顆邏輯cpu:

[root@centos7 ~]# ps -eo pid,comm,psr|grep bash  2528 bash              1  9336 bash              4  9835 bash              3  9938 bash              6

配合選項--sort可指定按某一列排序輸出

#表示按用戶名排序 ps -eo pid,user,args --sort user

還可以用-o指定許多其他信息,請查詢相關手冊。

3、kill 終止進程

kill [options] pid...

命令kill會發送特定的信號給指定的進程或進程組,如果沒有指定信號,則發送TERM信號

選項-l表示列出所有支持的信號:

[root@centos7 ~]# kill -l  1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP  6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1 11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM 16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP 21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ 26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR 31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3 38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8 43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7 58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2 63) SIGRTMAX-1  64) SIGRTMAX [root@centos7 ~]#

可以使用選項-s指定要發送的信號

如在一個終端啟動進程sleep 300,在另一個終端查看并使用信號SIGKILL將其終止:

[root@centos7 ~]# sleep 300 #此時會一直等待sleep執行完畢 #在另一個終端中 [root@centos7 temp]# ps -ef|grep [s]leep root     10359  9835  0 12:05 pts/1    00:00:00 sleep 300 #發送信號 [root@centos7 temp]# kill -s SIGKILL 10359 #原終端顯示 [root@centos7 ~]# sleep 300 已殺死 [root@centos7 ~]#

或者執行命令kill -9 10359是同樣的效果。關于其他信號的作用,請自行搜索。

4、pgrep和pkill 搜索或者發送信號給進程

pgrep [options] pattern pkill [options] pattern

這里的pattern是正則表達式,用來匹配進程名

如查看名稱為gunicorn的所有進程

[root@centos7 ~]# pgrep gunicorn 17268 17286 17289 17290 17293

選項-l顯示進程名和pid

[root@centos7 ~]# pgrep -l gun 17268 gunicorn 17286 gunicorn 17289 gunicorn 17290 gunicorn 17293 gunicorn

如終止所有sleep進程

pkill sleep

如使syslogd重讀它的配置文件

pkill -HUP syslogd

5、top 顯示進程信息

top命令實時動態的顯示系統匯總信息和進程狀態信息,它每隔1s刷新一次,按鍵盤q鍵退出。

單獨執行top命令時顯示如下輸出:

top - 03:20:02 up 59 days, 17:30,  3 users,  load average: 0.00, 0.01, 0.05 Tasks: 184 total,   1 running, 183 sleeping,   0 stopped,   0 zombie %Cpu(s):  0.1 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st KiB Mem :  8010720 total,  5100308 free,   420652 used,  2489760 buff/cache KiB Swap:  8257532 total,  8257532 free,        0 used.  6905944 avail Mem     PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     1 root      20   0  193664   8708   2396 S   0.0  0.1   1:23.98 systemd     2 root      20   0       0      0      0 S   0.0  0.0   0:00.44 kthreadd     3 root      20   0       0      0      0 S   0.0  0.0   0:00.10 ksoftirqd/0     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.34 migration/0     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh     9 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/0    10 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/1

下面分別對每行輸出內容進行解釋(注:top版本為3.3.10,其他版本的輸出第四行和第五行可能不同)

***行顯示信息和命令uptime的輸出一致;

第二行顯示任務匯總信息,狀態即為進程可能狀態中的四種;

第三行顯示cpu負載信息,其中us表示用戶態任務占用CPU時間百分比,sy表示內核態任務占用CPU時間百分比,ni表示改變過進程優先級的進程(通過nice或renice命令)占用CPU時間百分比,id表示CPU空閑時間百分比,wa表示等待輸入輸出的進程占用CPU時間百分比,hi表示硬件中斷花費時間,si表示軟件中斷花費時間,st表示虛擬機等待真實物理機CPU資源的時間

第四行顯示內存信息,total表示總內存,free表示未分配內存,used表示使用的內存(值為total-free-buff/cache的結果),buff/cache表示緩存內存;

第五行顯示交換分區使用量,其中avail  Mem表示啟動一個新程序時可以分配給它的***內存,和第三行free列不同的地方在于,它會統計可以被回收的緩存分配器(slab)和頁高速緩沖存儲器(page  cache)中的內存。(在一些較早的top實現中,并沒有這一列的值)

接下來經過一個空行之后,顯示的是進程相關信息,表頭各列字段和ps命令的輸出均有相對應的關系,其中PR表示優先級;NI表示nice值(后述);VIRT表示虛擬內存大小,對應ps命令中的VSZ;RES表示進程常駐內存大小,對應ps命令中的RSS;SHR表示共享內存大小;S表示進程狀態,對應ps命令的STAT;

linux系統的進程狀態中有一個優先級(priority)的概念,其值是一個動態變化的整數,范圍是0-139,此值越小,則優先級越高,那么它就越優先被CPU執行。如果top命令PR列顯示為rt,表示此進程為實時進程,它的優先級范圍是0-99,比其他的普通進程都要高。linux中還有靜態優先級的概念,用戶可以通過使用命令nice和renice對進程設置或改變靜態優先級,它可以看成是動態優先級的修正值,能夠影響動態優先級的值。

PR列顯示的值為實際優先級減去實時進程***優先級之后的值,3.10內核非實時進程的默認值為20,即:DEFAULT_PRIO = MAX_RT_PRIO  + 20 = 120

NI列不為0時,表示進程被設置過靜態優先級值,范圍是-20到19,它與當前優先級值的關系是:DEFAULT_PRIO = MAX_RT_PRIO +  (nice) + 20

如使用nice啟動一個sleep進程:

#當不使用選項-n指定時,默認值為10 [root@centos7 ~]# nice -n -10 sleep 300 #對于已存在的進程可以使用renice命令調整其靜態優先級 [root@centos7 ~]#  [root@centos7 ~]# ps -eo pri,ni,comm|grep sleep 29  -10 sleep [root@centos7 ~]# [root@centos7 ~]# top -bn1 |egrep 'COMMAND$|sleep$'   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND 11967 root      10 -10  107892    616    528 S   0.0  0.0   0:00.00 sleep #注意這里ps和top優先級值顯示的不同,ps命令pri列的值 29 = MAX_PRIO(139) -  MAX_RT_PRIO(100) + nice(-10)。它們實際的優先級值是相等的。

上例中使用了選項-n表示top刷新次數,-b表示批處理模式運行top,此模式會去掉輸出中的控制字符,方便將輸出交給其他程序處理。

選項-o fieldname按指定列排序輸出,選項-O可以列出-o能夠指定的列名

#自行執行命令查看效果 top -O |tr '\n' ' ' top -bn1 -o PR

下面簡要介紹一些top中可以使用的交互命令:

q 退出top h 獲得幫助信息 1 顯示每個邏輯cpu的信息 k 終止一個進程(會提示用戶輸入需要終止的pid,以及需要發送什么樣的信號) r 重新設置進程靜態優先級(相當于執行renice) i 忽略閑置和僵死進程 H 顯示線程信息 M 根據駐留內存大小排序 P 根據CPU使用百分比排序 W 將當前設置寫入~/.toprc文件中

6、free 顯示系統內存使用情況

free [options]

free命令顯示系統當前內存、swap(交換分區)的使用情況,默認單位是KB

#版本3.3.10 [root@centos7 ~]# free               total        used        free      shared  buff/cache   available Mem:        8010720      423060     4540476      375580     3047184     6897052 Swap:       8257532           0     8257532

顯示信息和top命令輸出中的對應值一致,其中shared表示內存文件系統(tmpfs)中使用內存的大小。

前面講述了available對應值所表示的含義,通常查看系統當前還有多少可用內存,看available的對應值就可以了。這里available =  free + 緩存(可被回收部分)。

但在較老版本的free中并沒有這個值,它的輸出可能是這樣的:

             total       used       free     shared    buffers     cached Mem:       8174384    4120488    4053896          0     229320    1041712 -/+ buffers/cache:    2849456    5324928 Swap:     16779884          0   16779884

說明:

buffer(緩沖) 是為了提高內存和硬盤(或其他I/O設備)之間的數據交換的速度而設計的

cache(緩存) 是為了提高cpu和內存之間的數據交換速度而設計的

所以輸出中buffers可簡單理解為準備寫入硬盤的緩沖數據;cached可理解為從硬盤中讀出的緩存數據(頁高速緩沖存儲器),緩存中可被回收部分來自cached和slab(緩存分配器)

Mem行:used = total - free此時的空閑內存free列并不能體現系統當前可用內存大小

-/+ buffers/cache行:used = total - free(Mem) - (buffers +  cached),這里的free列和前面所述的available關系為available = free + 緩存(可被回收部分)

所以當沒有available列可查看時,并不能通過free命令查到或計算出真正可用內存,需要知道緩存部分的具體情況。

選項-b、-k、-m、-g分別表示指定各值的單位:bytes, KB, MB, 或者 GB

7、fuser 使用文件或套接字定位進程

fuser經常用來查看文件被哪些進程所使用

[root@centos7 ~]# fuser . /root:                2528c 11430c 11447c

例子表示顯示有三個進程在使用當前目錄,其中:2528c  前面數字表示進程PID,后面的字符c表示當前目錄(即進程在此目錄下工作),還可能出現的字符有:

e 表示進程正在運行執行文件 f 打開文件,默認輸出時省略 F 寫方式打開文件,默認時輸出省略 r 根目錄 m mmap文件或共享庫文件

選項-k表示發送信號SIGKILL給相關進程(謹慎使用)

選項-i表示交互,在kill一個進程之前詢問用戶

選項-l列出支持的信號

選項-SIGNAL指定信號

8、lsof 列出打開文件

在這一篇中我們簡單描述了bash進程打開的前三個文件,并分別關聯到文件描述符0,1,2。對于其他進程打開的文件也是同樣,系統為每個進程維護一個文件描述符表,該表的值都是從0開始的數字。單獨執行lsof命令時會顯示系統中所有進程打開的文件

#命令版本為4.87 [root@centos7 temp]# lsof |head COMMAND     PID   TID    USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME systemd       1          root  cwd       DIR              253,0      4096        128 / systemd       1          root  rtd       DIR              253,0      4096        128 / systemd       1          root  txt       REG              253,0   1489960       6044 /usr/lib/systemd/systemd systemd       1          root  mem       REG              253,0     20032  201329002 /usr/lib64/libuuid.so.1.3.0 systemd       1          root  mem       REG              253,0    252704  201330338 /usr/lib64/libblkid.so.1.1.0 systemd       1          root  mem       REG              253,0     90632  201328968 /usr/lib64/libz.so.1.2.7 systemd       1          root  mem       REG              253,0     19888  201329137 /usr/lib64/libattr.so.1.1.0 systemd       1          root  mem       REG              253,0     19520  201328509 /usr/lib64/libdl-2.17.so systemd       1          root  mem       REG              253,0    153192  201328867 /usr/lib64/liblzma.so.5.0.99

每行一個打開的文件,表頭各列意為:

COMMAND 進程命令名前9個字符 PID     進程ID TID     任務ID FD  1)文件描述符號或者下面字符:     cwd 當前工作目錄     err FD錯誤信息     ltx 共享庫代碼     mem 內存映射文件     mmap 內存映射設備     pd  父目錄     rtd 根目錄     txt 程序代碼     2)當是FD(數字)時,后面可能跟下面權限字符:     r 讀     w 寫     u 讀寫     空格 權限未知且無鎖定字符     - 權限未知但有鎖定字符     3)權限字符后可能有如下鎖定字符:     r 文件部分讀鎖     R 整個文件讀鎖     w 文件部分寫鎖     W 整個文件寫鎖     u 任意長度讀寫鎖     U 未知類型鎖     空格 無鎖 TYPE    類型,可能值為:     DIR 目錄     REG 普通文件     CHR 字符設備文件     BLK 塊設備文件     FIFO 管道文件     unix UNIX套接字文件     IPv4 IPv4套接字文件     .... DEVICE  設備號 SIZE/OFF 文件大小或偏移量(bytes) NODE    文件inode號

選項-n表示不做ip到主機名的轉換

選項-c string顯示COMMAND列中包含指定字符的進程所有打開的文件

選項-u username顯示所屬user進程打開的文件

選項-d FD顯示打開的文件描述符為FD的文件

[root@centos7 ~]# lsof -d 4 COMMAND     PID    USER   FD      TYPE             DEVICE SIZE/OFF      NODE NAME systemd       1    root    4u  a_inode                0,9        0      5755 [eventpoll] systemd-j   539    root    4u     unix 0xffff880230168f00      0t0     10467 /run/systemd/journal/socket systemd-u   549    root    4u     unix 0xffff88003693d640      0t0     12826 /run/udev/control lvmetad     555    root    4wW     REG               0,18        4      8539 /run/lvmetad.pid auditd      693    root    4w      REG              253,0   701364 208737917 /var/log/audit/audit.log ....

選項+d DIR顯示目錄中被進程打開的文件

選項+D DIR遞歸顯示目錄中被進程打開的文件

[root@centos7 ~]# lsof +d /root|head -3 COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME bash     2528 root  cwd    DIR  253,0     4096 201326721 /root bash    12902 root  cwd    DIR  253,0     4096 201326721 /root

選項-i表示顯示符合條件的進程打開的文件,格式為[46][protocol][@hostname|hostaddr][:service|port]

#查看22端口運行情況 [root@centos7 ~]# lsof -ni :22 COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME sshd     1358 root    3u  IPv4    8979      0t0  TCP *:ssh (LISTEN) sshd     1358 root    4u  IPv6    8981      0t0  TCP *:ssh (LISTEN) sshd    12900 root    3u  IPv4 3509687      0t0  TCP 10.0.1.254:ssh->192.168.78.143:57325 (ESTABLISHED) #例子,smtp為/etc/services文件中列出服務中的一種 [root@centos7 ~]# lsof -ni 4TCP@0.0.0.0:22,smtp   COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME sshd     1358 root    3u  IPv4    8979      0t0  TCP *:ssh (LISTEN) master   2162 root   13u  IPv4   16970      0t0  TCP 127.0.0.1:smtp (LISTEN) sshd    12900 root    3u  IPv4 3509687      0t0  TCP 10.0.1.254:ssh->192.168.78.143:57325 (ESTABLISHED)

試想,如果刪除了一個正在被其他進程打開的文件會怎樣?實驗來看看現象:

#使用more命令查看一個文件 [root@centos7 ~]# more /root/.bash_history #在另一個終端使用lsof查看 [root@centos7 ~]# lsof|grep ^more more      14470          root  cwd       DIR              253,0      4096  201326721 /root more      14470          root  rtd       DIR              253,0      4096        128 / more      14470          root  txt       REG              253,0     41096  134321844 /usr/bin/more more      14470          root  mem       REG              253,0 106065056  134319094 /usr/lib/locale/locale-archive more      14470          root  mem       REG              253,0   2107816  201328503 /usr/lib64/libc-2.17.so more      14470          root  mem       REG              253,0    174520  201328905 /usr/lib64/libtinfo.so.5.9 more      14470          root  mem       REG              253,0    164440  225392061 /usr/lib64/ld-2.17.so more      14470          root  mem       REG              253,0    272001   67147302 /usr/share/locale/zh_CN/LC_MESSAGES/util-linux.mo more      14470          root  mem       REG              253,0     26254  201328839 /usr/lib64/gconv/gconv-modules.cache more      14470          root    0u      CHR              136,1       0t0          4 /dev/pts/1 more      14470          root    1u      CHR              136,1       0t0          4 /dev/pts/1 more      14470          root    2u      CHR              136,1       0t0          4 /dev/pts/1 more      14470          root    3r      REG              253,0     17656  202386313 /root/.bash_history #刪除這個文件 [root@centos7 ~]# rm -f /root/.bash_history #查看 [root@centos7 ~]# lsof -d 3|grep ^more more      14470    root    3r      REG              253,0    17656  202386313 /root/.bash_history (deleted) [root@centos7 ~]# #會發現文件列多出了delete的字樣

linux系統中/proc目錄保存了系統所有進程相關的數據,里面的數字目錄名即為PID。我們進一步來看一下剛才的more進程的文件描述符

[root@centos7 ~]# cat /proc/14470/fd/3 > /root/.bash_history.bak #此操作會將文件描述符3中的內容保存至/root/.bash_history.bak #停止more進程并查看 [root@centos7 ~]# ls -l /root/.bash_history* -rw-r--r-- 1 root root 17656 11月 30 07:47 /root/.bash_history.bak [root@centos7 ~]# cat /root/.bash_history.bak #會發現原文件沒有了,新文件保存了原文件的所有內容

結論就是,如果在刪除文件的時候有進程正在打開該文件,那么該文件的內容還是可以通過進程的對應文件描述符恢復的。同時,如果刪除了某文件,發現空間并沒有釋放,說明有進程正在打開該文件(命令lsof|grep  delete查看),重新啟動該進程之后,空間就會得到釋放。

9、iostat 顯示CPU、I/O統計信息

[root@centos7 ~]# iostat Linux 3.10.0-327.el7.x86_64 (centos7)   2016年11月30日  _x86_64_        (8 CPU)  avg-cpu:  %user   %nice %system %iowait  %steal   %idle            0.12    0.00    0.03    0.00    0.00   99.85  Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn sda               0.23         0.79         3.05    4178309   16079082 dm-0              0.22         0.57         2.94    3002207   15480498 dm-1              0.00         0.00         0.00       1088          0 dm-2              0.03         0.22         0.11    1146430     596232 dm-3              0.06         0.01         1.91      28900   10079073 dm-4              0.03         0.01         1.91      28644   10079073

顯示信息中cpu部分在命令top的描述中都有相應的解釋,I/O部分是各個設備讀寫速率及總量信息,其中tps表示每秒多少次I/O請求

選項-c顯示CPU信息

選項-d顯示設備信息

選項-x顯示更詳細的信息

命令iostat m n數字(m,n),m表示時間間隔,n表示次數;此時iostat會每隔m秒打印一次,打印n次。

[root@centos7 ~]# iostat -c 1 3 Linux 3.10.0-327.el7.x86_64 (centos7)   2016年11月30日  _x86_64_        (8 CPU)  avg-cpu:  %user   %nice %system %iowait  %steal   %idle            0.12    0.00    0.03    0.00    0.00   99.85  avg-cpu:  %user   %nice %system %iowait  %steal   %idle            0.12    0.00    0.00    0.00    0.00   99.88  avg-cpu:  %user   %nice %system %iowait  %steal   %idle            0.12    0.00    0.12    0.00    0.00   99.75

也可以接設備名表示查看指定設備的I/O信息

[root@centos7 ~]# iostat sda Linux 3.10.0-327.el7.x86_64 (centos7)   2016年11月30日  _x86_64_        (8 CPU)  avg-cpu:  %user   %nice %system %iowait  %steal   %idle            0.12    0.00    0.03    0.00    0.00   99.85  Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn sda               0.23         0.79         3.05    4178309   16084862

10、vmstat 顯示虛擬內存統計信息

vmstat [options] [delay [count]]

同樣也會顯示一些CPU和I/O的信息

選項-w格式化輸出

[root@centos7 ~]# vmstat -w procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------  r  b         swpd         free         buff        cache   si   so    bi    bo   in   cs  us  sy  id  wa  st  1  0            0      4517628         3184      3067904    0    0     0     1    1    0   0   0 100   0   0

其中

procs     r 表示可運行狀態進程數量     b 表示不可中斷睡眠狀態進程數量 memory     swpd  虛擬內存使用量     free  空閑內存     buff  buffer緩沖中內存使用量     cache cache緩存中內存使用量 swap     si   硬盤交換至內存量     so   內存交換至硬盤量 io     bi   從塊設備中收到的塊(blocks)數     bo   發送至塊設備的塊數 system     in   每秒中斷次數,包括鎖。     cs   每秒進程上下文切換次數。 cpu (同命令top)     us   用戶態任務占用CPU時間百分比     sy   內核態任務占用CPU時間百分比     id   CPU空閑時間百分比     wa   等待輸入輸出的進程占用CPU時間百分比     st   虛擬機等待真實物理機CPU資源的時間

選項-m顯示slab信息

選項-s顯示各種內存計數器及其信息

選項-d顯示磁盤I/O信息

選項-p device顯示設備分區詳細I/O信息

同iostat一樣也支持按頻率打印次數

11、mpstat 顯示CPU相關信息

mpstat [options] [interval [count]]

顯示信息和top命令相似

[root@centos7 ~]# mpstat 1 2 Linux 3.10.0-327.el7.x86_64 (centos7)   2016年11月30日  _x86_64_        (8 CPU)  09時18分19秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle 09時18分20秒  all    0.12    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.88 09時18分21秒  all    0.12    0.00    0.12    0.00    0.00    0.00    0.00    0.00    0.00   99.75 平均時間:  all    0.12    0.00    0.06    0.00    0.00    0.00    0.00    0.00    0.00   99.81

選項-A顯示所有CPU及中斷信息相當于執行mpstat -I ALL -P ALL

選項-I { SUM | CPU | SCPU | ALL }顯示中斷信息

選項-P { cpu [,...] | ON | ALL }顯示CPU信息

[root@centos7 ~]# mpstat -P 3,5 Linux 3.10.0-327.el7.x86_64 (centos7)   2016年11月30日  _x86_64_        (8 CPU)  09時29分03秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle 09時29分03秒    3    0.15    0.00    0.04    0.00    0.00    0.00    0.00    0.00    0.00   99.81 09時29分03秒    5    0.11    0.00    0.03    0.00    0.00    0.00    0.00    0.00    0.00   99.86

關于Linux進程與內存的基礎命令分別是哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长海县| 库尔勒市| 达日县| 荥经县| 同德县| 大理市| 乐清市| 托里县| 万安县| 临泽县| 东海县| 景宁| 齐齐哈尔市| 石泉县| 长泰县| 盐亭县| 堆龙德庆县| 阿拉善盟| 浙江省| 虞城县| 武胜县| 大埔县| 中西区| 噶尔县| 丹巴县| 湖南省| 荆门市| 东台市| 定边县| 潜江市| 莎车县| 乃东县| 浦东新区| 辽阳市| 牟定县| 大埔县| 古交市| 秀山| 濉溪县| 凤山县| 佳木斯市|