服务端思惟指南 | 经常使用性能监控指南

原文地址:梁桂钊的博客java

博客地址:blog.720ui.comlinux

欢迎转载,转载请注明做者及出处,谢谢!ios

当性能出现问题时,能够经过 Linux 操做系统的命令获取性能信息。本节会介绍一些经常使用的 Linux 的性能监控命令。windows

top 命令 – 监控进程状态

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

# top
复制代码

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

# top –d 5 –p 9836 -c
复制代码

ps 命令 – 查看当前进程

这个命令适合用来查看某个瞬间存在哪些进程,这些进程的信息和状态等。经过 ps 命令,能够判断当前进程的状态,从而找出问题的缘由。使用 ps 命令能够显示系统中当前全部的进程。网络

# ps -ef
复制代码

同时,也能够指定查看相关的进程。下面来看一个例子,其中,查看全部 java 进程。性能

# ps –ef | grep java
复制代码

netstat 命令 – 查看网络链接状况

这个命令能够知道 Linux 系统的网络状况,适合用来查看网络链接信息。其中,能够查看当前的全部链接。ui

# netstat -a
复制代码

此外,能够监听 TCP 的链接。spa

# netstat –atl
复制代码

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

# netstat -an | grep 10090 | wc -l
复制代码

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

# iostat –k 1 5
复制代码

sar 命令 – 性能监控

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

# sar –u 1 10
复制代码

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

# sar –pd 1 10
复制代码

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

vmstat 命令 – 虚拟内存监控

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

# vmstat 1 5
复制代码

其中,第一行显示是 Linux 操做系统启动后的平均值,因此通常看第二行后面的值。

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

nmon 命令 – 性能监控

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

# wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz
# tar zxvf nmon_linux_14i.tar.gz
# chmod 777 nmon_x86_64_sles11
复制代码

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

# ./nmon_x86_64_sles11
复制代码

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

(完,转载请注明做者及出处。)

更多精彩文章,尽在「服务端思惟」!

相关文章
相关标签/搜索