一些基础

不同进程之间,进行数据访问

同一主机:pipe 管道

socket   套接字文件

signal   信号

shm   shared memory

semaphore 信号量,一种计数器

不同主机:socket IP和端口号 (最底层的实现方式)

RPC remote procedure call

MQ 消息队列,如:Kafka,RabbitMQ,ActiveMQ

Linux系统状态的查看及管理工具:pstree, ps, pidof, pgrep, top, htop, glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup

pstree命令:

  pstree  display a tree of processes

    

ps: process state

    ps  report a snapshot of the current processes

    /proc 文件夹存放的都是目前正在运行的进程的数据,每一个进程,系统都会分配专门的文件夹来存放此进程相关的信息

ps  进程管理

支持三种选项

  BSD选项

  • 默认显示当前终端中的进程
  • a 选项包括所有终端中的进程
  • x 选项包括不链接终端的进程
  • u 选项显示进程所有者的信息
  • f 选项显示进程树,相当于 --forest
  • k|--sort  属性 对属性排序,属性前加- 表示倒序
  • o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem
  • L 显示支持的属性列表

  UNIX选项

  • -C cmdlist 指定命令,多个命令用,分隔
  • -L 显示线程
  • -e: 显示所有进程,相当于-A
  • -f: 显示完整格式程序信息
  • -F: 显示更完整格式的进程信息
  • -H: 以进程层级格式显示进程相关信息
  • -u userlist  指定有效的用户ID或名称
  • -U userlist 指定真正的用户ID或名称
  • -g gid或groupname  指定有效的gid或组名称
  • -G gid或groupname  指定真正的gid或组名称
  • -p pid 显示指pid的进程
  • --ppid pid  显示属于pid的子进程
  • -M  显示SELinux信息,相当于Z

一些值的含义

ni: nice值

pri: priority 优先级

psr: processor  CPU编号

rtprio: 实时优先级

示例  ps axo pid,cmd,psr,ni,pri,rtprio

VSZ: Virtual memory SiZe,虚拟内存集,线性内存

RSS: ReSident Size, 常驻内存集   (真实内存)

常用组合:

  • aux
  • -ef
  • -eFH
  • -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm
  • axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

一些示例

  • ps -p 3914 -o pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm  //查看某个进程的一些属性
  • ps -p 1244 -o comm=    使用其PID查找进程名称:
  • ps -C sshd,bash    要以其名称选择特定进程,显示其所有子进程
  • ps -C httpd,sshd -o pid=   查找指定进程名所有的所属PID
  • ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head     查找占用最多内存和CPU的进程
  • ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head

pgrep   专门用于查找一些进程的,很简单默认只显示进程号,顶多显示名字  -a 可以把参数也显示

  • pgrep [options] pattern
  • -u uid: effective user,生效者
  • -U uid: real user,真正发起运行命令者
  • -t terminal: 与指定终端相关的进程
  • -l: 显示进程名
  • -a: 显示完整格式的进程名
  • -P pid: 显示指定进程的子进程

    示例  

 top

排序:

P:以占据的CPU百分比,%CPU

M:占据内存百分比,%MEM

T:累积占据CPU时长,TIME+

首部信息显示:

uptime信息:l命令

tasks及cpu信息:t命令

cpu分别显示:1 (数字)

memory信息:m命令

退出命令:q

修改刷新时间间隔:s

终止指定进程:k

保存文件:W

栏位信息简介

  • us:用户空间
  • sy:内核空间
  • ni:调整nice时间
  • id:空闲
  • wa:等待IO时间
  • hi:硬中断
  • si:软中断(模式切换)
  • st:虚拟机偷走的时间
top - 18:32:45 up 230 days,  2:01,  1 user,  load average: 0.00, 0.00, 0.00

(1)18:45:02  当前时间

(2)up 230 days,  2:14,  系统连续运行时间

(3)1 user,  当前登录用户数

(4)load average: 0.00, 0.00, 0.00  系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到当前时刻的平均值。

Tasks:  93 total,   1 running,  92 sleeping,   0 stopped,   0 zombie

(1)total  进程总数

(2)running  正在运行的进程数

(3)sleeping  睡眠的进程数

(4)stopped  停止的进程数

(5)zombie  僵尸进程数

Cpu(s):  0.8%us,  0.5%sy,  0.0%ni, 98.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.2%st

(1)0.8%us  用户空间占用CPU百分比

(2)0.5%sy  内核(系统)空间占用CPU百分比

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

(4)98.5%id  空闲CPU百分比

(5)0.0%wa  等待输入输出的CPU时间百分比

(6)0.0%hi  硬件CPU中断占用百分比

(7)0.0%si  软中断占用百分比

