Linux之系统信息和性能监测
Linux之系统信息和性能监测
一、前言
安装完一套linux操作系统我们首先得知道系统都有哪些信息,比如安装内存多少、磁盘多大、什么版本、多少核CPU等等,因此熟悉常用的查看系统信息的指令还是很有必要的。此文档主要对已安装的linux系统的属性有个初步的认识,介绍系统自带的常用性能监测指令和一款安装在linux系统下的开源性能测试工具:nmon,用于观测linux系统内核以及应用软件在linux系统下安装部署后运行的性能,为linux服务器系统运维人员排查问题和优化性能瓶颈提供帮助。
二、查看系统信息指令
1.查看CPU信息:【cat /proc/cpuinfo】可以查看每个cpu的信息
2.查看内存信息:【cat /proc/meminfo】查看整个系统的内存使用情况
3.查看磁盘分布:【fdisk –l |grep Disk】
Linux文件系统也是磁盘分区的哦,如果你去安装linux时就需要搞清楚哪些分区的最小安装空间是多少啦!上图我们可以看到系统磁盘总空间为500.1G,其中根目录root占用53.7G,交换区swap:3858MB,home目录:104.9G
4.查看linux的系统信息:【uname –a】,选项a表示所有“all”
该命令说明了linux的内核(kernel)版本,如上图的红色框,以及linux是x86_64的64位操作系统,此内容很重要,这个系统属性决定了以后需要安装对应的64位的应用程序包
5.查看操作系统版本:【cat /etc/issue】
上图可以看到我们安装的为:linux发行的红帽专业版6.5
6.查看系统的运行时间和当前时间:【uptime】&【date】
Uptime显示系统运行时间以及系统当前的平均负载(load average)情况,date显示当前系统时间
三、系统自带的性能监测指令
Linux服务器性能监测总体包括:cpu监测、内存监测、进程监测、网络监测以及I/O监测
1.top指令:top命令为查看系统整体运行进程相关、CPU相关、内存相关和具体每个进程的相关性能数据
其中第1行:系统运行时间
第2行:运行进程数量
第3行:CPU相关,如图可以看到系统是8核的CPU(按数字键1展开或隐藏)
第4行:内存相关
第5行:交换区相关
最后6:具体的进程信息
如果只想看到某一个进程,可以通过top -p 进程号(-p表示PID)来展示出来,如上图SMT的PID为21449,因此可在命令行输入:top -p 21449
结束top按组合键ctrl+c即可。
2.mpstat命令:查看具体每个CPU的使用情况
mpstat用法如下图
其中【mpstat –P ALL 5 2】表示每5秒显示系统所有8个cpu的使用情况,一共刷新2次。
3.vmstat命令:查看虚拟内存(Virtual Memory)使用状况的工具
虚拟内存:在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存,将这部分内存提供给有需要的进程使用。
Vmstat常用的格式:【vmstat 刷新间隔时间 刷新次数】,如下图【vmstat 2 10】表示每隔2s刷新一次,刷新10次停止
介绍下部分列表字段的含义:
Procs(进程):
r : 运行和等待cpu时间的进程数,如果长期大于1说明cpu不足
b: 在等待的资源进程数
memory(内存):
swpd: 切换到交换区的内存
free :可用内存大小
buff:缓存大小
swap(交换区):
si和so:内存进出交换区的数量
cpu(百分比):
us:用户进程执行时间
sy:系统进程执行时间
id:空闲时间
4.free命令:查看系统内存使用情况,展示总内存、已使用、缓存内存等
通过【free --help】帮助文档,我们可以通过【b、k、m、g】等选项来显示内存
5.iostat命令:查看i/o输入输出情况,更多时候我们关注磁盘的I/O,使用【iostat –d –k 刷新时间间隔 刷新次数】,如下图表示每隔1s刷新一次,一共刷新2次,我们可以看到每个磁盘当前的I/O读写总量等信息。
6.netstat命令:显示网络及其网络端口信息
常用命令:【netstat –a |more】:显示所有端口,包括监听和未监听的
【netstat -la】显示所有监听端口,【netstat -at】只显示tcp端口,【netstat -au】只显示udp端口。
其他相关的性能监测指令:
ps、pstree :显示所有进程和进程树
tcpdump:网络抓包分析器
lsof:列出所有打开的文件、进程等
四、开源性能监测工具:nmon以及nmon analyser
Linux系统除了上面介绍的性能监测指令和工具外,还可以安装开源的能适用于linux系统的性能监测工具,这些工具凝聚了诸多的指令,不仅仅能实时调用查看,还能采集一段时间内的性能数据,生成性能数据文件,拷贝出来后直接转换成excel表格显示,功能强大易用。nmon这款开源的工具就具有以上的属性和功能。
1.nmon资源下载:
nmon的linux版本安装包可以再IBM官方网站上免费下载,下载路径:
https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power%20Systems/page/nmon
注意:官网上有很多版本,如果你的linux是64位的就下载64位的程序包,并选择对应的适用于自己的linux发型版本
nmon和nmon analyser的版本需要对应,否则采集的数据在nmon analyser中打不开,本人亲自验证过(^.^)
这里我的linux是redhat 6.5 ,64位的系统,我下载的工具包为:
nmon和nmon analyser的版本是对应的。
2.安装nmon和nmon analyser
将我们下载的【nmon_linux_14g.tar】这个tar包通过运行在windows的SSH客户端文件传输工具(这里我使用的是:secureFX),直接拷贝到我们指定的linux目录下,这里我拷贝到我的系统【/usr/local/bin】路径下
然后通过secureCRT来远程登录我们的linux服务器,cd进入到我们拷贝的nmon安装包路径下,可以看到工具包是一个扩展名为.tar.gz的压缩文件,因此我们需要解压这个文件,解压tar包我们用tar命令,具体命令为:【tar –xzvf nmon_linux_14g.tar.gz】,解压出来后,如下图,我们找到需要的文件,这里我选择【nmon_linux_x86_64】这个适合系统的64位文件
这样就已经安装完毕nmon
nmon analyser并不需要安装在linux下,它是用来查看nmon采集的性能数据的,直接在windows下解压nmon analyser即可,它就是一个excel文件,只是它可以打开扩展名为.nmon的文件。
3.nmon使用
nmon使用很简单,只需要在命令行键入【./ nmon_linux_x86_64】来执行这个文档即可,不过在执行前我们需要确保该文档有可执行的权限,一般安装完后该文件是没有【x】即我们之前介绍的linux文件权限说到的,因此这里我们使用【chmod 777 nmon_linux_x86_64】来给它最高的权限。再执行【./nmon_linux_x86_64】,出现如下图的nmon界面
在nmon界面已经介绍了它的用法,以及用法帮助,如我们输入【c】即可获取系统cpu信息,【m】可以获取内存信息等等,以及在命令行输入【nmon -h】可以了解nmon的所有用法,按【q】退出nmon界面,效果如下:
在nmon里我们几乎可以显示系统的所有的性能指标,不仅仅如此,我们还可以通过键入命令来采集一段时间的性能数据,具体指令为:【nmon –s 10 –c 12 –f –m /tongdepu】,选项说明:-s 表示数据采集时间间隔,这里我们是10s采集一次,-c 表示数据采集次数,这里我们采集12次,即我们共采集10*12s=120s的数据,-f 表示生成的数据文件按标准的时间格式命名,-m 表示选择文件保存路径,这里我们保存在根目录下的【tongdepu】这个文件下,通过【ls –al】展开查看生成的扩展名为.nmon的文件,效果如下图:
这样我们的数据文件采集好了,然后打开secureFX文件传输工具,进入到【/tongdepu】这个目录下找到刚才采集生成的文件,直接拷贝出来,然后打开nmon anlyser工具包解压出来的excel文件
打开这样子的;
在选择.nmon文件前我们还需要设置excel表格的【宏】功能,只有开启宏功能才能读取打开该.nmon文件,具体设置如下:点击【开始】菜单-【Eccel选项】的信任中心里找到【宏设置】,然后启用所有宏即可,如下图
然后点击表格中的【Analyse nmon data】按钮,选择刚才采集生成的.nmon文件,会生成各项性能数据报表和统计图
在nmon anlyser工具包还有相关的用户使用说明:
这样性能数据监测采集到图形化输出完成,后续根据各个性能指标分析即可。