【Linux】【Basis】进程及作业管理
进程及作业管理 内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能 Process: 运行中的程序的一个副本; 存在生命周期 Linux内核存储进程信息的固定格式:task struct 多个任务的的task struct组件的链表:task list 进程创建: init 父子关系 进程:都由其父进程创建 fork(), clone() 进程优先级: 0-139: 1-99:实时优先级; 100-139:静态优先级; 数字越小,优先级越高; Nice值: -20,19 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内核:抢占式多任务 进程类型: 守护进程: 在系统引导过程中启动的进程,跟终端无关的进程; 前台进程:跟终端相关,通过终端启动的进程 注意:也可把在前台启动的进程送往后台,以守护模式运行; 进程状态: 运行态:running 就绪态:ready 睡眠态: 可中断:interruptable 不可中断:uninterruptable 停止态:暂停于内存中,但不会被调度,除非手动启动之;stopped 僵死态:zombie 进程的分类: CPU-Bound IO-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 init CentOS 6:upstart CentOS 7:systemd /sbin/init, pstree命令: pstree - display a tree of processes ps命令: /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,常驻内存集; STAT: R:running S:interruptable sleeping D:uninterruptable sleeping T:Stopped Z:zombie +:前台进程 l:多线程进程 N:低优先级进程 <:高优先级进程 s:session leader -e:显示所有进程 -f:显示完整格式的进程信息 常用组合之二:-ef -F:显示完整格式的进程信息; C: cpu utilization PSR:运行于哪颗CPU之上 -H:以层级结构显示进程的相关信息; 常用组合之三:-eFH 常用组合之四:-eo, axo o field1, field2,...:自定义要显示的字段列表,以逗号分隔; 常用的field:pid, ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio ni:nice值; priority:priority, 优先级; rtprio:real time priority,实时优先级; 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 processes 排序: 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:任务列表; CPU:us, sy, ni, id, hi, si, cs, st Memory:VSZ,RSS,SHM 命令: pstree, pgrep, pkill, ps, top, uptime Linux进程及作业管理(2) CentOS 6: http://172.16.0.1/fedora-epel/ CentOS 7: http://172.16.0.1/fedora-epel/ 进程管理类命令: htop命令: 选项: -d #:指定延迟时间间隔; -u UserName:仅显示指定用户的进程; -s COLUME:以指定字段进行排序; 子命令: l:显示选定的进程打开的文件列表; s:跟踪选定的进程的系统调用; t:以层级关系显示各进程状态; a:将选定的进程绑定至某指定的CPU核心; vmstat命令: - Report virtual memory statistics vmstat [options] [delay [count]] procs: r:等待运行的进程的个数;CPU上等待运行的任务的队列长度; b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度; memory: swpd:交换内存使用总量; free:空闲的物理内存总量; buffer:用于buffer的内存总量; cache:用于cache的内存总量; swap si:数据进入swap中的数据速率(kb/s) so:数据离开swap的速率(kb/s) io bi:从块设备读入数据到系统的速度(kb/s) bo:保存数据至块设备的速率(kb/s) system in:interrupts,中断速率; cs:context switch, 上下文 切换的速率; cpu us: user space sy:system id:idle wa:wait st: stolen 选项: -s:显示内存统计数据; pmap命令: - report memory map of a process pmap [options] pid [...] -x:显示详细格式的信息; 另一种查看方式: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模式下运行glances命令: 服务模式: glances -s -B IPADDR IPADDR:本机的某地址,用于监听; 客户端模式: glances -c IPADDR IPADDR:是远程服务器的地址; 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+c 9)SIGKILL:杀死运行中的进程; 15)SIGTERM:终止运行中的进程; 18)SIGCONT: 19)SIGSTOP: killall命令: - kill processes by name killall [-SIGNAL] program Linux系统作业控制: 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命令的使用;【Linux】【Basis】进程及作业管理的更多相关文章
- Linux操作系统的进程管理和作业管理
Linux操作系统的进程管理和信号 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.lsof命令详解 1>.lsof概述 list open files查看当前系统文件的工 ...
- linux的PS进程和作业管理(进程调度,杀死进程和进程故障-僵尸进程-内存泄漏)
Ps进程和作业管理 1.查看进程ps 1.格式 ps ---查看当前终端下的进程 3种格式: SYSV格式 带 - 符号 BSD格式 不带 - 符号 GNU格式 长选项 2.ps -a ...
- linux管理进程的链表
linux2.6.11的内核中,为了方便管理linux的进程,主要建了5种linux链表.每个链表节点之间的互联有两种方式,一种是hash节点之间的互联,通过hlist_node的数据结构来实现:另一 ...
- [转载]了解Linux的进程与线程
本文转自Tim Yang的博客http://timyang.net/linux/linux-process/ .对于理解Linux的进程与线程非常有帮助.支持原创.尊重原创,分享知识! 上周碰到部署在 ...
- Linux任务调度进程crontab的使用方法和注意事项
参考文章:Linux任务调度进程crond命令的使用方法和注意事项 一.crond简介 概念 crond的概念和crontab是不可分割的.crontab是一个命令,常见于Unix和类Unix的操作系 ...
- Linux 利用进程打开的文件描述符(/proc)恢复被误删文件
Linux 利用进程打开的文件描述符(/proc)恢复被误删文件 在 windows 上删除文件时,如果文件还在使用中,会提示一个错误:但是在 linux 上删除文件时,无论文件是否在使用中,甚至是还 ...
- linux 下进程通讯详解
linux 下进程通讯方法主要有以下六种: 1.管道 2.信号 3.共享内存 4.消息队列 5.信号量 6.socket
- .NET跨平台实践:用C#开发Linux守护进程
Linux守护进程(Daemon)是Linux的后台服务进程,它脱离了与控制终端的关联,直接由Linux init进程管理其生命周期,即使你关闭了控制台,daemon也能在后台正常工作. 一句话,为L ...
- .NET跨平台实践:用C#开发Linux守护进程(转)
Linux守护进程(Daemon)是Linux的后台服务进程,它脱离了与控制终端的关联,直接由Linux init进程管理其生命周期,即使你关闭了控制台,daemon也能在后台正常工作. 一句话,为L ...
随机推荐
- rocketmq广播消息的(五)
一.简介 广播消费指的是:一条消息被多个consumer消费,即使这些consumer属于同一个ConsumerGroup,消息也会被ConsumerGroup中的每个Consumer都消费一次,广播 ...
- Apache Kyuubi 在 T3 出行的深度实践
支撑了80%的离线作业,日作业量在1W+ 大多数场景比 Hive 性能提升了3-6倍 多租户.并发的场景更加高效稳定 T3出行是一家基于车联网驱动的智慧出行平台,拥有海量且丰富的数据源.因为车联网数据 ...
- redis sentinel搭建
/usr/local/bin /usr/local/etc https://www.centos.bz/2017/08/redis-3-x-sentinel-ha-service/ https://w ...
- MAC VMware fusion 12.1.0 Centos7 网络配置
虚拟机选择NAT模式 获取mac机器中vmnet8的gateway地址 找到 # NAT gateway address这一行,下面的ip就是gateway地址 cat /Library/Prefer ...
- 第三章 sql 的约束
1.0 约束分类 约束类型: 主键 默认值 唯一 外键 非空 关键字: PRIMARY KEY DEFAULT UNIQUE FOREIGN NOT NULL 2.0 建立含约束的表 3.0 主 ...
- 菜鸡的Java笔记 第二十八 - java 包的定义
包的主要作用以及定义 包的导入操作 系统常见的开发包 jar 程序命令 包的定义 在任何的操作系统之中都有一个统一的共识:同一个目录下不能够存在有相同的文 ...
- Android SeekBar 自定义thumb,thumb旋转动画效果
简介 某些音乐播放或者视频播放的界面上,资源还在加载时,进度条的原点(thumb)会显示一个转圈的效果. 资源加载完成后,又切换回静态效果.这个效果增强了用户体验. 一般来说有美术人员负责设计和切图. ...
- Netty源码分析之Reactor线程模型详解
上一篇文章,分析了Netty服务端启动的初始化过程,今天我们来分析一下Netty中的Reactor线程模型 在分析源码之前,我们先分析,哪些地方用到了EventLoop? NioServerSocke ...
- 【PS】证件照转换背景色
证件照转换背景色 2019-07-14 12:18:49 by冲冲 1. 需求 自由切换证件照的背景颜色(白底.蓝底.红底...) 2. 步骤 ① 双击 图层锁 解锁,弹出的"新建图层0 ...
- nginx安装与配置4-负载均衡
负载均衡: 1.准备俩tomcat,测试环境端口不一样,然后服务名一样然后内容不一样 2.配置nginx的config 在http模块中设置: //举例,以下IP,端口无效 upstream test ...