1、进程基本介绍

进程id:PID(process id),父进程PPID

进程标志:process flag,说明进程的权限,常见4表示权限为root,1表示只可复制无法执行

进程状态:stat,说明进程的状态,主要的状态有:

R(running):正在运行中

S(sleep):睡眠状态但可被唤醒

D:不可被唤醒的睡眠状态,通常可能在等待I/O

T(stop):停止状态,可能是在工作控制(后台暂停)或除错(traced)状态

Z(zombie):僵尸状态,进程已经终止但是无法从内存中删除

进程优先级:表示进程的优先执行顺序,值越小越优先

PRI(priority):PRI的值是由内核动态调整的,用户无法直接调整PRI

NI(nice):范围为-20~19,root可随意调整自身和普通用户的nice值,但普通用户只能调整自己的nice值,范围为0~19,且只能调大nice值

进程实际的优先级为系统PRI+NI

2.ps查看进程状态

ps是查看某个时刻进程的运行情况,是一个静态结果,常用的有ps -ef、ps aux和ps -l。

ps -ef和ps aux(与ps -aux结果一致)

[root@centos7- ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root : ? :: /usr/lib/systemd/systemd --switched-root --system --deserialize
root : ? :: [kthreadd]
root : ? :: [ksoftirqd/]
root : ? :: [kworker/:]
……
[root@centos7- ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1.2 0.3 ? Ss : : /usr/lib/systemd/systemd --switched-root --system --deserialize
root 0.0 0.0 ? S : : [kthreadd]
root 0.0 0.0 ? S : : [ksoftirqd/]
root 0.0 0.0 ? S : : [kworker/:]
……

ps -ef和ps aux显示的结果数一致,只是显示的格式不同,前者是以标准格式显示,而后者是以BSD格式显示。

ps -ef各列的含义:UID(实际输出用户名)、PID、PPID、占用CPU百分比、进程开始时间、进程在哪个终端上运行、进程实际使用CPU总时间、命令

ps aux格列含义:用户名、PID、占用CPU百分比、占用物理内存百分比、使用虚拟内存量(KB)、使用固定内存量(KB)、进程在哪个终端上运行、进程状态、进程开始时间、进程实际使用CPU总时间、命令。

ps -l,仅查看自己的bash相关进程

[root@centos7- ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
S - do_wai pts/ :: bash
R - - pts/ :: ps

3.top动态查看进程

ps是某一个时刻进程的状态,而top可以持续监测进程的状态、

语法:top [-d 数字]  [-bnp]

-d:后面接秒数,表示整个结果几秒更新一次,省略的话centos7默认3秒更新一次

-b:以批次的方式执行top,通常搭配数据流重定向来将批处理的结果输出成为文件

-n:同行与-b搭配,表示需要进行几次top的结果输出

-p:后跟pid,表示查看某个pid的进程状态

top执行时可输入的命令:

  • P:以占用CPU百分比排序,为默认排序方式
  • M:以占用物理内存备份比排序
  • N:以PID排序
  • T:以进程实际使用CPU总时间
  • q:终止top运行
[root@centos7- linux]# cat a.txt
top - :: up :, users, load average: 0.00, 0.01, 0.05
Tasks: total, running, sleeping, stopped, zombie
%Cpu(s): 2.7 us, 8.1 sy, 0.0 ni, 89.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : total, free, used, buff/cache
KiB Swap: total, free, used. avail Mem
#此处为空行
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
root R 12.5 0.1 :00.02 top
root S 0.0 0.4 :03.33 systemd
root S 0.0 0.0 :00.02 kthreadd
root S 0.0 0.0 :00.13 ksoftirqd/
root - S 0.0 0.0 :00.00 kworker/:0H
root rt S 0.0 0.0 :00.09 migration/
……

top行各字段:当前时间、开机到当前经过的时间(h)、登录系统用户数、系统在1、5、15分钟的平均工作量

Tasks行:总进程数量以及各个状态的进程数量,通常需要注意是否有zombie进程

%Cpu:CPU的负载情况,wa是I/Owait

KiB Mem:物理内存使用情况

KiB Swap:虚拟内存使用情况,swap的使用应该尽量少

top常用示例:

top -d 2 -p 1800:查看pid为1800的进程状态,每2秒刷新一次结果

top -b -n 5 > /tmp/top.txt:将top命令执行5次,将结果输出至/tmp下的top.txt文件中

4.pstree查看进程树

语法:pstree [-A|U] [-up]

-A:各进程树之间以ASCII字符来连接

-U:各进程树之间以utf-8的字符来连接

-u:列出每个进程的所属用户

-p:列出每个进程的pid

[root@centos7- linux]# pstree -up
systemd()-+-ModemManager()-+-{ModemManager}()
| `-{ModemManager}()
|-NetworkManager()-+-{NetworkManager}()
| `-{NetworkManager}()
|-VGAuthService()
|-abrt-watch-log()
|-abrt-watch-log()
|-abrtd()
|-accounts-daemon()-+-{accounts-daemon}()
| `-{accounts-daemon}()
……

5.kill进程管理

语法:kill -signal pid,常用signal

1 sighup 启动被终止的进程,让该pid的进程重新读取自己的配置文件,类似重启进程

2 sigint 相当于用键盘输入ctrl+c来中断一个进程的进行

9 sigkill 强制中断一个进程的进行,可能会产生中间文件

15 sigterm 以正常的结束进程来终止该进程,

17 sigstop 相当于用键盘输入Ctrl+z来暂停一个进程的执行

常用kill -9 pid来强制终止一个进程

6.free查看内存

free 加参数-b/k/m/g,以b、k、m、g的大小显示结果,默认以k显示

[root@oldboy ~]# free
total used free shared buffers cached
Mem: 1915520 937036 978484 0 141288 483800
-/+ buffers/cache: 311948 1603572
Swap: 2097144 0 2097144

第一行的mem used表示分配出去(可能已分配但未使用)的buffers和buffer,free表示未分配的,buffers和cached表示当前空闲的值

第二行的buffers和cache used表示实际使用的,free表示可以潜在被用作buffers和cache的值

mem used=buffers/cached used+buffers+cached,即937036=311948+141288+483800

buffers/cache free=mem(free+buffers+cache)即,1603572=978484+141288+483800,也即mem total-buffers/cached used=1915520-311948

linux查看内存free的更多相关文章

  1. 【转】Linux查看内存大小和插槽

    原文https://wsgzao.github.io/post/linux-memory/ Linux 查看内存的插槽数,已经使用多少插槽,每条内存多大,已使用内存多大 dmidecode | gre ...

  2. linux 查看内存的插槽数

    [root@web ~]# dmidecode|grep -P -A5 "Memory\s+Device"| grep Size | grep -v Range #linux查看内 ...

  3. Linux查看内存使用量和交换区使用量

    Linux查看内存使用量和交换区使用量 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ free -m total used free shared buffe ...

  4. linux查看内存cpu占用

    linux查看内存cpu占用top 命令  按q退出 可以添加额外选项选择按进程或按用户查看如: top -u gitu PID:进程idPR:进程的优先级别,越小越优先被执行NInice:值VIRT ...

  5. Linux查看内存,负载状态

    Linux查看内存,负载状态 查看内存使用情况  www.ahlinux.com cat /proc/meminfo MemTotal:       16332644 kB MemFree:     ...

  6. Linux 查看内存命令

    Linux 查看内存命令 top命令, Linux的top命令提供Linux资源使用情况的实时更新信息.不仅可以查看Linux内存,也可以查看CPU以及各个进程之间的对资源的占用情况.使用方式如下: ...

  7. 【转】Linux 查看内存(free buffer cache)

    转自:http://elf8848.iteye.com/blog/1995638 Linux下如何查内存信息,如内存总量.已使用量.可使用量.经常使用Windows操作系统的朋友,已经习惯了如果空闲的 ...

  8. 嵌入式 linux 查看内存

    在Windows系统中查看内存的使用情况很简单,想必大家都已经耳熟能详了,那么在linux系统如何查看内存使用情况呢?下面和大家分享在Linux下查看内存使用情况的free命令: [root@scs- ...

  9. 【查看内存】Linux查看内存使用情况(二)

    Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...

  10. linux 查看内存和cpu占用比较多的进程

    1.可以使用一下命令查使用内存最多的10个进程        ps -aux | sort -k4nr | head -n 102. 可以使用一下命令查使用CPU最多的10个进程        ps ...

随机推荐

  1. 关于keyGenerator,KeyPairGenerator,SecretKeyFactory的解析

    Java加密的常用的加密算法类型有三种 1单向加密:也就是不可逆的加密,例如MD5,SHA,HMAC 2对称加密:也就是加密方和解密方利用同一个秘钥对数据进行加密和解密,例如DES,PBE等等 3非对 ...

  2. codeforces 894B - Ralph And His Magic Field - [数学题]

    题目链接:https://cn.vjudge.net/problem/CodeForces-894B Ralph has a magic field which is divided into n × ...

  3. 2018No-java面试知识

    1.框架 1. springboot比spring的优点? 2. Springmvc的基本流程? 3. 微服务之间调用不会慢吗? 4. 大图片和大数据库怎么存储? 5. spring事物?四大特征, ...

  4. The "get" method should be used when the form is idempotent---正交的两个概念 get 幂等

    https://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.1 17.13.1 Form submission method The me ...

  5. ES6 ruanyifeng, shim polyfill

    http://www.cnblogs.com/upup2015/p/7927485.html 一个等号是赋值操作,==先转换类型再比较,===先判断类型,如果不是同一类型直接为false npm in ...

  6. Django单元测试简单示例

    对一个功能的验证往往是需要很多多测试用例,可以把测试用例集合在一起执行,这就产生了测试套件TestSuite 的概念,它是用来组装单个测试用例,规定用例的执行的顺序,而且TestSuite也可以嵌套T ...

  7. Django中配置用Redis做缓存和session

    django-redis文档: http://django-redis-chs.readthedocs.io/zh_CN/latest/# 一.在Django中配置 # Django的缓存配置 CAC ...

  8. Servlet----------ServletContext (重要)

    1.ServletContext的概述 一个项目只有一个ServletContext对象!application 我们可以在N多个Servlet中获取这个唯一的对象,使用它来给多个Servlet传递数 ...

  9. iOS入门怎样选择Swift和objective-c

    版权声明:本文为博主原创文章,未经博主同意不得转载.博主微信:lofocus https://blog.csdn.net/cuibo1123/article/details/28261795 学oc吧 ...

  10. NYOJ 587 blockhouses 【DFS】

    blockhouses 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描写叙述 Suppose that we have a square city with straigh ...