进程管理
狭义定义:进程是正在运行的程序的实例。
广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。
一、进程的属性;
进程ID(PID):是唯一的数值,用来区分进程;
父进程和父进程的ID(PPID);
启动进程的用户ID(UID)和所归属的组(GID);
进程状态:状态分为运行、睡眠、(可中断与不可中断)、就绪、停止、僵死;
进程执行的优先级;
进程所连接的终端名;
进程资源占用:比如占用资源大小(内存、CPU占用量);
二、进程管理
Linux进程的管理,是通过进程管理工具实现的,比如htop、glances、dstat等
htop 是Linux系统中的一个互动的进程查看器,与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。
htop命令: 交互式命令
u:过滤仅显示选定用户的进程;
s:跟踪选定的进程所发起的系统调用;
l:显示选定进程所打开的文件;
t:显示进程的层次结构;
a:设定进程的cpu亲缘性;(将选定的进程绑定在指定的CPU上)
选项:
-d#: 延迟时长
-uUSERNAME: 仅显示指定用户的进程;
-sCOLUMN: 根据指定的字段进行排序;
glances命令:
glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port][-P password] [--password] [-t refresh] [-f file] [-o output]
常用选项:
-b:以Byte/s为单位显示网卡设备数据交换速率;
-d:关闭磁盘I/O功能模块;
-f/PATH/TO/SOMEFILE:设置输出文件的位置及格式;
-o{HTML|CSV}:
-m:关闭mount功能模块
-n:关闭网络功能模块
-r:关闭进程列表功能模块
-t#: 指定延迟时长,默认为3秒;
-1:单独显示每颗CPU相关负载数据信息;
glances支持远程模式:
即可以以C/S模式工作:
Server: 以监听模式启动glances;
Client: 以远程模式启动glances,远程连入指定服务器,并Server上的相关性能数据;
服务模式:
glances -s -B IPADDR
-B: 用于指明监听的本地地址;
客户端模式:
glances -c IPADDR
-c: 用于连入的服务器的地址;
dstat命令: 整合了vmstat, iostat, netstat and ifstat四款工具的功能;
dstat [-afv] [options..] [delay [count]]
-c:显示cpu性能指标相关的统计数据;
-d:显示disk相关的速率数据;
-g:显示page相关的速率数据;
-i:显示interrupt相关的速率数据;
-l:显示load average相关的统计数据;
-m:显示memory相关的统计数据;
-n:显示网络收发数据的速率;
-p:显示进程相关的统计数据,
-r:io请求的速率;
-s:显示swap的相关数据
-y:显示系统相关的数据,包括中断和进程切换;
--top-cpu:显示最占用CPU的进程;
--top-bio:显示最消耗blockio的进程;
--top-io:最占用io的进程;
--top-mem:显示最占用内存的进程;
--ipc:显示进程间通信相关的速率数据;
--raw:显示raw套接的相关的数据;
--tcp:显示tcp套接字的相关数据;
--udp:显示udp套接字的相关数据;
--unix:显示unix sock接口相关的统计数据;
--socket:
-a:-cdngy