常用性能监控指南

简介:
当性能出现问题时,可以通过 Linux 操作系统的命令获取性能信息。本节会介绍一些常用的 Linux 的性能监控命令。
top 命令 – 监控进程状态

这个命令适合用来实时掌握操作系统的整体情况,且能够实时反映出系统各个进程的资源的占用情况,类似于 windows 的任务管理器。使用 top 命令可以显示进程信息。

 
  1. # top

453d42c0003671c92dbe004719f5f025bab3387b

图中,上半部分显示操作系统的各种信息,包括 CPU 使用情况、内存使用情况、进程执行情况等。下半部分显示了活动比较频繁的进程,可以在这些进程中排查问题的端倪。确定可疑的进程后,可以指定相关进程,并设置信息更新时间,显示完整命令。下面来看一个例子,其中,指定显示进程 9836,每隔 5 秒的进程的资源的占用情况。

 
  1. # top –d 5 –p 9836 -c

ps 命令 – 查看当前进程

这个命令适合用来查看某个瞬间存在哪些进程,这些进程的信息和状态等。通过 ps 命令,可以判断当前进程的状态,从而找出问题的原因。使用 ps 命令可以显示系统中当前所有的进程。

 
  1. # ps -ef

同时,也可以指定查看相关的进程。下面来看一个例子,其中,查看所有 java 进程。

 
  1. # ps –ef | grep java

e748026b06feee9709163f11d9a4cf361a2ceb25
netstat 命令 – 查看网络连接情况

这个命令可以知道 Linux 系统的网络情况,适合用来查看网络连接信息。其中,可以查看当前的所有连接。

 
  1. # netstat -a

此外,可以监听 TCP 的连接。

 
  1. # netstat –atl

811b591f82a0fda14fc239e49ecb0e2cf75ae1e6

甚至可以统计端口的当前连接数。下面来看一个例子,其中,查看 10090 端口的当前连接数。

 
  1. # netstat -an | grep 10090 | wc -l

这个命令适合用来监控系统设备的 IO 负载情况,对系统的磁盘操作活动进行监控。iostat 首次运行时,显示系统启动开始的各项统计信息,之后运行 iostat 将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。下面来看一个例子,其中,每秒采样一次,连续 5 次,观察磁盘 IO 的使用情况。

 
  1. # iostat –k 1 5

71de8d2221f37f462c26a6d1da59cc1d7a5ec00c
sar 命令 – 性能监控

这个命令适合用来监控 CPU 的使用率和空闲情况,以及磁盘 I/O 的使用情况、网卡流量的使用情况等。监控 CPU 的情况,可以使用 –u 参数,输出 CPU 使用情况的统计信息。下面来看一个例子,其中,每秒采样一次,连续 10 次,观察 CPU 的使用情况。

 
  1. # sar –u 1 10

076f9604de83607b9f934a305ab2acff4970eb8b

值得注意的是,如果 %user + %sys 超过 85%,进程可能要花时间在运行队列中等待,因此响应时间和吞吐量会受影响。但是,使用率 100% 不一定意味着 CPU 就是性能瓶颈,此时可以进一步查看 vmstat 命令中的 r 值是否超出服务器的 CPU 数量。此外,%system 比较大,说明系统管理方面花了很多时间。需要进一步的分析其它软硬件因素。监控磁盘 I/O 的情况,可以使用 –d 参数,输出每个块设备的活动信息。下面来看一个例子,其中,每秒采样一次,连续 10 次,观察磁盘 I/O 的使用情况。其中,-p 参数可以打印出磁盘的设备名称。

 
  1. # sar –pd 1 10

57619b3ac2e795778f0efc6be5ed226eff4f745d

如果 %util 接近100%,可能由于产生的 I/O 请求太多,I/O 系统已经满负荷,因此磁盘存在瓶颈。此外,如果 %await 远大于 %svctm,可能是因为磁盘 I/O 队列太长,导致响应时间变慢。

