【Linux】 linux中的进程信息相关的一些内容
_
linux进程信息
■ top
top命令用于动态地查看系统的进程和其他一些资源的信息。开启top的时候可以加上-t <sec>来设置top更新的频率高低。进入top界面之后,可以输入一些命令比如P表示以cpu资源占用率对进程排序,M表示以内存的使用率排序进程,N表示以PID的顺序排序等等。想要知道更多命令可键入?来查看
top的界面说明:
第一行:<当前时间> <开机到目前的总时间> <登录用户人数> <系统最近一分钟、五分钟、十五分钟的平均负载>
第二行:进程情况的汇总 比如总共有多少进程,有几个正在运行,有几个正在睡眠等等
第三行:cpu(s)表示cpu的整体负载,按数字键1可以在多核的机器上切换出每个cpu的负载情况
第四行第五行:记录了Mem物理内存和swap虚拟内存的使用情况
下半部分:分进程地显示出系统资源的使用情况,各个字段的含义分别如下
PID 就是Pid
USER 进程所属用户
PR piriority,优先级,数字越小越优先被执行
NI nice,与priority相关,也是数字越小越先被执行,具体关系我不懂
%CPU %MEM 相当于ps aux中的前两个字段,就是进程占用了cpu和内存的比重
TIME+ 进程累计使用cpu进行运算的时间
VIRT 占用虚拟内存的总量,VIRT = RES + SWAP
SWAP 虚拟内存中被交换出来的大小
RES 进程仍然在使用的,没被交换出物理内存部分的大小
SHR 共享内存大小
以上这些数据默认是安装cpu的占用率来进行排序的
只输入top命令的话会进入top界面,但是这并不方便把top的信息重定向到文件中,而top -b -n <num> 可以做到重定向,并且num表示一次输出多少次的top信息。比如监控脚本可以写
while true
do
top -b -n >> output.log
sleep 30s
done
这个意思就是说每隔三十秒取一次top的数据
*就这个问题而言,还可以在top那句语句之前来个 mkdir -p ./data/`date +"%F"`这样可以把日志按照日期的同归类到不同的子目录中去(这是那台负载异常高的机器的问题解决过程中,阿里云那个客服写的脚本)
■ pstree
pstree -p可以列出所有进程的pid,-u可以列出进程的所属用户
顾名思义,pstree就是把进程之间的辈分关系以树状图的形式展现出来
■ ps静态查看进程信息
ps -ef已经接触得很多了,除了ef外,ps还有另外一些命令行参数
-l 只显示和自己当前用户bash相关的进程
-a 显示所有用户的进程
-u <user> 指定显示某个用户的进程
ps -l的字段解释:
F 进程标志,4表示为root的进程
S 表示stat,可以是R(running) , S(sleep) , T(stop) , Z(zombie) *所谓僵尸状态的进程,就是指父进程没能顺利结束子进程的情况,通常在进程变成僵尸进程之后,它的CMD后面会有<defunct>的标志
C cpu使用率
TTY 登陆者终端机的位置,远程登录的话就显示动态终端端口(哪个pts/n)
TIME 实际累计消耗cpu的时间
CMD 开启该进程的命令
ps aux的其他字段在ps -ef中都有,比较特殊的就是VSZ(该进程占用的虚拟内存量)和RSS(该进程占用的物理内存量)
■ 关于进程的优先级,PRI与NI值
前面提到过这两个值
首先我们知道,cpu课可以连续执行多次不同进程的不同部分,所以把重要进程的优先级调高,更有利于提高运算效率
作为进程优先级的体现,es gibt PRI und NI值了。PRI值由系统内核动态地进行调整,用户无法直接进行修改,PRI越小代表其优先级越高,如75PRI值的进程运行时的优先级就比77PRI值的进程要高
用户如果想要影响优先级可以通过调整NI值来实现。在我看来,NI值是对PRI值的一个修正,root的所有人的进程可以做出NI值的修改,修改范围是-20到19,一般用户就只能对属于自己的进程进行NI值的修改,其调整范围是0到19
如果有一个进程原有的PRI是20,然后用户把它的NI值调整为5,那么这个进程最终的优先度就是25
通过renice <NI> <pid>来调整改变nice值
■ 查看系统资源的一些命令
free -m查看内存
uname -a查看内核信息,返回信息中包括内核名,内核版本,硬件名称,CPU类型,硬件平台等
uptime 查看系统启动时间和工作负载
vmstat实时监测系统的资源变化。vmstat可以检测cpu/内存/磁盘的输入输出状态,vmstat后面可以加两个参数如vmstat 1 3表示要求其每隔一秒给出一次数据,一共给出三秒
vmstat返回值中的字段有procs:r(等待运行的进程数量),b(不可被唤醒的进程数量)。这两个指数越大表明系统越忙
memory:swpd(虚拟内存中被使用的量),free,buff,cache(字段和free命令是一样的)
swap:si(从磁盘中取出的量),so(移入磁盘的量)。这两个指数越高说明系统IO负载越高,性能越差
io:bi(读取磁盘的量),bo(写入到磁盘的量)
system:in(每秒中断进程的次数),cs(每秒事件切换次数)
cpu:us(非内核态cpu状态),sy(内核层cpu状态),id(限制状态),wa(等待IO时耗费cpu状态)。。
以上这些字段我也不是很懂。。就记了个大概
iostat用于查看io状态
■ 关于/proc/*
其实以上所有命令的数据都是从/proc目录相关文件下取出来的。这个目录之前也提到过了が,有下面这些个目录
cmdline 记录加载kernel时的命令和参数
cpuinfo cpu相关信息
devices 系统各个主要设备的代号
filesystems 系统已加载的文件系统的信息
loading 平均负载数据
meminfo 通过free查看到的数据来自这里
mounts 通过mount查到的信息来自这
uptime 通过uptime查到的信息
version 通过uname查到的信息
■ 关于正在被进程使用的文件
如果想要通过目录或文件找出正在使用这个文件的进程,用fuser
比如fuser /opt/zabbix-OMS-api/nohup.out
反过来,如果想要通过进程来查找的话用lsof
比如lsof | grep (pid)
【Linux】 linux中的进程信息相关的一些内容的更多相关文章
- Linux 系统中僵尸进程
Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸.配图源 ...
- Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免?
如题 Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免? 一个进程在调用exit命令结束自己的生命的时候,其实他并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结 ...
- Linux常用命令 查看进程信息时 copy的-----温故而知新
1.查进程 ps命令查找与进程相关的PID号: ps a 显示现行终端机下的所有程序,包括其他用户的程序. ps -A 显示所有程序. ps c 列出程序时,显示每个程序真正的 ...
- Linux:PS查看进程信息,和查看tomcat内存等信息
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/fly910905/article/deta ...
- linux系统中的进程状态分析
转载地址:https://blog.csdn.net/shenwansangz/article/details/51981459 linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序, ...
- 第二十一篇:Linux 操作系统中的进程结构
前言 在 Linux 中,一个正在执行的程序往往由各种各样的进程组成,这些进程除了父子关系,还有其他的关系.依赖于这些关系,所有进程构成一个整体,给用户提供完整的服务( 考虑到了终端,即与用户的交互 ...
- Linux 操作系统中的进程结构
前言 在 Linux 中,一个正在执行的程序往往由各种各样的进程组成,这些进程除了父子关系,还有其他的关系.依赖于这些关系,所有进程构成一个整体,给用户提供完整的服务( 考虑到了终端,即与用户的交互 ...
- linux内核中与进程相关的数据结构(基于linux3.16-rc4)
1.进程描述符 struct task_struct { volatile long state; ....... struct list_head tasks; ....... struct mm_ ...
- linux top动态查看进程信息
来源<鸟哥的linux私房菜> top:动态观察程序的变化 [root@linux ~]# top [-d] | top [-bnp] 参数: -d :后面可以接秒数,就是整个程序画面更新 ...
随机推荐
- Davinci DM6446开发攻略——u-boot-1.3.4移植(1)
UBOOT的版本更新速度比较快,截止今天,稳定正式的版本是u-boot-2009.11-rc2,而TI最新的EVM开发包里的UBOOT是1.2.0版本,国内很多公司还一直使用u-boot-1.1.4和 ...
- AfxBeginThread和CreateThread具体区别
1. 具体说来,CreateThread这个函数是windows提供给用户的 API函数,是SDK的标准形式,在使用的过程 中要考虑到进程的同步与互斥的关系,进程间的同步互斥等一系列会导致操作系统死锁 ...
- mysql一些使用技巧
1.查看系统帮助文档:HELP contents; 2.查看所有支持的数据类型:HELP Data Types; 3.查看对应的数据类型的详细信息:HELP 类型:如HELP INT; 4.查看存储引 ...
- bzoj 4026 dC Loves Number Theory
把我写吐了 太弱了 首先按照欧拉函数性质 我只需要统计区间不同质数个数就好了 一眼主席树 其次我被卡了分解质因数这里 可以通过质数筛时就建边解决 不够灵性啊,不知道如何改 #include<bi ...
- Java 第三章 选择结构
第三章 选择结构 if基本语法: if(条件){// 表达式 // 代码块 } eg: int a = 10; if(a > 1){ System.out.println("内容& ...
- C# 中?和??的用法
最近在看官方的源码时,经常看到有 Int? sum; 和 FileProvider = FileProvider ??builder.GetFileProvider(); 一个问号: 很多数据类型时不 ...
- 实例 centos自动挂载、备份windows共享文件夹,并删除第7日前当天的备份
此为用户twk的备份执行方案(192.168.42.246虚拟机数据库,备份到192.168.42.147的第二硬盘)此为用户twk的备份执行方案(192.168.42.5虚拟机数据库,备份到192. ...
- C#图解教程
初识本书是在知乎,许多网友推荐它作为 C# 入门书籍. 本书的最大特点是插图丰富,许多复杂的概念,一副插图就解释得通透明了. 本书另外一个隐藏特性是作者有着 C/C++ 经验,书中经常提到它们与 C# ...
- 【转载】Java并发编程:volatile关键字解析(写的非常好的一篇文章)
原文出处: 海子 volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volat ...
- UOJ207:共价大爷游长沙
题面 UOJ Sol 神题 给每个点对随机一个权值,把这两个点的权值异或上这个随机的值 用\(LCT\)维护子树信息,若子树异或和为所有点对的异或和那么就是答案 大常数代码 # include < ...