前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >查看操作系统负载

查看操作系统负载

作者头像
dys
发布2018-04-02 17:18:17
1.7K0
发布2018-04-02 17:18:17
举报
文章被收录于专栏:性能与架构

当我们系统有问题的时候,不要急于去调查我们代码

首先要看的是操作系统的报告,看看操作系统的CPU利用率,看看内存使用率,看看操作系统的IO,还有网络的IO,网络链接数,等等

Windows下的perfmon是一个很不错的工具,Linux下也有很多相关的命令和工具,比如:SystemTap,LatencyTOP,vmstat,sar,iostat,top,tcpdump等等

通过观察这些数据,就可以知道性能问题基本上出在哪里

(1)先看CPU利用率,如果CPU利用率不高,但是系统的吞吐量和系统延迟指标上不去,这说明我们的程序并没有忙于计算,而是忙于别的一些事,比如IO

CPU的利用率还要看内核态的和用户态的,内核态的上去了,整个系统的性能就下来了,对于多核CPU来说,CPU 0是相当关键的,如果CPU 0的负载高,那么会影响其它核的性能,因为CPU各核间是需要有调度的,这靠CPU 0完成

(2)看一下IO大不大,IO和CPU一般是反着来的,CPU利用率高则IO不大,IO大则CPU就小

关于IO,我们要看三个事

1)磁盘文件IO

2)驱动程序的IO(如:网卡)

3)内存换页率

(3)查看一下网络带宽使用情况,在Linux下,可以使用 iftop,iptraf,ntop,tcpdump 这些命令来查看,或是用 Wireshark 来查看

(4)如果CPU不高,IO不高,内存使用不高,网络带宽使用不高,但是系统的性能上不去,这说明你的程序有问题,比如,你的程序被阻塞了,可能是因为等哪个锁,可能是因为等某个资源,或者是在切换上下文

通过了解操作系统的性能,我们才知道性能的问题,比如:带宽不够,内存不够,TCP缓冲区不够,等等,很多时候,不需要调整程序的,需要我们更好的了解硬件和系统状况

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档