云网牛站
所在位置:首页 > Linux培训 > Linux专业知识四:Linux系统进程管理及查看内存

Linux专业知识四:Linux系统进程管理及查看内存

2018-07-09 23:00:40作者:魏文应稿源:linux站

本文主讲Linux专业知识之Linux系统进程管理及查看内存的情况,以Redhat RHEL7操作系统为例。

 

一、进程

程序与进程:程序是静态的(文件),进程是动态的(运行的程序)。

进程和线程:一个程序至少有一个进程,一个进程至少有一个线程。

进程之间内存是独立 。

线程之间内存共享 ,高并发好一些 。 安全性差一些。

查看进程命令:pstree (显示内容Redhat7版本之后 ,和Redhat6以前的版本不一样):

Linux专业知识四:Linux系统进程管理及查看内存

1.程序和进程的区别

程序是静态的,它只是一组指令的集合,不具有任何的运行意义。本身作为一次软件资源长期保存;而进程是程序执行的动态过程.它是动态概念,有一定的生命周期,它是动态产生和消亡的。

进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程;一个程序可以由多个进程公用

进程还具有并发性和交往性,而程序却是封闭的。

2.进程和线程的区别

一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有。

线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口。它必须组成进程才能被执行。

3.进程属性

进程ID(PID): 是唯一的数值,用来区分进程。

父进程的ID(PPID): 启动进程的用户ID(UID)和所归属的组(GID)。

进程状态: 状态分为运行R、休眠S、僵尸Z。

进程执行的优先级。

进程所连接的终端名:以哪个终端登录的。

进程资源占用: 比如占用资源大小(内存、CPU占用量)。

 

二、进程管理工具:ps

进程查看命令:ps 。常用参数(选项):

参数和说明

-a:显示所有用户的进程

u:显示用户名和启动时间

-x:显示没有控制终端的进程

-e:显示所有进程,包括没有控制终端的进程

-l:长格式显示,详细信息显示

-w:宽行显示,可以使用多个w进行加宽显示

我们常用的选项组合是 -aux 。

1.查看进程信息

查看隶属于 自己进程 详细信息,也就是当前用户的进程(不包括其它用户启动的进程)。

显示 用户名 和 启动时间: ps u :

Linux专业知识四:Linux系统进程管理及查看内存

标识和说明

USER:用户名

PID:程进ID

%CPU:占用CPU时间和总时间的百分比

%MEM:占用内存与系统内存总量的百分比

VSZ:进程的虚拟大小

RSS:驻留集的大小,也可以理解为内存中页的数量

TTY:进程启动的终端,也就是这个进程是由哪个终端启动的

STAT:进程当前状态(S休眠状态,D不可中断的休眠状态,R运行状态,Z僵死状态,T停止)

START:进程的启动时间,指出进程是什么时候启动的

TIME:进程自从启动以后启用CPU的总时间

COMMAND/CMD:进程的命令名

UID:用户的id

PPID:父进程的进程号

NI:进程优先级

其中 STAT 除了显示进程当前状态,还经常 追加显示 下面的一些其它参数:

状态符号和说明

<:高优先级

N:低优先级

L:有些页被锁进内存

S:包含子进程

+:位于后台的进程组

l:多线程

**单独显示某个进程:ps -l | grep bash

Linux专业知识四:Linux系统进程管理及查看内存

BSD显示风格 和 标准显示风格 : ps aux | grep bash 、 ps -el | grep bash

Linux专业知识四:Linux系统进程管理及查看内存

 

三、top命令工具:实时显示进程状态

实时显示进程状态: top (动态显示),主要用来查看CPU使用情况、内存使用情况、以及系统运行状态等信息。前五行是整个系统的整体信息:

1.第一行显示的内容(系统信息):

Linux专业知识四:Linux系统进程管理及查看内存

显示和说明

22:04:01:当前时间

up 1 day, 16:46:系统运行时间