vmstat 命令 – 虚拟内存监控

这个命令适合用来监控 CPU 使用率,内存使用,虚拟内存交换情况,IO读写情况等。下面来看一个例子,其中,每秒采样一次,连续 5 次,观察虚拟内存的使用情况。

 
  1. # vmstat 1 5

56f97057ac9c3cc28c4a1fe2cf5a3017569d5aee

其中,第一行显示是 Linux 操作系统启动后的平均值,所以一般看第二行后面的值。

c937dc70139a36d70f6627dd79c6bdaca242ea9f

其中,swpd、 si、 so 三个指标的值比较高,很可能是内存不足。如果 cache 使用率非常低,而 swap 的 si 或 so 有比较高的数据值时,应该警惕内存的性能问题。此外,注意的是,当内存严重不足时,系统会频繁使用调页和交换,这增加了磁盘 I/O 的负载,进一步降低了系统对作业的执行速度,即系统 I/O 资源问题又会影响到内存资源的分配。

nmon 命令 – 性能监控

nmon 可以在一个屏幕上显示所有重要的性能信息,包括 CPU 信息、内存信息、网络信息、磁盘 I/O 信息等,并动态地对其进行更新。可通过 IBM 官网上免费下载获取或者通过 yum 命令直接安装。这里,使用 wget 方式进行下载与安装。

 
  1. # wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz


  2. # tar zxvf nmon_linux_14i.tar.gz


  3. # chmod 777 nmon_x86_64_sles11

至此,安装完成。通过下面命令进行启动。

 
  1. # ./nmon_x86_64_sles11

在运行界面上,输入 C 显示CPU信息,输入 M 显示内存信息,输入 N 显示网络信息,输入 D 显示硬盘 I/O 信息。

9354a634fa5b14f0a945aeef8af366d85b32f3dc
原文发布时间为: 2018-11-09
本文作者:Java技术驿站
本文来自云栖社区合作伙伴“ Java技术驿站”,了解相关信息可以关注“ Java技术驿站”。

相关文章
|
6月前
|
存储 缓存 监控
|
6月前
|
SQL 存储 监控
dts性能监控与调优
dts性能监控与调优
129 1
|
6月前
|
存储 缓存 监控
磁盘I/O性能监控的指标
【1月更文挑战第22天】
|
3月前
|
存储 Prometheus 监控
性能监控之初识 Prometheus
【8月更文挑战第2天】性能监控之初识 Prometheus
259 17
|
监控 测试技术 Linux
性能测试(22)——性能监控
Concurrency Thread Group 线程组 Transactions per Second 每秒事务数 Bytes Throughput Over Time 吞吐量 PerfMon Metrics Collector 性能指标收集器 Concurrency Thread Group 线程组
167 1
|
存储 监控 Java
性能监控和工具使用
性能监控和工具使用
性能监控和工具使用
|
监控 Java
|
运维 监控 数据可视化
JVM性能监控与故障处理工具
JVM性能监控与故障处理工具
183 0
JVM性能监控与故障处理工具
|
数据采集 消息中间件 监控
系统监控+性能监控|学习笔记
快速学习系统监控+性能监控
系统监控+性能监控|学习笔记
|
监控 数据可视化 IDE
jvm系列(5)性能监控工具
在平时的开发当中我们总是会遇到各种各样的问题,比如说内存泄漏、死锁、CPU等。遇到问题不可怕,关键是我们如何去排查这些错误,对症下药才是根本。不过对于很多人来说,往往找不到这些问题的根本所在,因此这篇文章主要是让我们掌握一些工具来分析到底是哪里出现了问题。 在之前的文章中,主要是分析了JVM的内存结构、类加载机制和垃圾回收机制。文章的顺序也是循序渐进的,从这篇文章当中我们主要是分析JDK自带的工具,把理论应用于实践。 首先我们先对几种要讲的工具进行一个概述,然后再分别分析
419 0
jvm系列(5)性能监控工具