20190923-10Linux进程线程类 000 018
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
ps 查看当前系统进程状态
ps:process status 进程状态
1.基本语法
ps aux | grep xxx (功能描述:查看系统中所有进程)
ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)
2.选项说明
表1-35
|
选项 |
功能 |
|
-a |
选择所有进程 |
|
-u |
显示所有用户的所有进程 |
|
-x |
显示没有终端的进程 |
3.功能说明
(1)ps aux显示信息说明
USER:该进程是由哪个用户产生的
PID:进程的ID号
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
VSZ:该进程占用虚拟内存的大小,单位KB;
RSS:该进程占用实际物理内存的大小,单位KB;
TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
(2)ps -ef显示信息说明
UID:用户ID
PID:进程ID
PPID:父进程ID
C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU时间
CMD:启动进程所用的命令和参数
4.经验技巧
如果想查看进程的CPU占用率和内存占用率,可以使用aux;
如果想查看进程的父进程ID可以使用ef;
5.案例实操
[root@hadoop101 datas]# ps aux
如图1-161所示

图1-161 查看进程的CPU占用率和内存占用率
[root@hadoop101 datas]# ps -ef
如图1-162所示

图1-162 查看进程的父进程ID
kill 终止进程
1.基本语法
kill [选项] 进程号 (功能描述:通过进程号杀死进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
2.选项说明
表1-36
|
选项 |
功能 |
|
-9 |
表示强迫进程立即停止 |
3.案例实操
(1)杀死浏览器进程
[root@hadoop101 桌面]# kill -9 5102
(2)通过进程名称杀死进程
[root@hadoop101 桌面]# killall firefox
pstree 查看进程树
1.基本语法
pstree [选项]
2.选项说明
表1-37
|
选项 |
功能 |
|
-p |
显示进程的PID |
|
-u |
显示进程的所属用户 |
3.案例实操
(1)显示进程pid
[root@hadoop101 datas]# pstree -p
(2)显示进程所属用户
[root@hadoop101 datas]# pstree -u
top 查看系统健康状态
1.基本命令
top [选项]
2.选项说明
表1-38
|
选项 |
功能 |
|
-d 秒数 |
指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令: |
|
-i |
使top不显示任何闲置或者僵死进程。 |
|
-p |
通过指定监控进程ID来仅仅监控某个进程的状态。 |
3.操作说明
表1-39
|
操作 |
功能 |
|
P |
以CPU使用率排序,默认就是此项 |
|
M |
以内存的使用率排序 |
|
N |
以PID排序 |
|
q |
退出top |
4.查询结果字段解释
第一行信息为任务队列信息
表1-40
|
内容 |
说明 |
|
12:26:46 |
系统当前时间 |
|
up 1 day, 13:32 |
系统的运行时间,本机已经运行1天 13小时32分钟 |
|
2 users |
当前登录了两个用户 |
|
load average: 0.00, 0.00, 0.00 |
系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。 |
第二行为进程信息
表1-41
|
Tasks: 95 total |
系统中的进程总数 |
|
1 running |
正在运行的进程数 |
|
94 sleeping |
睡眠的进程 |
|
0 stopped |
正在停止的进程 |
|
0 zombie |
僵尸进程。如果不是0,需要手工检查僵尸进程 |
第三行为CPU信息
表1-42
|
Cpu(s): 0.1%us |
用户模式占用的CPU百分比 |
|
0.1%sy |
系统模式占用的CPU百分比 |
|
0.0%ni |
改变过优先级的用户进程占用的CPU百分比 |
|
99.7%id |
空闲CPU的CPU百分比 |
|
0.1%wa |
等待输入/输出的进程的占用CPU百分比 |
|
0.0%hi |
硬中断请求服务占用的CPU百分比 |
|
0.1%si |
软中断请求服务占用的CPU百分比 |
|
0.0%st |
st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。 |
第四行为物理内存信息
表1-43
|
Mem: 625344k total |
物理内存的总量,单位KB |
|
571504k used |
已经使用的物理内存数量 |
|
53840k free |
空闲的物理内存数量,我们使用的是虚拟机,总共只分配了628MB内存,所以只有53MB的空闲内存了 |
|
65800k buffers |
作为缓冲的内存数量 |
第五行为交换分区(swap)信息
表1-44
|
Swap: 524280k total |
交换分区(虚拟内存)的总大小 |
|
0k used |
已经使用的交互分区的大小 |
|
524280k free |
空闲交换分区的大小 |
|
409280k cached |
作为缓存的交互分区的大小 |
5.案例实操
[root@hadoop101 atguigu]# top -d 1
[root@hadoop101 atguigu]# top -i
[root@hadoop101 atguigu]# top -p 2575
执行上述命令后,可以按P、M、N对查询出的进程结果进行排序。
netstat 显示网络统计信息和端口占用情况
1.基本语法
netstat -anp |grep 进程号 (功能描述:查看该进程网络信息)
netstat -nlp | grep 端口号 (功能描述:查看网络端口号占用情况)
2.选项说明
表1-45
|
选项 |
功能 |
|
-n |
拒绝显示别名,能显示数字的全部转化成数字 |
|
-l |
仅列出有在listen(监听)的服务状态 |
|
-p |
表示显示哪个进程在调用 |
3.案例实操
(1)通过进程号查看该进程的网络信息
[root@hadoop101 hadoop-2.7.2]# netstat -anp | grep 火狐浏览器进程号
unix 2 [ ACC ] STREAM LISTENING 20670 3115/firefox /tmp/orbit-root/linc-c2b-0-5734667cbe29
unix 3 [ ] STREAM CONNECTED 20673 3115/firefox /tmp/orbit-root/linc-c2b-0-5734667cbe29
unix 3 [ ] STREAM CONNECTED 20668 3115/firefox
unix 3 [ ] STREAM CONNECTED 20666 3115/firefox
(2)查看某端口号是否被占用
[root@hadoop101 桌面]# netstat -nlp | grep 20670
unix 2 [ ACC ] STREAM LISTENING 20670 3115/firefox /tmp/orbit-root/linc-c2b-0-5734667cbe29
20190923-10Linux进程线程类 000 018的更多相关文章
- -1-5 java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait(),notify(),notifyAll()等方法都定义在Object类中
本文关键词: java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait( ...
- Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量
Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量 一丶线程的理论知识 什么是线程: 1.线程是一堆指令,是操作系统调度 ...
- Delphi中线程类TThread实现多线程编程2---事件、临界区、Synchronize、WaitFor……
接着上文介绍TThread. 现在开始说明 Synchronize和WaitFor 但是在介绍这两个函数之前,需要先介绍另外两个线程同步技术:事件和临界区 事件(Event) 事件(Event)与De ...
- Delphi中线程类TThread实现多线程编程1---构造、析构……
参考:http://www.cnblogs.com/rogee/archive/2010/09/20/1832053.html Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大 ...
- android 进程/线程管理(三)----Thread,Looper / HandlerThread / IntentService
Thread,Looper的组合是非常常见的组合方式. Looper可以是和线程绑定的,或者是main looper的一个引用. 下面看看具体app层的使用. 首先定义thread: package ...
- android 进程/线程管理(四)续----消息机制的思考(自定义消息机制)
继续分析handler 和looper 先看看handler的 public void dispatchMessage(Message msg) { if (msg.callback != null) ...
- android 进程/线程管理(四)----消息机制的思考(自定义消息机制)
关于android消息机制 已经写了3篇文章了,想要结束这个系列,总觉得少了点什么? 于是我就在想,android为什么要这个设计消息机制,使用消息机制是现在操作系统基本都会有的特点. 可是andro ...
- windows进程/线程创建过程 --- windows操作系统学习
有了之前的对进程和线程对象的学习的铺垫后,我们现在可以开始学习windows下的进程创建过程了,我将尝试着从源代码的层次来分析在windows下创建一个进程都要涉及到哪些步骤,都要涉及到哪些数据结构. ...
- Android(java)学习笔记62:继承Thread类创建线程类
package cn.itcast_02; /* * 该类要重写run()方法,为什么呢? * 不是类中的所有代码都需要被线程执行的. * 而这个时候,为了区分哪些代码能够被线程执行,java提供了T ...
随机推荐
- Go之Gorm和BeegoORM简介及配置使用
简介 ORM Object-Relationl Mapping, 它的作用是映射数据库和对象之间的关系,方便我们在实现数据库操作的时候不用去写复杂的sql语句,把对数据库的操作上升到对于对象的操作 G ...
- 关于Java的对象,锁和对象的内存布局、访问定位
1. 对象的创建和分配 创建对象(如克隆.反序列化)通常仅仅一个new关键字,但在虚拟机中,对象的创建的过程需要如下步骤: 类加载检查 先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并 ...
- java.io.IOException: Stream closed 的问题
public static String getBodyString(ServletRequest request) { StringBuilder sb = new StringBuilder(); ...
- java基础-04:标识符与关键字
在Java中,标识符是代表你对程序中某个方法或变量赋予的一个名称,而这个名称不能是关键字 关键字:
- 鼠标移上显示的下拉菜单,和鼠标移上时显示的导航,html,JavaScript代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 点击按钮出现时间javascrip代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- python之常用正则表达式
以下整理python中常用的正则符号,相信能够熟悉掌握这些正则符号,大部分字符串处理将会游刃有余. 符号 含义 示例 . 可以匹配任意字符,但不包含换行符'\n' Pyt.on ->Pytmon ...
- java进阶(10)--String(StringBuff、StringBuilder)
一.基本概念 1.String为引用数据类型,使用双引号 2.字符串数组存储在方法区的内存池,因为开发过程种使用过于频繁 3.String类已经重写了equals,比较时使用,同时也重写了toStri ...
- Java多线程_同步工具CyclicBarrier
CyclicBarrier概念:CyclicBarrier是多线程中的一个同步工具,它允许一组线程互相等待,直到到达某个公共屏障点.形象点儿说,CyclicBarrier就是一个屏障,要求这一组线程中 ...
- MySQL 索引结构
谈到 MYSQL 索引服务端的同学应该是熟悉的不能再熟悉,新建表的时候怎么着都知道先来个主键索引,对于经常查询的列也会加个索引加快查询速度.那么 MYSQL 索引都有哪些类型呢?索引结构是什么样的呢? ...