3 users:当前登录用户数

load average: 0.26, 0.22, 0.16:系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

2.第二行显示的内容(进程信息,多个CPU的时候,这里可以是多行):

Linux专业知识四:Linux系统进程管理及查看内存

显示和说明

Tasks: 256 total:进程总数

1 running:正在运行的进程数

255 sleeping:睡眠的进程数

0 stopped:停止的进程数

0 zombie:僵尸进程数

3.第三行显示的内容(CPU信息,多个CPU的时候,这里可以是多行):

Linux专业知识四:Linux系统进程管理及查看内存

显示和说明

6.6.0% us:系统用户进程使用CPU百分比

4.3% sy:内核中的进程占用CPU百分比

0.0% ni:用户进程空间内改变过优先级的进程占用CPU百分比

89.1% id:空闲CPU百分比

0.0%wa:IO等待占用CPU的百分比

0.0%hi:硬中断(Hardware IRQ)占用CPU的百分比

0.1%si:软中断(Software Interrupts)占用CPU的百分比

0.0%st:Steal Time 切片时间CPU占比。CPU资源是切换使用的,比如这个进程用一会,那个进程用一会。Steal Time 反映虚拟CPU等待实际CPU响应的情况,如果等待时间为100%时,说明虚拟CPU得不到实际CPU分配的资源,这是一种糟糕的情况。当系统运行在虚拟机上时,这个值可以关注。

4.第四、五行显示的内容(物理内存和swap交换区):

Linux专业知识四:Linux系统进程管理及查看内存

 

四、top工具内部快捷键

当你使用 top 命令,查看内存时,可以使用一些快捷键:

快捷键和功能

空格键:手动刷新一下(默认3秒刷新一次)

M(大写):按内存排序,内存使用高的排在上面

P(大写):按CPU排序 ,CPU资源用得多的排在上面

h:帮助

q:退出

 

五、pgrep管理工具:查看单个进程

pgrep 用来查看指定进程,pgrep 相当于 ps aux | grep ,比如查看 httpd 服务:pgrep httpd

Linux专业知识四:Linux系统进程管理及查看内存

你测试查看httpd时,应该先启动httpd:service start httpd。如果没有安装httpd,则安装httpd:yum -y install httpd。如果httpd 启动失败,80端口被占用:

Linux专业知识四:Linux系统进程管理及查看内存

解决方法,有两种方式可以使用:

第一种方法是修改httpd的端口:

vim /etc/httpd/conf/httpd.conf

Linux专业知识四:Linux系统进程管理及查看内存

然后就可以正常启动httpd服务了:

service httpd start

第二种是停掉目前占用80端口的服务,让出端口给httpd使用:

Linux专业知识四:Linux系统进程管理及查看内存

 

六、pstree 管理工具:查看进程树

用来查看 进程树 : pstree

Linux专业知识四:Linux系统进程管理及查看内存

 

七、网络管理

1.使用netstat工具

netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 。

常用命令带参情况 netstat -anptu 。

参数

说明

-a或–all

显示所有连接中的接口

-c或–continuous

持续列出网络状态

-C或–cache

显示路由器配置的快取信息

-e或–extend

显示网络其他相关信息

-F或–fib

显示FIB

-g或–groups

显示多重广播功能群组组员名单

-h或–help

在线帮助

-i或–interfaces

显示网络界面信息表单

-l或–listening

显示监控中的服务器的接口

-M或–masquerade

显示伪装的网络连线

-n或–numeric

直接使用IP地址,而不通过域名服务器

-N或–netlink或–symbolic

显示网络硬件外围设备的符号连接名称

-o或–timers

显示计时器

-p或–programs

显示正在使用接口的程序识别码和程序名称

-r或–route

显示Routing Table

-s或–statistice

显示网络工作信息统计表

-t或–tcp

显示TCP传输协议的连接状况

-u或–udp

