您的位置:首页 > 运维架构 > Linux

linux进程管理

2016-05-25 21:07 537 查看
内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能 Process: 运行中的程序的一个副本;存在生命周期 用户空间:执行用户代码;内核空间:执行系统调用的过程。
Linux内核存储进程信息的固定格式:task struct
多个任务的的task struct组件的链表:task list进程创建:init,systemctl 父子关系进程:都由其父进程创建,子进程复制父进程的过程称cow。fork() clone()进程优先级:0-139:1-99:实时优先级;100-139:静态优先级;数字越小,优先级越高;Nice值:-20,19Big O-算法复杂度标准O(1), O(logn), O(n), O(n^2), O(2^n)进程内存:Page Frame: 页框,用存储页面数据---物理地址空间。存储PageMMU:Memory Management Unit 进程通信机制:IPC: Inter Process Communication同一主机上:signalshm: shared memorysemerphor不同主机上:rpc: remote procecure callsocket: Linux内核:抢占式多任务进程类型:守护进程: 在系统引导过程中启动的进程,跟终端无关的进程;前台进程:跟终端相关,通过终端启动的进程注意:也可把在前台启动的进程送往后台,以守护模式运行;进程状态:运行态:running就绪态:ready睡眠态:可中断:interruptable不可中断:uninterruptable----不可中断是指等待I/O读入磁盘的时间。停止态:暂停于内存中,但不会被调度,除非手动启动之;stopped僵死态:zombie--父进程死了,而子进程却未关闭。进程的分类:CPU-BoundIO-Bound《Linux内核设计与实现》,《深入理解Linux内核》Linux系统上的进程查看及管理工具:pstree, ps, pidof, pgrep, top, htop, glances, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup, nice, renice, killall, ...CentOS 5: SysV initCentOS 6:upstartCentOS 7:systemd/sbin/init, pstree命令:pstree - display a tree of processesps命令: /proc/:内核中的状态信息;内核参数:可设置其值从而调整内核运行特性的参数;/proc/sys/状态变量:其用于输出内核中统计信息或状态信息,仅用于查看;参数:模拟成文件系统类型;进程:/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:Resident Size,常驻内存集;C: cpu utilization PSR:运行于哪颗CPU之上STAT:R:running、S:interruptable sleepingD:uninterruptable sleeping、T:Stopped、Z:zombie+:前台进程 l:多线程进程 N:低优先级进程 <:高优先级进程 s:session leader -e:显示所有进程-f:显示完整格式的进程信息常用组合之二:-ef


-F:显示完整格式的进程信息;-H:以层级结构显示进程的相关信息;常用组合之三:-eFH常用组合之四:-eo, axo-o field1, field2,...:自定义要显示的字段列表,以逗号分隔;常用的field:pid, ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprioni:nice值;priority:priority, 优先级;rtprio:real time priority,实时优先级;pgrep, pkill命令: - look up or signal processes based on name and other attributespgrep [options] pattern-u uid:effective user-U uid:read user-t TERMINAL:与指定的终端相关的进程;-l:显示进程名;-a:显示完整格式的进程名;-P pid:显示此进程的子进程;pidof命令:根据进程名,取其pid;top命令:- display Linux processes


CPU:us, sy, ni, id, hi, si, cs, stMemory:VSZ,RSS,SHM排序:P:以占据CPU百分比排序;M:以占据内存百分比排序;T:累积占用CPU时间排序;首部信息:uptime信息:l命令tasks及cpu信息:t命令内存信息:m命令退出命令:q修改刷新时间间隔:s终止指定的进程:k选项:-d #:指定刷新时间间隔,默认为3秒;-b:以批次方式显示;-n #:显示多少批次;uptime命令:显示系统时间、运行时长及平均负载;过去1分钟、5分钟和15分钟的平均负载;等待运行的进程队列的长度;回顾: Linux OS基础概念、进程查看的几工具;内核的功能:进程管理(进程调度)进程调度:保存现场,恢复现场;task struct:任务结构;task list:任务列表;命令: pstree, pgrep, pkill, ps, top, uptime
进程管理类命令:htop命令:


