Linux進程、作業管理及網絡配置

2016年9月6日09:27:41 1 4,343 ℃

內核的功用:內核管理、文件系統、網絡功能、內存管理、內存管理、驅動程序、安全功能

Process:運行中的程序的一個副本:

存在生命周期

linux內核存儲進程信息的固定格式:task stract

多個任務的task struct組件的鏈表:task list

進程創建:

init

父子關系

進程:都由起父進程創建

fork(), clone()

進程優先級:

0-139:

1-99實時優先級

100-139:靜態優先級

數字越小,優先級越高:獲得更多的cpu運行時間,更優先獲得運行的機會

Nice值:優雅的,友好的

-20,19(100-139)

普通用戶只能提供自己進程的nice值

Big O

O(1),O(logn), O(n) ,O(n^2) , O(2^n)

進程內存:

Page Frame :頁框,用存儲頁面數據

存儲page

MMU:memory Management Unit

IPC: Inter Process COmmunication

同一主機上:

signal

shm: shared memory

semerphor

不同主機上:

rpc: remote procecure call

socket:

Linux內核:搶占式多任務

進程類型:

守護進程:daemon,在系統引導過程中啟動的進程

前臺進程:根終端相關,通過終端啟動的進程

注意:也可把在天天啟動的進程送往后臺,以守護模式運行

進程狀態:

運行態:running

就緒態:ready

睡眠態:sleep

可中斷:interrunptable

不可中斷:uninterruptable

停止態:stopped

暫停于內存中,但不會被調度,除非手動啟動之:

僵死態:zombie

進程的分類:

CPU-Bound

IO-Bound

Linux系統上的進程查看及管理工具:pstree ps pidof  pgrep top htop glances pman vmastat dstat kill pkill job bg fg nohup nice renice killall

Centos 5: sysV init 

Centos 6: upstart

Centos 7: systemd

pstree命令:

pstree - display a tree of processes

ps命令:Process State

/proc/:內核中的狀態信息;

內核參數:可設置其值從而調整內核運行特性參數;

狀態變量:其用于輸出內核中統計信息或狀態信息,僅用于查看

參數:模擬成文件系統類型:

進程:

/proc/#:

#:pid

ps - report a snapshot of the current processes.

ps [options]

選項有三種風格:

1   UNIX options, which may be grouped and must be preceded by a dash.

2   BSD options, which may be grouped and must not be used with a dash.

3   GNU long options, which are preceded by two dashes.

啟動進程的方式:

系統啟動過程中自動啟動,與終端無關的進程。

用戶通過終端啟動:與終端相關的進程。

選項:

a:所有與終端相關進程;

x:所有與終端無關的進程;

u:以用戶為中心組織進程狀態信息顯示

常用組合之一:aux

VSZ:虛擬內存集

RSS:Resldent Size,常駐內存集

STAT:

R:running 運行或就緒

S:interruptable sleeping 可中斷的睡眠

D:uninterruptable sleeping 不可中斷的睡眠

T:stopped 停止

Z:zomble 僵死

+:前臺進程

l:多線程進程

N:低優先級進程

<:高優先級進程

s:sesslon leader 會話進程首進程

-e:顯示所有進程

-f:顯示完整格式的進程信息

常用組合之二:-ef

-F:顯示完整格式的進程信息

C:cpu utilization cpu占用cpu%

PSR:運行于哪顆cpu之上

-H:以層級結構顯示進程的相關信息

-l:

常用組合之三:-eFH

常用組合之四:

o field1,field2,....自定義要顯示的字段列表,以逗號分開

常用的field: pid ,ni ,pri ,psr ,pcpu, stat ,comm, tty ,ppid

ni: nice值

pri: priority,優先級

rtprio: real time priority,實時優先級

-eo

axo

pgrep, pkill命令:

- look up or signal processes based on name and other attributes

pgrep[options] pattern

-u uid: effective user

-U uid: read user

-t :TERMINAL: 與指定的終端相關的進程

-l :顯示進程名稱

-a :顯示完整格式的進程名

-P pid: 顯示此進程的子進程

pidof命令:

根據進程名,取其pid

top命令:

- display Linux tasks

排序:

P:以占據cpu百分比排序

M:以占據內存百分比排序

T:累積占用cpu時間排序

首部信息:

uptime信息:l命令

tasks及cpu信息:t命令

內存信息:m命令

退出命令:q

修改刷新時間間隔:s

終止指定的進程:k

選項:

-d #:指定刷新時間間隔,默認3秒

-b: 以批次方式顯示

-n #:顯示多少批次

uptime命令:顯示系統時間,運行時長,平均負載

過去1分鐘,5分鐘和15分鐘的平均負載

等待運行的進程隊列長度;

htop命令:

選項:

-d #:指定延遲時間

-u UserName:僅顯示指定用戶的進程