(8)0.2%st  虚拟机占用百分比

Mem:   3974188k total,  2811108k used,  1163080k free,   144292k buffers

(1)total  物理内存总量

(2)used  使用的物理内存总量

(3)free  空闲内存总量

(4)buffers  用作内核缓存的内存量

Swap:  2097148k total,    46184k used,  2050964k free,   595092k cached

(1)total  交换区总量

(2)used  使用的交换区总量

(3)free  空闲交换区总量

(4)cached  缓冲的交换区总量

  空闲内存 = 空闲内存总量free + 内核缓存的内存量 buffers + 缓冲的交换区总量cached

free 内存管理

free [OPTION]

  • -b  以字节为单位
  • -m  以MB为单位
  • -g  以GB为单位
  • -h  易读格式
  • -o  不显示-/+buffers/cache行
  • -t   显示RAM + swap的总和
  • -s  n  刷新间隔为n秒
  • -c  n  刷新n次后即退出

  清理缓存

  

 vmstat命令:虚拟内存信息 也有磁盘io

  swap:

  • si:从磁盘交换进内存的数据速率(kb/s)
  • so:从内存交换至磁盘的数据速率(kb/s)

  io:

  • bi:从块设备读入数据到系统的速率(kb/s)
  • bo: 保存数据至块设备的速率

iostat:统计CPU和设备IO信息

示例:iostat 1 10

iftop:显示带宽使用情况,EPEL源

示例:iftop -n -i eth1

glances命令  跨网络监控其他系统的参数

   S: glances -s -B IPADDR  IPADDR: 指明监听的本机哪个地址

   C: glances -c IPADDR  IPADDR:要连入的服务器端地址

    可以通过防火墙策略,限定特定的地址可以连接我

dstat命令:系统资源统计,代替vmstat,iostat

  • -c 显示cpu相关信息
  • -C #,#,...,total
  • -d 显示disk相关信息
  • -D total,sda,sdb,...
  • -g 显示page相关统计数据
  • -m 显示memory相关统计数据
  • -n 显示network相关统计数据
  • -p 显示process相关统计数据
  • -r 显示io请求相关的统计数据
  • -s 显示swapped相关的统计数据

iotop

iostat 只能看出某个设备的ip情况

iotop可以看到某个进程的io情况,显示某个进程在磁盘上的读写情况

lsof  查看某个挂载点或者设备是否被使用

  • -a:列出打开该文件存在的进程     lsof  -a  filename
  • -c<进程名>:列出指定进程所打开的文件    lsof  -c  pname
  • -g:列出GID号进程详情
  • -d<文件号>:列出占用该文件号的进程
  • +d<目录>:列出目录下被打开的文件
  • +D<目录>:递归列出目录下被打开的文
  • -n<目录>:列出使用NFS的文件
  • -i<条件>:列出符合条件的进程(4、6、协议、:端口、 @ip )
  • -p<进程号>:列出指定进程号所打开的文件
  • -u:列出UID号进程详情
  • -h:显示帮助信息
  • -v:显示版本信息。
  • -n:  不反向解析网络名字

 一些示例

指定进程号,可以查看该进程打开的文件   lsof -p 9527

查看指定程序打开的文件   lsof -c httpd

查看指定用户打开的文件   lsof -u root | more

查看指定目录下被打开的文件

lsof +D /var/log/    lsof +d /var/log/

参数+D为递归列出目录下被打开的文件,参数+d为列出目录下被打开的文件

  • 查看所有网络连接
  • lsof -i –n
  • lsof -i@127.0.0.1
  • 通过参数-i查看网络连接的情况,包括连接的ip、端口等以及一些服务的连接情况,例如: sshd等。也可以通过指定ip查看该ip的网络连接情况
  • 查看端口连接情况
  • lsof -i :80
  • lsof -i@172.16.12.5:22
  • 通过参数-i:端口可以查看端口的占用情况,-i参数还有查看协议,ip的连接情况等
  • 查看指定进程打开的网络连接
  • lsof -i –n -a -p 9527
  • 参数-i、-a、-p等,-i查看网络连接情况,-a查看存在的进程,-p指定进程
  • 查看指定状态的网络连接
  • lsof -n -P -i TCP -s TCP:ESTABLISHED
  • -n:no host names, -P:no port names,-i TCP指定协议,-s指定协议状态通过多个参数可以 清晰的查看网络连接情况、协议连接情况等

