您的位置:首页 > 运维架构 > Linux

Linux系统资源查看

2017-10-31 20:00 232 查看
Linux进程查看命令:
一、Linux系统上的进程及查看工具:
pstree,ps,pidof,pgrep,htop,glances,pmap,vmstat,dstat,
kill,pkill,job,bg,fg,nohup,nice,renice,killall

CentOS5:SysV init//基于shell脚本实现,启动服务串行方式运行
CentOS6:upstart //通过命令创建进程,并行方式执行启动 //封装仍然使用service
CentOS7:Systemd//参考mac OS,只需要启用一个进程,就可以把各服务进程启动起来
//systemctl 可以控制其他服务
1.pstree //查看进程树
2.ps 当前进程的状态显示
/proc:内核中的状态信息
内核参数:可设置其值从而调整内核运行特性的参数:/proc/sys
状态变量:其用于输出内核中统计信息或状态信息,仅用于查看:
参数:模拟成fs类型;
//ps抽取/proc中的信息,进行展示
进程:
/proc/#
#:PID //
ps [options] //三种风格
1.UNIX风格 //ps -a
2.BSD //ps a //不带横线
3.GNU
启动进程的方式:
系统引导时自动启动 //终端无关
用户通过终端启动 //终端相关
-a //终端相关
-x//终端无关
u //用户相关的
aux //所有进程 [] 内核线程
USER PID ... VSZ RSS STAT
VSZ:虚拟内存结合virtual memory size//线性地址空间和物理地址空间
//3G只有我使用,进程看到的就是虚拟内存集,
RSS:常驻内存集Resident Size,当内存不够用的时候,有些内存中的数据需要放到swap上,但是有的不能放到swap上:常驻内存集
STAT:状态,
R:running
S:Interruptable sleeping
D:uninterruptable sleeping
T:stopped
Z:zombie

+:前台进程
l:多线程进程
n:低优先级进程
小于号《:高优先级进程
s:session leader//主进程
-e :显示所有进程,相当于ax,但是是unix风格
-f:full-format完整格式
ps -ef
PPID:父进程pid,STIME:启动时间,C:PCPU cpu utilization的占用百分比,TIME:累计运行时间
-F:显示完整格式的信息
显示的信息更全
ps -eF
PSR:运行在哪个CPU上,precessor
man ps //后面有帮助信息
-H:以层级结构显示进程的信息
ps -eFH
其他常用组合:
o:可自定义要显示的字段,逗号分隔
ps -axo pid,command,pri,psr,pcpu,stat,tty,ppid,user,ni,rtprio
ni:nice值
rtprio:real-time priority,实时优先级
-eo: //o一定要写到后面,因为 o 是需要带参数的
-axo:

3.pgrep,pkill命令
pgrep [options] pattern
-u uid:显示指定用户的进程
-U uid :read user
-t TERMINAL:与指定终端相关的进程
-l :显示进程名
-a :显示完整的进程名
-P pid :显示其进程的子进程
pgrep -P 25463 //查看其子进程
//子进程的子进程,是他的孙子进程,不是他的子进程
pgrep ssh //有ssh字符串的
pgrep s //有s字符创的
pkill和pgrep用法类似
4.pidof指定进程的进程号
pidof sshd //根据进程名获取其pid
-s:仅返回一个进程号;
-c:仅显示具有相同“root”目录的进程;
-x:显示由脚本开启的进程;
-o:指定不显示的进程ID。

5.top 类似于windows的任务查看器
动态查看进程状态信息
h 帮助信息

top - 12:14:58 up 2 days,  2:47,  3 users,  load average: 0.00, 0.01, 0.05
Tasks: 307 total,   2 running, 305 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1009272 total,   155080 free,   201980 used,   652212 buff/cache
KiB Swap:  2097148 total,  2093712 free,     3436 used.   537560 avail Mem
load average:1,5,15min //平均队列长度,在cpu上等待运行的队列长度
通常队列等待的数量不能大有cpu的数量 //Load的阈值一般在cpu核心数*2.5 (经验)
%CPUs // sy:kernel time,ni:用于nice调整占用的cpu时间,id:idel空闲百分比,wa:wait等待io百分比,hi:hwaddr interrupt硬件中断,si:soft interrupt软中断,si:被偷走的百分比(被虚拟化偷走的)
排序:
P:以占据cpu百分比排序
M:内存
T:累计占用cpu百分比
首部信息:
l命令 //切换cpu
tasks及cpu信息:t命令
内存信息:m命令
刷新时间
s 1 //每个1s刷新一次
k //kill
选项
-d # //指定刷新时间间隔
-b //以批次方式显示,bat
-n //显示多少批次
top -b -n 1
1 //分散显示cpu
6.uptime //显示系统的时间,运行时长及平均负载
过去1,5,15min的平均负载,等待平均队列长度
uptime -s //系统开机时间
-p //已经开机的多长时间

7.htop //需要epel源 ,可以自定义显示选项,支持鼠标
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/ https://mirrors.aliyun.com/epel/7/x86_64/ yum install htop -y
注意:yum是具有事务概念的,同时只能运行一个yum命令
h //Memory:used/buffers/cache
status:
R:running,S:sleeping,T:traced/stopped,Z:zombie,D:disk sleep//不可中断睡眠
u //指定用户进程
H //show/hide user thread
k 内核线程
F 光标跟踪
P M T //排序方式
F6 //选定字段排序
c //标记进程和其子进程
a CPU绑定
i 设置io优先级
光标选定进程// l 显示进程打开的所有文件
s //跟踪一个进程发起的系统调用
F4自动滚屏
-d# //delay time
-u USERNAME //指定用户的进程
-s COLUME //以指定字段排序
子命令:
l:显示进程打开的文件的列表
s:跟踪选定的进程的系统调用
t:Tree状显示,或者F5
a:将选定的进程绑定至任务的核心上

