linux性能命令详解

来源:互联网 发布:农村淘宝合伙人考试后 编辑:程序博客网 时间:2024/06/04 18:26

1、查看进程相关信息

1、1   查看当前进程

查看当前进程的启动命令,PID为线程ID

1、ps –ef | grep  ‘进程信息‘  获得进程PID

2、cd /proc/PID

3、ll /proc/PID

显示的文件夹:

cwd符号链接的是进程运行目录;

 

exe符号连接就是执行程序的绝对路径;

 

cmdline就是程序运行时输入的命令行命令;

more cmdline查看

environ记录了进程运行时的环境变量;

 limits — 当前进程所使用的每一个受限资源的软限制、硬限制和管理单元 fd — 这是个目录,包含当前进程打开的每一个文件的文件描述符(file descriptor),这些文件描述符是指向实际文件的一个符号链接;进入目录,用grep过滤

 

参考:http://www.cnblogs.com/cute/archive/2011/04/20/2022280.html

 

1.2 负载情况

/proc/loadavg

例子:10:19:04 up 257 days, 18:56,  12 users,  load average: 2.10, 2.10,2.09

10:19:04                             //系统当前时间

up 257 days, 18:56           //主机已运行时间,时间越大,说明你的机器越稳定。

12 user                              //用户连接数,是总连接数而不是用户数

load average                    // 系统平均负载,统计最近1,5,15分钟的系统平均负载

系统平均负载

系统平均负载是指在特定时间间隔内运行队列中的平均进程数。如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。

 

1.3iostat

iostat -d -k 1 5         查看磁盘吞吐量等信息。

iostat -d -x -k 1 5     查看磁盘使用率、响应时间等信息

iostat –x 1 5            查看cpu信息。

 

iostat -x 1(-x:显示扩展信息)

cpu:

%user:CPU处在用户模式下的时间百分比。

%nice:CPU处在带NICE值的用户模式下的时间百分比。

%system:CPU处在系统模式下的时间百分比。

%iowait:CPU等待输入输出完成时间的百分比。

%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。

%idle:CPU空闲时间百分比。

【注】

%iowait的值过高,表示硬盘存在I/O瓶颈

%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那

么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

 

disk:

rrqm/s:  每秒进行 merge 的读操作数目。即 rmerge/s

wrqm/s:  每秒进行 merge 的写操作数目。即 wmerge/s

r/s:  每秒完成的读 I/O 设备次数。即 rio/s

w/s:  每秒完成的写 I/O 设备次数。即 wio/s

rsec/s:  每秒读扇区数。即 rsect/s

wsec/s:  每秒写扇区数。即 wsect/s

rkB/s:  每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。

wkB/s:  每秒写K字节数。是 wsect/s 的一半。

avgrq-sz:  平均每次设备I/O操作的数据大小 (扇区)。

avgqu-sz:  平均I/O队列长度。

await:  平均每次设备I/O操作的等待时间 (毫秒)。

svctm: 平均每次设备I/O操作的服务时间 (毫秒)。

%util:  一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比

【注】

如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。

如果avgqu-sz比较大,也表示有当量io在等待。

 

参考:http://chenchao40322.blog.51cto.com/2181131/411191

 

1.4vmstat

vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数

例子:

root@ubuntu:~# vmstat 2 1procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa 1  0      0 3498472 315836 3819540    0    0     0     1    2    0  0  0 100  0

进程信息:

r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
b 表示阻塞的进程,这个不多说,进程阻塞,大家懂的。

 

swpd 虚拟内存

swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。

free   空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。

buff   Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M

cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)

 

硬盘情况

si  每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。

so  每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

bi  块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒

bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

 

系统信息

in 每秒CPU的中断次数,包括时间中断

cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。

us 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。

 

cpu信息

sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

id  空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。

wt 等待IO CPU时间。

 

1.5top

最常用的命令,进入top后,相关的可以输入的交互参数如下

M —根据驻留内存大小进行排序
P —根据CPU使用百分比大小进行排序
T —根据时间/累计时间进行排序
c —切换显示命令名称和完整命令行
t —切换显示进程和CPU信息
m —切换显示内存信息
l —切换显示平均负载和启动时间信息
o —改变显示项目的顺序
f —从当前显示中添加或删除项目
S —切换到累计模式
s —改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;如果值设的很小,不但看不清结果,同时还会是系统负载大大增加
q —退出top程序
i —忽略闲置和僵尸进程。这是一个开关式的命令
k —终止一个进程,系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束进程;默认的信号是15;但是在安全模式中此命令被屏蔽

1---显示各个cpu的详细负载

1 0
原创粉丝点击