Linux系统中各资源的占用情况

一、cpu

1、我们可以使用top来查看cpu的总的使用及每个进程的使用情况
image.png

“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名查看机器总的内存使用情况
image.png

图上,磁盘总的大小是296G 使用了 27G,可用 254G,使用率10%,磁盘的使用率并不高,不用担心

2、如果磁盘使用率很高 也可以像查找cpu那样找出 占用内存较高的进程

三、磁盘

1、首先使用df -h名查看机器总的磁盘使用情况
image.png

图上,磁盘总的大小是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的性能
image.png

说一下 -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%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

3、使用iotop命令查看 io较高的进程
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • linux系统性能监视命令,经过百度谷歌,加上各渠道获得,查找到相关命令汇集,望能学有所收获 ...
    _王子_阅读 1,403评论 3 13
  • 漫画肖像是近一段流行的画种,讲求适度夸张,根据被画者本人的特点,绘制者运用自身想象力,让被画者有焕然一新的感觉,请...
    梁俊琦漫画阅读 814评论 0 1
  • 糊涂错牵的姻缘,总会在下一段缘分中消解。之前让你伤心的感情,也教会了你怎样去爱,好让你在真正的缘分到来之际,从容地...
    北在北方她阅读 228评论 0 0
  • 有山、有水、几亩良田,养几只鸡鸭猪狗,和一个热爱生活、性格温和的老头平淡生活,多么美好……嘻嘻,另外北京有一套豪宅...
    花花的豆语阅读 210评论 0 1
  • 天地之间,我们每一个人都是匆匆过客,但当我们的生命注定与教育结缘了,我们应该给学校留下些什么?应该给学生留下...
    渑池835杨鸿斌阅读 1,312评论 8 10