8.vmstat //虚拟内存,报告虚拟内存的统计数据
vmstat [options] [delay [count]]
vmstat 2 //每2s更新一次
vmstat 2 2 //共显示2次,每2s更新一次
-s //显示内存使用信息
procs:进程,
r:running:等待运行的进程的个数;CPU上等待运行的队列长度
b:block阻塞的,被阻塞的任务的队列的长度
memory:
swpd:交换内存的使用量,0:表示么有启用
free:空闲的物理内存总量
cache:缓存
buffer:缓冲
swap//相对于swap
si:swap in //速率值 kb/s
so:swap out //数据离开swap的速率 kb/s
io //相对于磁盘
bi:从硬盘读入数据到os,kb/s
bo:保存数据至块设备的速率,kb/s
system
in:interrupts中断速率
cs{context switch}切换速率
cpu
us
sy
id
wa
st
中断:当io需要和cpu交互的时候,cpu如何知道有信号到达
1.轮训,每隔一段时间查看是否有交互
2.中断线//需要申请使用,有编号,一个中断线可以复用
9.pmap //内存映射
pmap PID

pmap [options] pid [...]
-x:显示详细格式的信息
cat /proc/1/maps //作用一样

10.glances命令 //比top界面更美观
//可以远程查看,

-b //以bytes为单位显示网卡数据速率
-d //关闭磁盘io模块
-m //关闭mount模块
-n //关闭network模块
-t # //刷新时间间隔
-1 //每颗cpu单独显示
· a – 对进程自动排序
· c – 按 CPU 百分比对进程排序
· m – 按内存百分比对进程排序
· p – 按进程名字母顺序对进程排序
· i – 按读写频率(I/O)对进程排序
· d – 显示/隐藏磁盘 I/O 统计信息
· f – 显示/隐藏文件系统统计信息
· n – 显示/隐藏网络接口统计信息
· s – 显示/隐藏传感器统计信息
· y – 显示/隐藏硬盘温度统计信息
· l – 显示/隐藏日志(log)
· b – 切换网络 I/O 单位(Bytes/bits)
· w – 删除警告日志
· x – 删除警告和严重日志
· 1 – 切换全局 CPU 使用情况和每个 CPU 的使用情况
· h – 显示/隐藏这个帮助画面
· t – 以组合形式浏览网络 I/O
· u – 以累计形式浏览网络 I/O
· q – 退出(‘ESC‘ 和 ‘Ctrl&C‘ 也可以)
glances -f /root -o HTML //保存为HTML /CSV格式,仅仅需要知道个路径即可,不能指定文件名字
ssh -X root@10.0.0.1 //启用图形显示,
//可以动态刷新该文件
在C/S模式下运行glances命令
服务模式:
glances -s -B IPADDR
IPADDR //本级某地址,用于监听
-B //监听地址
客户端模式:
glances -c IPADDR
IPADDR//远程server的ip

glance颜色定义:
· 绿色:OK(一切正常)
· 蓝色:CAREFUL(需要注意)
· 紫色:WARNING(警告)
· 红色:CRITICAL(严重)
阀值可以在配置文件中设置,一般阀值被默认设置为(careful=50、warning=70、critical=90)。
(默认在 /etc/glances/glances.conf)中自定义。

11.dstat //资源使用统计数据的工具,功能最全
默认:cdngy //cpu,disk,net,paging,sys
-c{d,n,g,y}
-C 0,3,total //包括0号和3号cpu或者total,指定cpu
-d,disk
-D sda,sdb,...total
-g:显示page相关的统计数据

-i 中断
-m mem
-n net
-N eth1,eth0
-p proc
-r io
-s swap
-S swap1,total
--aio //激活异步io
--ipc //激活ipc
--tcp  //tcp统计信息
--udp  //
--socket

--unix  //unix-socket
--top-bio //最消耗磁盘io的
--top-cpu //最忙的cpu
--top-int //最多中断数量的
--top-mem
--top-lantency //延迟最大的进程
dstat 1 2 //每隔1s显示一次,共显示2次
12.kill命令
用于向进程发送信号,以实现对进程的管理
kill -l 1 //查看1号sign的内容
kill -l //查看所有信号内容
每个信号的标识方法有三种
1)信号的数字表示方法
2)信号的完整名称
3)信号的简写名称
向进程发送信号
kill [-s signal] [-q sigval] [-a] [...] pid...
kill -s 15 PID
常用信号:
1):sigup:无须关闭进程而让其重读配置文件
kill -SIGHUP 111000
kill -s SIGNUP 111000
2):SIGINT:中止正在运行的进程,相当于ctrl+c //暂停
9):SIGKILL;杀死运行中的进程;残忍杀害
//不管你正在做什么,直接kill
15):默认信号SIGTERM:终止运行中的进程;人道毁灭
//告诉你,你要死了,把正在运行的工作做完,然后kill
19):SIGSTOP:停止,送到后台 //ctrl+z
ps aux |grep vim
//fg直接返回到前台
18):SIGCONT:继续
13.killall
基于名称
killall [-SIGNAL] program
killall httpd //ps aux |grep httpd 将没有任何东西
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ps pstree pidof