进程,内存,管理 ps,pstree,top,free,vmstat,iftop,lsof,查看网速的更多相关文章

  1. centos8:linux平台查看线程(ps/pstree/top)

    一,ps/pstree/top命令所属的rpm包 pstree所属的包 [root@blog ~]# whereis pstree pstree: /usr/bin/pstree /usr/bin/p ...

  2. Linux进程管理 - ps,top,pstree,signal,kill,killall举例演示

    ps:将某个时间点的进程运行情况撷取下来 [root@www ~]# ps aux <==观察系统所有的进程数据 [root@www ~]# ps -lA <==也是能够观察所有系统的数据 ...

  3. Linux 进程管理 ps、top、pstree命令

    ps命令:查看系统中正在运行的进程 ps 是用来静态地查看系统中正在运行的进程的命令.不过这个命令有些特殊,它的部分选项不能加入"-",比如命令"ps aux" ...

  4. 第十七章 程序管理与SELinux初探--进程、进程管理(ps、top)

    一个程序被加载到内存当中运行,在内存内的那个数据就被称为进程(process).进程是操作系统上非常重要的概念,所有系统上面跑的数据都会以进程的类型存在.系统进程有哪些状态?不同状态会如何影响系统的运 ...

  5. 2017-06-30(ps pstree top kill w killall pkill)

    ps(查看系统下所有进程) -a 显示一个终端的所有进程,除了会话引线 -u 显示进程的归属用户以及内存的使用情况 -x 显示没有控制终端的进程 -l 长格式显示,更加详细的信息 -e 显示所有的进程 ...

  6. LInux查看网速带宽及各进程占用情况:nethogs

    安装: #Ubuntu: sudo apt-get install nethogs #CentOS: sudo yum install nethogs 使用: $ sudo nethogs

  7. Linux内存点滴 用户进程内存空间

    Linux内存点滴 用户进程内存空间 经常使用top命令了解进程信息,其中包括内存方面的信息.命令top帮助文档是这么解释各个字段的. VIRT, Virtual Image (kb) RES, Re ...

  8. Linux用户管理 权限管理 内存管理 网络管理命令 (第四天)

    默认添加的用户会自动加入和用户名一样的组中su 切换用户查看当前登陆的用户: whoami id`查看当前用户属于哪个组:groupsgroupadd 组名 添加组groupdel 组名 删除组gre ...

  9. 2万字|30张图带你领略glibc内存管理精髓(因为OOM导致了上千万损失)

    前言 大家好,我是雨乐. 5年前,在上家公司的时候,因为进程OOM造成了上千万的损失,当时用了一个月的时间来分析glibc源码,最终将问题彻底解决. 最近在逛知乎的时候,发现不少人有对malloc/f ...

随机推荐

  1. How To Use These LED Garden Lights

    Are you considering the lighting options for the outdoor garden? Depending on how you use it, LED ga ...

  2. AC3 Rematrix

    当L R channel highly correlated时,AC3 encoder 使用rematrix技术压缩L/R的和和差. 原始信号为left,right,使用rematrix压缩信号为le ...

  3. Python记通用列表操作之切片!

    ______________________________________除使用索引(indexing)来访问单个元素外,还可使用切片 (slicing) 来访问特定范围内的元素. 切片适用于提取序 ...

  4. 启动docker报Failed to start Docker Application Container Engine.解决

    [root@docker ~]# systemctl status docker.service● docker.service - Docker Application Container Engi ...

  5. 13.56Mhz下50欧姆阻抗匹配简易教程

    阻抗匹配(impedance matching) 主要用于传输线上,以此来达到所有高频的微波信号均能传递至负载点的目的,而且几乎不会有信号反射回来源点,从而提升能源效益.信号源内阻与所接传输线的特性阻 ...

  6. python 小故事1

    def test(a:str,b:int)->str: print(test.__annotations__) return a+str(b) def doc_print(): "&q ...

  7. 6_11 四分树(UVa297)<四分树>

    一幅图有1024个点, 可以对图平均分成4块, 并且子图也可以再往下分, 直到一个子图表示一个点. f表示这块子图填满, p表示它还有4个子图, e表示没有子图(当然啦, 它也没有填满). 给定两个字 ...

  8. PAT甲级题解分类byZlc

    专题一  字符串处理 A1001 Format(20) #include<cstdio> int main () { ]; int a,b,sum; scanf ("%d %d& ...

  9. 前端——语言——Core JS——《The good part》读书笔记——附录三,四,五(JSLint,铁路图,JSON)

    1.JSLint 本书的JSLint部分只是一个引言,详细了解该工具的使用参考http://www.jslint.com/ 2.铁路图 在本书中使用过的铁路图集中放在这部分附录中,其实读完本书之后,没 ...

  10. halo的工作目录,有一个是在代码里配置的,硬编码了

    在HaloProperties.java中: /** * Work directory. */private String workDir = HaloConst.USER_HOME + " ...