-s COLUME: 以指定字段進行排序

子命令:

l: 顯示選定的進程打開的文件列表

s: 跟蹤選定的進程的系統調用

t: 以層級關系顯示各進程狀態

a: 將選定的進程綁定至某個cpu核心

vmast命令:

- Report virtual memory statistics

vmstat [options] [delay [ count]]

procs:

r: 等待運行進程的個數;cpu上等待運行的任務的隊列長度;

b: 處于不可中斷睡眠態的進程個數;被阻塞的任務隊列長度;

memory:

swpd:交換內存使用總量;

free: 空閑的物理內存總量;

buffer:用于緩沖的內存總量

cache:用于緩存的內存總量

swap:

si:數據進入swap中的數據速率(kb/s)

so:數據離開swap的速率(kb/s)

io:

bi:從塊設備讀入數據到系統的速度(kb/s)

bo:保存數據至塊設備的速度()

system:

in:interrupts,中斷速率

cs:context switch ,上下文 切換的速率

cpu:

us :用戶進程消耗的CPU時間百分比
sy :內核進程消耗CPU時間百分比
id :CPU處在空閑狀態的時間百分比

wa:IO等待所占的CPU時間百分比

st:虛擬機占用的時間百分比

選項:

-s:顯示內存統計數據

pmap命令:

- report memory map of a process(查看進程的內存映像信息

pmap [options] pid [... ]

-x :  extended 顯示詳細格式信息:

另一種查看方式:cat /proc/PID/maps

glances命令:

- A cross-platform curses-based monitoring tool

內建命令:

常用選項:

-b: 以byte為單位顯示網上數據速率

-d: 關閉磁盤I/O模塊

-m: 關閉mount模塊

-n: 關閉network模塊

-t #:刷新時間間隔

-1: 每個cpu的相關數據單獨顯示

-o: {HTML|csv}: 輸出格式

-f /PATH/TO/SOMEDIR: 設定輸出文件的位置

C/S模式下運行glancs命令:

服務模式:

glances -s -B IPaddr

ipaddr: 本機某地址,用于監聽

客戶端模式:

glances -c IPaddr

ipaddr:是遠程服務器的ip地址

dstat命令:

- versatile tool for generating system resource statistics

dstat [-afv] [options..] [delay [count]]

常用選項:

-c, --cpu:顯示cpu相關信息;

-C #,#,...,total

-d, --disk:顯示磁盤的相關信息

-D sda,sdb,...,total

-g:顯示page相關的速率數據

-m:Memory相關統計數據

-n:Interface的相關統計數據

-p:顯示process相關統計數據

-r:顯示io請求的相關統計數據

-s:顯示swapped的相關統計數據

--tcp

--udp

--raw

--socket

--ipc

--top-cpu:顯示最占用cpu的進程

--top-io: 顯示最占用io的進程

--top-mem: 顯示最占用內存的進程

--top-lantency:延遲最大的進程

kill命令:

- terminate a process

用于向進程發送信號,以實現對進程的管理;

顯示當前系統可用信號:

kill -l [signal]

每個信號的標識方法有三種

  1. 信號的數字標識

  2. 信號的完整名稱

  3. 信號的簡寫名稱

向進程發信號:

kill [-s signal|-p] [--] pid...

常用信號:

1)SIGHUP: 無須關閉進程而讓其重讀配置文件;

2)SIGINT: 終止正在運行的進程,相當于ctrl+c;

9)SIGKILL: 殺死運行中的進程;

15)SIGTERM: 終止運行中的進程;

18)SIGCONT:

19)SIGSTOP:

指定一個信號:

信號號碼:kill -l

信號名稱:kill -SIGKILL

信號名稱簡寫:kill -KILL

killall命令:

- kill processes by name

killall [-SIGNAL] program

Linux系統作業控制:

job:

前臺作業(foreground):通過終端啟動,且啟動后會一直占據終端;

后臺作業(background):可以通過終端啟動,但啟動后即轉入后臺運行(釋放終端)

如何讓作業運行于后臺?

(1)運行中的作業

Ctrl+z

注意:送往后臺后,作業為轉為停止態

(2)尚未啟動的作業

#COMMAND &

注意:此類作業雖然被送往后臺,但其依然與終端相關,如果希望把送往后臺的作業剝離與終端的關系;

# nohup COMMAND &

查看所有的作業:

# jobs

可實現走也控制的常用命令

fg [[%]JOB_NUM] :把指定的作業調回前臺

bg [[%]JOB_NUM]:讓送往后臺的作業在后臺繼續運行

kill  %JOB_NUM:終止指定的作業

調整進程優先級:

可通過nice值調整的優先級范圍:100-139

分別對應于:-20,19

進程啟動時,其nice值默認為0,其優先級是120

nice命令:

以指定的nice值啟動并運行命令

nice [OPTION] [COMMAND [ARGU]..]

