zoukankan      html  css  js  c++  java
  • 进程,内存,管理 ps,pstree,top,free,vmstat,iftop,lsof,查看网速

    一些基础

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

    同一主机: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指定协议状态通过多个参数可以 清晰的查看网络连接情况、协议连接情况等 
    要有多努力才能对得起奔波的脚步和身上的期望
  • 相关阅读:
    eNSP进行配置网络模拟网络联通
    Labview上使用mydaq采集数据
    Labview实现计算器
    matlab小记(四)
    matlab小记(三)
    matlab小记(二)
    matlab小记(一)
    Python中map和reduce
    Python 如何调用自定义函数
    《机电传动控制》第十一周作业(二)
  • 原文地址:https://www.cnblogs.com/hxfcodelife/p/11974441.html
Copyright © 2011-2022 走看看