一、性能分析的主要方面:cpu, 内存,网络,磁盘
1、CPU的利用率:常用的命令:top(最常用),free ,uptime,sar、dstat、mpstat、ps
1)主要通过处理器的多核心处理能力来提高系统性能
2)top查看到应用程序的cpu占比。比如Java和mysqld较高时,java程序通过JVM自带的命令工具(jstat、Jvisualvm、JConsole)来分析,mysql可以通过数据库监控工具(Spotlight、Monyog、以及命令行工具)来分析,以及考虑是否需要做负载均衡或者加强机器性能
3)CPU 的具体命令的说明:
(1)
查看物理CPU的个数:
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
(2)
查看逻辑CPU的个数:
cat /proc/cpuinfo |grep "processor"|wc -l
(3)
查看CPU是几核:
cat /proc/cpuinfo |grep "cores"|uniq
(4)查看CPU型号和逻辑cpu的个数:
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
2、内存利用率:常用命令free(最常用)、top、sar、vmstat、dstat、ps
1)内存太小、系统进程被阻塞中,应用程序的响应变慢,严重会触发系统的内存溢出从而引起应用程序被系统杀死,更严重的会引起系统重启
2)虚拟内存也是要考虑的性能指标。系统总是在物理内存不够时,才进行内存之间的交换
3) 内存的具体命说明:
(
1)
以KB为单位显示内存使用情况:
free -k
(2)
以MB为单位显示内存使用情况:
free -m
(3)
以GB为单位显示内存使用情况:
free -g
(4)
以直观的形式(MB 或GB)查看内存使用情况
:
free -h
3、磁盘I/O的利用率和延迟:常用命令:iostat(最常用)、sar、vmstat、dstat、ps、top
1)磁盘数据的读写时系统中最慢的部分,读写频繁时会导致应用的阻塞
2)需要考虑IO的tps、平均I/O数据、平均队列长度、平均服务时间、平均等待时间、IO利用率
3)安装: yum install -y sysstat
监控磁盘性能命令: iostat -x -k 10 (-x 展示更多的信息 , -k 展示出来的数据是以kb为单位 ,10 10秒刷新一次 )
4)监控的磁盘的空间的命令: df -h
5)测试磁盘速度的命令:dd if=/dev/zero of=/home/test bs=8k count =1000000 oflag=direct (
of=/home/test的目录必须是真实存在的
)
4、网络利用率: 常用命令:
netstat
(最常用)、sar、ifconfig、net的dev
1)需要考虑对应网络是否可达、防火墙是否开启、端口访问、带宽是否被限制、路由的寻址、网络的延迟
5、其他:资源监控分析的综合命令vmstat
6、英伟达服务器的
监控GPU、CPU、内存等的使用命令:
jtop
二、linux性能监控工具-nmon(常用)、spotlight,剪短的
主要介绍一下
nmon
可以查看这篇文章的介绍的nmon:
https://www.cnblogs.com/qgc1995/p/7523786.html
nmon可以实时展示系统性能情况,也可以见个监控数据写入文件中,并使用nmon分析器做数据展示。包括两部分:安装包和分析工具。
1、下载安装包、解压安装包、改名安装包为nmon(
网上很多下载安装教程
);
2、在对应的文件目录下,执行 : ./nmon -ft -s 5 -c 1000 (ft将监控数据写入到文件中,-s 5秒写入一次,-c 1000:写1000次),命令执行后,在当前文件夹下生成一个.nmon的文件;停止监控时,执行该命令kill -9 nmon的pid;
3、将
.nmon的文件下载到window系统上,在nmon分析工具中查看(nmon分析工具中有很多教程);
4、nmon文件中需要关注的标签页
(1)cpu all
(2) diskbusy
(3)net
(4)mem