網(wǎng)站開發(fā)流程可規(guī)劃為哪三個(gè)階段新手怎么做seo優(yōu)化
目錄
一、程序和進(jìn)程
1、什么是程序?
2、什么是進(jìn)程?
3、線程是什么?
4、如何查看是多線程還是單線程
5、進(jìn)程結(jié)束的兩種情況:
6、進(jìn)程的狀態(tài)
二、查看進(jìn)程信息的相關(guān)命令
1、ps:查看靜態(tài)的進(jìn)程統(tǒng)計(jì)信息
2、top:查看動(dòng)態(tài)的進(jìn)程排名信息
2.2第二部分
3、pgrep:根據(jù)特定條件查詢進(jìn)程pid信息
4、總結(jié)
一、程序和進(jìn)程
1、什么是程序?
在硬盤上執(zhí)行特定程序的一串代碼
2、什么是進(jìn)程?
程序啟動(dòng)后,系統(tǒng)會(huì)賦予一個(gè)pid,這個(gè)含有pid而且在運(yùn)行中的程序叫做進(jìn)程。
3、線程是什么?
線程的出現(xiàn)是為了解決切換進(jìn)程之間出現(xiàn)的硬件消耗
1.沒有線程只有進(jìn)程會(huì)過度消耗硬件資源
2.一個(gè)線程至少有一個(gè)進(jìn)程
3.線程會(huì)共享進(jìn)程中的資源
4、如何查看是多線程還是單線程
1、pstree
2、cat /proc/pin號/status
3、查看進(jìn)程中的線程:
status
5、進(jìn)程結(jié)束的兩種情況:
正常結(jié)束和非正常結(jié)束
非正常結(jié)束會(huì)造成:死機(jī),有僵尸進(jìn)程等結(jié)果,對于系統(tǒng)而言,會(huì)占用內(nèi)存,對于內(nèi)存是一個(gè)非常大的負(fù)擔(dān),一般解決辦法就是重啟或者殺死程序。
6、進(jìn)程的狀態(tài)
1.運(yùn)行態(tài):running
2.就緒態(tài):ready
3.睡眠態(tài):分為兩種,可中斷:interruptable,不可中斷:uninterruptable
4.停止態(tài):stopped,暫停于內(nèi)存,但不會(huì)被調(diào)度,除非手動(dòng)啟動(dòng)
5.僵死態(tài):zombie,僵尸態(tài),結(jié)束進(jìn)程,父進(jìn)程結(jié)束前,子進(jìn)程不關(guān)閉,殺死父進(jìn)程可以關(guān)閉僵死6.態(tài)的子進(jìn)程, 解決方法: 重啟或?qū)⒏高M(jìn)程喚起
二、查看進(jìn)程信息的相關(guān)命令
1、ps:查看靜態(tài)的進(jìn)程統(tǒng)計(jì)信息
ps aux #基本格式ps aux | wc -l #結(jié)合管道符號查詢具體的數(shù)量(需要-1)
a?? ?顯示當(dāng)前終端下的所有進(jìn)程信息,包括其他用戶的進(jìn)程。與“x”選項(xiàng)結(jié)合時(shí)將示系統(tǒng)中所有的進(jìn)程信息。(所有終端的進(jìn)程)
u?? ?使用以用戶為主的格式輸出進(jìn)程信息。(用戶信息顯示)
x?? ?顯示當(dāng)前用戶在所有終端下的進(jìn)程信息。(更詳細(xì))
-e?? ?顯示系統(tǒng)內(nèi)的所有進(jìn)程信息。
-l?? ?使用長(Long)格式顯示進(jìn)程信息。
-f?? ?使用完整的(Full)格式顯示進(jìn)程信
k ?|--sort?? ?對屬性排序,屬性前加 - 表示倒序
o 屬性?? ?選項(xiàng)顯示定制的信息 pid、cmd、%cpu、%mem
ps aux? 可以查看系統(tǒng)中所有的進(jìn)程
2、
表頭 | 含義 |
---|---|
USER | 該進(jìn)程是由哪個(gè)用戶產(chǎn)生的。 |
PID | 進(jìn)程的 ID。 |
%CPU | 該進(jìn)程占用 CPU 資源的百分比,占用的百分比越高,進(jìn)程越耗費(fèi)資源。 |
%MEM | 該進(jìn)程占用物理內(nèi)存的百分比,占用的百分比越高,進(jìn)程越耗費(fèi)資源。 |
VSZ | 該進(jìn)程占用虛擬內(nèi)存的大小,單位為 KB。 |
RSS | 該進(jìn)程占用實(shí)際物理內(nèi)存的大小,單位為 KB。 |
TTY | 該進(jìn)程是在哪個(gè)終端運(yùn)行的。其中,tty1 ~ tty7 代表本地控制臺終端(可以通過 Alt+F1 ~ F7 快捷鍵切換不同的終端),tty1~tty6 是本地的字符界面終端,tty7 是圖形終端。pts/0 ~ 255 代表虛擬終端,一般是遠(yuǎn)程連接的終端,第一個(gè)遠(yuǎn)程連接占用 pts/0,第二個(gè)遠(yuǎn)程連接占用 pts/1,依次増長。?代表和終端無關(guān),系統(tǒng)進(jìn)程 |
STAT | 進(jìn)程狀態(tài)。常見的狀態(tài)有以下幾種: -D:不可被喚醒的睡眠狀態(tài),通常用于 I/O 情況。 -R:該進(jìn)程正在運(yùn)行。 -S:該進(jìn)程處于睡眠狀態(tài),可被喚醒。 -T:停止?fàn)顟B(tài),可能是在后臺暫?;蜻M(jìn)程處于除錯(cuò)狀態(tài)。 -W:內(nèi)存交互狀態(tài)(從 2.6 內(nèi)核開始無效)。 -X:死掉的進(jìn)程(應(yīng)該不會(huì)出現(xiàn))。 -Z:僵尸進(jìn)程。進(jìn)程已經(jīng)中止,但是還是占用硬件資源。 -<:高優(yōu)先級(以下狀態(tài)在 BSD 格式中出現(xiàn))。 -N:低優(yōu)先級。 -L:被鎖入內(nèi)存。 -s:包含子進(jìn)程。 -l:多線程(小寫 L)。 -+:位于后臺。 |
START | 該進(jìn)程的啟動(dòng)時(shí)間。 |
TIME | 該進(jìn)程占用 CPU 的運(yùn)算時(shí)間,注意不是系統(tǒng)時(shí)間。 |
COMMAND | 產(chǎn)生此進(jìn)程的命令名。 |
ps -le #可以查看系統(tǒng)中所有的進(jìn)程,而且還能看到進(jìn)程的父進(jìn)程的 PID 和進(jìn)程優(yōu)先級
ps -l #只能看到當(dāng)前 Shell 產(chǎn)生的進(jìn)程
ps -o pid #只看pid
ps -o pid,%cpu #指定查看pid和cpu使用率
2、top:查看動(dòng)態(tài)的進(jìn)程排名信息
相當(dāng)于windows中的任務(wù)管理器
top命令的輸出內(nèi)容是動(dòng)態(tài)的,默認(rèn)每3秒刷新一次
命令
-d 秒數(shù)?? ?指定 top 命令每隔幾秒更新。默認(rèn)是 3 秒;
-b?? ?使用批處理模式輸出。一般和"-n"選項(xiàng)合用,用于把 top 命令重定向到文件中;
-n 次數(shù)?? ?指定 top 命令執(zhí)行的次數(shù)。一般和"-"選項(xiàng)合用;
-p 進(jìn)程PID?? ?僅查看指定 ID 的進(jìn)程;
-s?? ?使 top 命令在安全模式中運(yùn)行,避免在交互模式中出現(xiàn)錯(cuò)誤;
-u 用戶名?? ?只監(jiān)聽某個(gè)用戶的進(jìn)程;
第一行:任務(wù)隊(duì)列信息
12:26:46 | 系統(tǒng)當(dāng)前時(shí)間 |
up 1 day, 13:32 | 系統(tǒng)的運(yùn)行時(shí)間.本機(jī)己經(jīng)運(yùn)行 1 天 13 小時(shí) 32 分鐘 |
2 users | 當(dāng)前登錄了兩個(gè)用戶 |
load average: 0.00,0.00,0.00 | 系統(tǒng)在之前 1 分鐘、5 分鐘、15 分鐘的平均負(fù)載。如果 CPU 是單核的,則這個(gè)數(shù)值超過 1 就是高負(fù)載:如果 CPU 是四核的,則這個(gè)數(shù)值超過 4 就是高負(fù)載 (這個(gè)平均負(fù)載完全是依據(jù)個(gè)人經(jīng)驗(yàn)來進(jìn)行判斷的,一般認(rèn)為不應(yīng)該超過服務(wù)器 CPU 的核數(shù)) |
第二行:進(jìn)程信息
Tasks: 95 total | 系統(tǒng)中的進(jìn)程總數(shù) |
1 running | 正在運(yùn)行的進(jìn)程數(shù) |
94 sleeping | 睡眠的進(jìn)程數(shù) |
0 stopped | 正在停止的進(jìn)程數(shù) |
0 zombie | 僵尸進(jìn)程數(shù)。如果不是 0,則需要手工檢查僵尸進(jìn)程 |
第三行cpu信息
Cpu(s): 0.1 %us | 用戶模式占用的 CPU 百分比 個(gè)人用戶開啟的進(jìn)程占用的 cpu 率 |
0.1%sy | 系統(tǒng)模式占用的 CPU 百分比 |
0.0%ni | 改變過優(yōu)先級的用戶進(jìn)程占用的 CPU 百分比 |
99.7%id | 空閑 CPU 占用的 CPU 百分比 |
0.1%wa | 等待輸入/輸出的進(jìn)程占用的 CPU 百分比 1 |
0.0%hi | 硬中斷請求服務(wù)占用的 CPU 百分比 |
0.1%si | 軟中斷請求服務(wù)占用的 CPU 百分比 |
0.0%st | st(steal time)意為虛擬程序占用 cpu 時(shí)間百分比,就是當(dāng)有虛擬機(jī)時(shí),虛擬 CPU 等待實(shí)際 CPU 的時(shí)間百分比 |
第四行:內(nèi)存信息???????
Mem: 625344k total | 物理內(nèi)存的總量,單位為KB |
571504k used | 己經(jīng)使用的物理內(nèi)存數(shù)量 |
53840k&ee | 空閑的物理內(nèi)存數(shù)量。我們使用的是虛擬機(jī),共分配了 628MB內(nèi)存,所以只有53MB的空閑內(nèi)存 |
65800k buffers | 作為緩沖的內(nèi)存數(shù)量 |
第五行:行為交換(swap)空間的信息
Swap: 524280k total | 交換分區(qū)(虛擬內(nèi)存)的總大小 |
Ok used | 已經(jīng)使用的交換分區(qū)的大小 |
524280k free | 空閑交換分區(qū)的大小 |
409280k cached | 作為緩存的交換分區(qū)的大小 |
2.2第二部分
top命令的第二部分輸出,主要就是系統(tǒng)進(jìn)程信息,各個(gè)字段的含義如下:
-
PID:進(jìn)程的 ID。
-
USER:該進(jìn)程所屬的用戶。
-
PR:優(yōu)先級,數(shù)值越小優(yōu)先級越高。
-
NI:優(yōu)先級,數(shù)值越小、優(yōu)先級越高。
-
VIRT:該進(jìn)程使用的虛擬內(nèi)存的大小,單位為 KB。
-
RES:該進(jìn)程使用的物理內(nèi)存的大小,單位為 KB。
-
SHR:共享內(nèi)存大小,單位為 KB。
-
S:進(jìn)程狀態(tài)。
-
%CPU:該進(jìn)程占用 CPU 的百分比。
-
%MEM:該進(jìn)程占用內(nèi)存的百分比。
-
TIME+:該進(jìn)程共占用的 CPU 時(shí)間。
-
COMMAND:進(jìn)程的命令名。
3、pgrep:根據(jù)特定條件查詢進(jìn)程pid信息
-
-U 指定用戶
-
-l: 顯示進(jìn)程名
-
-a: 顯示完整格式的進(jìn)程名
-
-P pid: 顯示指定進(jìn)程的子進(jìn)程
例題:現(xiàn)在電腦中毒了,造成cpu利用率過高應(yīng)該如何解決?
先ps aux找到過高的程序,然后kill殺掉程序,但是過一段時(shí)間程序又會(huì)出來,這是要知道它的pid號,然后到/proc/pid號文件夾/exe,去給殺掉。exe是軟鏈接指向真正的程序,把病毒程序給刪除,oom清理內(nèi)存
4、總結(jié)
查看cpu的命令:top? w? vmstat
查看內(nèi)存的命令:top? tree? vmstat
查看硬盤分區(qū):lsblk
查看硬盤剩余:df
硬盤讀寫性能:vmstat