显示UDP传输协议的连接状况

-v或–verbose

显示指令执行过程

-V或–version

显示版本信息

-w或–raw

显示RAW传输协议的连线状况

-x或–unix

此参数的效果和指定”-A unix”参数相同

–ip或–inet

此参数的效果和指定”-A inet”参数相同

 

八、虚拟文件系统 /proc /sys

Linux一切皆文件,设备(文件)可以通过读写来操作。

/proc:在内存中的系统进程信息

比如,查看cpu信息:cat /proc/cpuinfo。在比如查看内存信息 : cat /proc/meminfo 。

开启内核转发功能: linux可以作为一个路由器使用。我们可以开启路由转发功能,并设置iptables。

往/proc/sys/net/ipv4/ip_forward这个文件中写入1,就开启了ip路由功能。

echo "1" >/proc/sys/net/ipv4/ip_forward

/sys :系统内核以及驱动的信息。

 

九、Linux后台进程与前台进程

1.Linux后台进程:

守护进程(Daemon),是运行在后台的一种特殊进程。

守护的意思就是不受终端控制;

Linux的大多数服务器就是用守护进程实现的,比如,Web服务器httpd等。

2.Linux前台进程:

用户使用的有控制终端的进程。

进程的前台与后台切换

让命令后台运行:[命令] & 。 比如:sleep 100 &(&这个符号用在命令的最后,让sleep 100这个命令后台执行)。

暂停前台命令,让其后台挂起: ctrl键 + z键 。

查看所有后台进程: jobs (如果显示进程号PID,则jobs -l)。

后台进程调到前台运行: fg。

启动运行后台暂停的进程,在后台运行: bg。

Linux专业知识四:Linux系统进程管理及查看内存

 

十、kill和killall 终止进程

可以通过kill来 杀死进程,也就是 结束进程。

列出kill的信号列表: kill -l

Linux专业知识四:Linux系统进程管理及查看内存

杀死结束一个进程: kill 9 [进程号] 。

杀死一组进程: killall [进程名],比如:killall httpd 。

 

十一、进程的优先级管理

优先级取值范围为(-20,19),越小优先级越高, 默认优先级是0。

指定进程优先级: nice -n 5 vim a.txt (使用优先级5执行vim a.txt产生的进程):

Linux专业知识四:Linux系统进程管理及查看内存

修改进程优先级: nice -10 29155 (-10是进程优先级,29155是进程PID)。

 

十二、screen 命令工具:终端命令行暂存

screen 有什么用? 比如,你在命令行终端执行 ping ywnz.com,这时你关闭了终端命令行,那么 ping ywnz.com 进程也会被终止,被杀死了。因为ping这个操作是由 终端派生的进程,终端进程退出了,子进程ping也会被杀死。但你不想ping结束呢?就可以用screen工具。

创建新窗口: screen 或者 screen -S name01 (“-S name01” 是给窗口命名,让你容易识别)。

窗口后台运行: 按下Ctrl键 + A键 + D键 。让screen创建的窗口后台运行,我们返回主窗口做其它操作。

查看srceen列表: screen -list 或者 screen -ls

切换到之前分离的窗口: screen -r name01(输入窗口名称或者ID号都可以)。

 

十三:使用 free 指令查看内存

free -h

这时候显示:

Linux专业知识四:Linux系统进程管理及查看内存

先看men物理内存:

men内容

含义

total

62G 表示总的物理内存有62G

used

7.8G 表示使用了物理内存7.8G

free

36G 表示还有36G物理内存没有使用

shared

弃用的内存

buff/cache

缓存区和cache缓存

available

一个程序可用的最大内存,这里是指虚拟的内存

swap 就是交换区的大小,swap物理上是磁盘,在内存不够用时,swap被临时用来充当内存,只是速度慢很多。

 

相关主题

Shell脚本学习(Linux命令行)第十一章:进程

精选文章
热门文章