一、cpu
1、我们可以使用top
来查看cpu的总的使用及每个进程的使用情况
“Cpu(s): 0.5%us, 0.7%sy, 0.0%ni,98.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st”
,
我们可以看到用户空间占用CPU百分比
是0.5%,内核空间占用CPU百分比
是0.5%,空闲比是98.8% 说明cpu资源还有很多,这个时候我们不需要关心每个进程的使用情况
2、找出占用cpu较高的进程
按大写的P
是按照cpu排序,这样我们就能看到占用CPU最多的进程, 用top -c 可以看到详细的COMMAND的信息,定位到具体的脚本文件。
3、查看线程内存使用情况
我们可以top -d 进程号
如:top -d 10677
单独查看占用cpu最高的进程id,然后按H
可以查看此进程的线程的cpu的使用情况,这个时候PID就变成了线程id,然后同样我们也按下大写P
来进行cpu的排序 找到占用cpu最高的线程信息,进而定位到问题
二、内存
1、使用free -h
名查看机器总的内存使用情况
图上,磁盘总的大小是296G 使用了 27G,可用 254G,使用率10%,磁盘的使用率并不高,不用担心
2、如果磁盘使用率很高 也可以像查找cpu那样找出 占用内存较高的进程
三、磁盘
1、首先使用df -h
名查看机器总的磁盘使用情况
图上,磁盘总的大小是296G 使用了 27G,可用 254G,使用率10%,磁盘的使用率并不高,不用担心
2、如果磁盘使用率很高
我们采用逐层查看的方式
du -sh /* | sort -nr
可以得到 / 目录下所有文件和目录的大小的排序结果。
从中找出最大的,在我的机器中/var文件占用了47个G的大小,应该就是它了,使用上面的命令继续追踪:
du -sh /var/* | sort -nr
du -sh /var/log/* | sort -nr
du -sh /var/log/httpd/* | sort -nr
最后找到 暂用磁盘较多的文件
3、使用 find
我们也可以配合find命令查询一些较大文件 比如
find ./ -size +1G -exec du -h {} \;
这个命令可以列出 大于1G的文件列表
四、IO
1、通过iostat -d 1 1
查看指定磁盘吞吐量和速率
[root@localhost ~]# iostat -d 1 1
Linux 2.6.32-573.el6.x86_64 (localhost) 06/30/2017
_x86_64_ (4 CPU)
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.14 0.08 3.31 1939830 83482716
dm-0 0.42 0.07 3.30 1872538 83282120
dm-1 0.00 0.00 0.00 39840 124112
dm-2 0.00 0.00 0.00 2002 76424
dm-3 0.00 0.01 0.00 254810 14320
从结果看到平均传输次数0.14,每秒读取0.08M,每秒写3.31M
2、iostat -x 1 1
查看磁盘io的性能
说一下 -x参数输出列意思
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);
wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
rsec/s:每秒读取的扇区数;
wsec/s:每秒写入的扇区数。
r/s:The number of read requests that were issued to the device per second;
w/s:The number of write requests that were issued to the device per second;
await:每一个IO请求的处理的平均时间(单位是毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。