选项:-d #:指定延迟时间间隔;-u UserName:仅显示指定用户的进程;-s COLUME:以指定字段进行排序;子命令:l:显示选定的进程打开的文件列表;---重要s:跟踪选定的进程的系统调用;---重要t:以层级关系显示各进程状态;a:将选定的进程绑定至某指定的CPU核心;vmstat命令:- Report virtual memory statisticsvmstat [options] [delay [count]]


procs:r:等待运行的进程的个数;CPU上等待运行的任务的队列长度;b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度;memory:swpd:交换内存使用总量;free:空闲的物理内存总量;buffer:用于buffer的内存总量;cache:用于cache的内存总量;swap---si,so大量数据换进换出说明物理内存不够用了。si:数据进入swap中的数据速率(kb/s)so:数据离开swap的速率(kb/s)iobi:从块设备读入数据到系统的速度(kb/s)bo:保存数据至块设备的速率(kb/s)system---cs切换速率过大说明cpu性能套差in:interrupts,中断速率;cs:context switch, 上下文 切换的速率;cpu us: user spacesy:system callid:idlewa:wait I/O完成。st: stolen选项:-s:显示内存统计数据;pmap命令:- report memory map of a process(内存映射表)pmap [options] pid [...] -x:显示详细格式的信息;例#pmap -x 1另一种查看方式:cat /proc/PID/mapsglances命令:- 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模式下运行glances命令:服务模式:glances -s -B IPADDRIPADDR:本机的某地址,用于监听;客户端模式:glances -c IPADDRIPADDR:是远程服务器的地址;dstat命令:- versatile tool for generating system resource statistics

dstat [-afv] [options..] [delay [count]]常用选项:-c, --cpu:显示cpu相关信息;-C #,#,...,total-d, --disk:显示磁盘的相关信息-D sda,sdb,...,tobal-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|-SIGNAL] pid...常用信号:1) SIGHUP:无须关闭进程而让其重读配置文件;2)SIGINT:终止正在运行的进程,相当于Ctrl+c9)SIGKILL:杀死运行中的进程;15)SIGTERM:终止运行中的进程;18)SIGCONT:19)SIGSTOP:killall命令:- kill processes by namekillall [-SIGNAL] programLinux系统作业控制:job:前台作业(foregroud):通过终端启动,且启动后会一直占据终端;后台作业(backgroud):可以通过终端启动,但启动后即转入后台运行(释放终端);如何让作业运行于后台?(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, iostat, iftop, nethog, ...博客作业: htop/dstat/top/ps命令的使用;网络客户端工具:ping/lftp/ftp/lftpget/wget等;ping命令:send ICMP ECHO_REQUEST to network hostsICMP:Internet Control Message Protocolping [OPTION] destination-c #:发送的ping包个数;-w #:ping命令超时时长;-W #:一次ping操作中,等待对方响应的超时时长;-s #:指明ping包报文大小;hping命令: (package: hping3)send (almost) arbitrary TCP/IP packets to network hosts--fast--faster--flood-i uXtraceroute命令:- print the route packets trace to network host跟踪从源主机到目标主机之间经过的网关;ftp命令:ftp: File Transfer Protocolftp服务命令行客户端工具;lftp命令:lftp [-p port] [-u user[,pass]] [site]get, mgetput, mputrm, mrmlftpget命令:lftpget [-c] [-d] [-v] URL [URL...]-c:继续此前的下载;wget命令:The non-interactive network downloader.wget [option]... [URL]...-b:在后台执行下载操作;-q:静默模式,不显示下载进度;-O file:下载的文件的保存位置;-c:续传;--limit-rate=amount:以指定的速率传输文件;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux Memory 优先级