選項:

-n NICE

注意:僅管理員可調低nice值;

renice命令:

renice [-n] NICE PID..

查看NICE值和優先級:

ps axo pid,ni,priority,comm

未涉及到的命令:sar,tsar,lostat,iftop ,nethog

網絡配置

linux:網絡術語內核的功能

網卡命名方式:

RHEL5:/etc/modprobe.conf

alias

RHEL6:編輯/etc/udev/rules.d/70-persistent-net.rules

ifconfig [ethx]命令:

-a:顯示所有網卡接口的配置信息

ifconfig ethx IP/MASK [up|down] 

配置的地址立即生效,但重啟網絡服務或主機,都失效

網絡服務:

RHEL5:/etc/init.d/network {start|stop|restart|status}

RHEL6:/etc/init.d/NetworkManager  {start|stop|restart|status}

網關:

route

add:添加

-host:

-net

-net 0.0.0.0 添加默認路由

route add -net|-host DEST gw NEXTHOP

route add default gw NEXTHOP

del:刪除

-host
-net
route del -net 10.0.0.0/8
route del -net 0.0.0.0

route del default

注意:所做出的改動重啟網絡服務或主機后失效

route -n:以數字方式顯示各主機或端口等相關信息

網絡配置文件:

/etc/sysconfig/network

網絡接口配置文件:

/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME

DEVICE=:關聯的設備名稱,要與文件名的后半部“INTERFACE_NAME”保持一致;

BOOTPROTO={static|none|dhcp|bootp}:引導協議:要使用靜態地址,使用static或none;dhcp表示使用DHCP服務器獲取地址。

IPADDR=:IP地址

NETMASK=:子網掩碼

GATEWAY=:設置默認網關

ONBOOT=:開機時是否自動激活此網絡接口

HWADDR=:硬件地址,要與硬件中的地址保持一致;可省略

USERCTL={yes|no}:是否允許普通用戶控制此接口

PEERDNS={yes|no}:是否在BOOTPROTO為dhcp時接受由DHCP服務器指定的DNS地址

注意:不會立即生效,但重啟網絡服務或主機都會生效

路由:

/etc/sysconfig/network-scripts/route-ethx

添加格式一:

DEST   VIA    NEXTHOP

添加格式二:

ADDRESS0=目標地址

NETMASK0=掩碼

GETEWAY0=下一跳地址

DNS服務器指定方法只有一種:

/etc/resolv.conf

nameserver DNS1

nameserver DNS2

指定本地解析:

/etc/host

主機ip  主機名  主機別名

配置主機名:

/etc/syconfig/network

HOSTNAME=

 ip命令:

link:配置網絡接口屬性

show

ip -s link show

set

ip link set  DEV up|down

addr:協議地址

add

ip addr add ADDRESS dev DEV

del

ip addr del ADDRESS dev DEV

show

ip addr show dev DEV to PREFIX

flush

ip addr flush dev DEV to PREFIX 

route:路由

一塊網卡可以使用多個地址:

網絡設備可以別名:

eth0

ethx:x , eth0:0, eht1:1, ...

配置方法:

ifconfig ethx:x  IP/NETMASK

etc/sysconfig/network-scripts/ifcfg-ethx:x

DEVICE=ethx:x

注意:非主要地址不能使用DHCP動態獲取

linux IP命令用法詳解

網絡客戶端工具:

ping/lftp/ftp/lftpget/wget等;

ping命令:

- send ICMP ECHO_REQUEST to network hosts

ICMP:Internet  control message protocol

ping [OPTION] destination

-c #: 發送的ping包次數

-w #:ping命令超時時長

-W #:一次ping操作中,等待對方響應的超時間長

-s #: 指明ping 包報文大小

hping命令:(package:hping3)

- send (almost) arbitrary TCP/IP packets to network hosts

--fast

--flood

--faster

-i uX :發送UDP包 -i u1000

traceroute命令:

- print the route packets trace to network host

跟蹤從源主機到目標主機直接經過的網關;

ftp命令:

ftp: File Transfer Protocol

ftp服務命令行客戶端工具:

lftp命令:

lftp [-d] [-e cmd] [-p port] [-u user[,pass]] [site]

get,mget

put,mput

rm,mrm

lftpget命令:

lftpget [-c] [-d] [-v] URL [URL...]

-c:繼續此前的下載

wget命令:

The non-interactive network downloader

wget [option]... [URL]...

-b:在后臺執行下載操作

-q:靜默模式,不顯示下載進度

-O file:下載的文件的保存位置

-c:續傳

--limit-rate=amount:以指定的速率傳輸文件

【騰訊云】云服務器、云數據庫、COS、CDN、短信等云產品特惠熱賣中

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前評論:1   其中:訪客  0   博主  0

    • avatar 廣告任務網 1

      月黑風高夜,訪問博客時!