在前面的文章中,我简单介绍了影响linux性能的几个方面以及如何解决这些方面的问题,但是如何才能从系统上发现是某个方面或某几个方面出现问题了呢,这就需要使用linux系统提供的几个常用性能分析工具,下面就具体讲述这几个常用性能分析工具的使用。

1.vmstat命令

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,很多linux发行版本都默认安装了此命令工具,利用vmstat命令可以对操作系统的内存信息、进程状态、CPU活动等进行监视,不足之处是无法对某个进程进行深入分析。

vmstat使用语法如下:

vmstat [-V] [-n] [delay [count]]

各个选项及参数含义如下:

l -V:表示打印出版本信息,是可选参数。

l -n:表示在周期性循环输出时,输出的头部信息仅显示一次。

l delay:表示两次输出之间的间隔时间。

l count:表示按照“delay”指定的时间间隔统计的次数。默认为1。

例如:

vmstat 3

表示每3秒钟更新一次输出信息,循环输出,按ctrl+c停止输出。

vmstat 3 5

表示每3秒更新一次输出信息,统计5次后停止输出。

2.iostat命令iostat是I/O statistics(输入/输出统计)的缩写,主要的功能是对系统的磁盘I/O操作进行监视。它的输出主要显示磁盘读写操作的统计信息,同时也会给出CPU使用情况。同vmstat一样,iostat也不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

iostat一般都不随系统安装,要使用iostat工具,需要在系统上安装一个Sysstat的工具包,Sysstat是一个开源软件,官方地址为http://pagesperso-orange.fr/sebastien.godard

可以选择源代码包或rpm包的方式安装,这里不在讲述安装过程,安装完毕,系统会多出3个命令:iostat、sar和mpstat。然后就可以直接在系统下运行iostat命令了。

iostat使用语法如下:

iostat [ -c | -d ] [ -k ] [ -t ] [ -x [ device ] ] [ interval [ count ] ]

各个选项及参数含义如下:

-c:显示CPU的使用情况。

-d:显示磁盘的使用情况。

-k:每秒以k bytes为单位显示数据。

-t:打印出统计信息开始执行的时间。

-x device:指定要统计的磁盘设备名称,默认为所有的磁盘设备。

interval:指定两次统计间隔的时间;

count:按照“interval”指定的时间间隔统计的次数。

3.sar命令sar命令很强大,是分析系统性能的重要工具之一,通过sar指令,可以全面的获取系统的CPU、运行队列、磁盘I/O、分页(交换区)、内存、CPU中断、网络等性能数据。

sar使用格式为:

sar [options] [g1]  [-o filename] [interval [count] ]

各个选项及参数含义如下:

l options 为命令行选项,sar命令的选项很多,下面只列出常用选项:

Ø -A:显示系统所有资源设备(CPU、内存、磁盘)的运行状况。

Ø -u:显示系统所有CPU在采样时间内的负载状态。

Ø -P:显示当前系统中指定CPU的使用情况。

Ø -d:显示系统所有硬盘设备在采样时间内的使用状况。

Ø -r:显示系统内存在采样时间内的使用状况。

Ø -b:显示缓冲区在采样时间内的使用情况。

Ø -v:显示进程、文件、I节点和锁表状态。

Ø -n:显示网络运行状态。参数后面可跟DEV、EDEV、SOCK和FULL。DEV显示网络接口信息,EDEV显示网络错误的统计数据,SOCK显示套接字信息,FULL显示三个所有的信息。它们可以单独或者一起使用。

Ø -q:显示了运行队列的大小,它与系统当时的平均负载相同。

Ø -R:显示进程在采样时间内的活动情况。

Ø -y:显示终端设备在采样时间内的活动情况。

Ø -w:显示系统交换活动在采样时间内的状态。

l -o filename:表示将命令结果以二进制格式存放在文件中,filename是文件名。

l interval:表示采样间隔时间,是必须有的参数。

l count:表示采样次数,是可选参数,默认值是1。

例如:

要查看系统CPU的整体负载状况,每3秒统计一次,统计5次,可以使用以下组合:

sar –u 3 5

系统的CPU计数是从0开始的,如果要查看第二颗CPU的运行负载,使用下面组合:

sar –P 1 3 5

要查看系统磁盘的读写性能,使用以下组合:

sar -d 3 5

同理,查看系统内存使用情况、网络运行状态,可以分别使用下面命令:

sar -r 5 2

sar -n DEV 5 3

4.  系统性能分析标准

性能调优的主要目的是使系统能够有效的利用各种资源,最大的发挥应用程序和系统之间的性能融合,使应用高效、稳定的运行。但是,衡量系统资源利用率好坏的标准没有一个严格的定义,针对不同的系统和应用也没有一个统一的说法,因此,这里提供的标准其实是一个经验值,表15.1给出了判定系统资源利用状况的一般准则:

表1给出了判定系统资源利用状况的一般准则:

表1

其中:

%user:表示CPU处在用户模式下的时间百分比。

%sys:表示CPU处在系统模式下的时间百分比。

%iowait:表示CPU等待输入输出完成时间的百分比。

swap in:即si,表示虚拟内存的页导入,即从SWAP DISK交换到RAM。

swap out:即so,表示虚拟内存的页导出,即从RAM交换到SWAP DISK。

5. 说在最后

以上我们讲解了三个常用的系统性能分析工具,其实linux下性能分析工具还有很多,例如uptime可以检查CPU的平均负载,free可以查看系统内存的使用状况,ps、top可以配合监控系统的进程运行状态,netstat可以监测网络流量状况等等,这些命令的使用方法在我前面文章已经讲述很多,故不在这里讲解。

系统性能优化是个涉及面广、繁琐、长久的工作,寻找出现性能问题的根源往往是最难的部分,一旦找到出现问题的原因,性能问题也就迎刃而解。因此,解决问题的思路变得非常重要。

例如,linux系统下的一个网站系统,用户反映,网站访问速度很慢,有时无法访问。

针对这个问题,第一步要做的是检测网络,可以通过ping命令检查网站的域名解析是否正常,同时,ping服务器地址的延时是否过大等等,通过这种方式,首先排除网络可能出现的问题;如果网络没有问题,接着进入第二步,对linux系统的内存使用状况进行检查,因为网站响应速度慢,一般跟内存关联比较大,通过free、vmstat等命令判断内存资源是否紧缺,如果内存资源不存在问题,进入第三步,检查系统CPU的负载状况,可以通过sar、vmstat、top等命令的输出综合判断CPU是否存在过载问题,如果CPU没有问题,继续进入第四步,检查系统的磁盘I/O是否存在瓶颈,可以通过iostat、vmstat等命令检查磁盘的读写性能,如果磁盘读写也没有问题,linux系统自身的性能问题基本排除,最后要做的是检查程序本身是否存在问题。通过这样的思路,层层检测,步步排查,性能问题就“无处藏身”,查找出现性能问题的环节也就变得非常简单。

分析linux系统的运行性能,Linux系统下常见性能分析工具的使用相关推荐

  1. Linux系统下常见性能分析工具的使用

    在前面的文章中,我简单介绍了影响linux性能的几个方面以及如何解决这些方面的问题,但是如何才能从系统上发现是某个方面或某几个方面出现问题了呢,这就需要使用linux系统提供的几个常用性能分析工具,下 ...

  2. linux 性能教程,Linux系统下常见性能分析工具的使用

    在前面的文章中,我简单介绍了影响linux性能的几个方面以及如何解决这些方面的问题,但是如何才能从系统上发现是某个方面或某几个方面出现问题了呢,这就需要使用linux系统提供的几个常用性能分析工具,下 ...

  3. Linux学习总结(49)——应当竭力避免在系统中运行的 Linux 命令

    前言 如果你是一个 Linux 新手,在好奇心的驱使下,可能会去尝试从各个渠道获得的命令.以下是 7 个致命的 Linux 命令,轻则使你的数据造成丢失,重则使你的系统造成瘫痪,所以,你应当竭力避免在 ...

  4. linux系统找运行指令,Linux系统常用指令总结

    一,系统的运行级别 0:关机 1:单用户模式(可以找回丢失的密码) 2:多用户状态没有网络服务 3:多用户状态有网络服务 4:系统未使用保留给用户 5:图形界面 6:系统重启 注意:在/etc/ini ...

  5. linux启动设置运行级别,Linux的运行级别和设置开机启动服务的方式

    Linux的运行级别 什么是运行级别呢?简单点来说,运行级别就是操作系统当前正在运行的功能级别.级别是从0到6,具有不同的功能.这些级别定义在/ect/inittab文件中.这个文件是init程序寻找 ...

  6. linux 指定cpu运行线程,linux 线程与CPU绑定

    看到很多程序都是根据CPU个数来创建线程个数,当时很不理解他们之间的关系,请教了项目组的同事后才有了大致了解. 1. 相关系统函数 下面的函数可以通过man命令查询到.SYNOPSIS #define ...

  7. linux关闭后台运行命令,linux后台运行、关闭、查看后台任务常用命令

    一.& 加在一个命令的最后,可以把这个命令放到后台执行,如: [root@bqh-01 ~]# watch -n 3 "sh 1.sh"  #每3s在后台执行一次1.sh脚 ...

  8. linux 七种运行级别,linux 的七个运行级别-通过实例学习 chkconfig 服务的...-linux不能自动关闭rc0.d目录下K开头程序的解决方法_169IT.COM...

    通过实例学习 chkconfig 服务的添加.顺序,感兴趣的朋友可以参考下. chkconfig --level 345 nfs off --add name 这个选项增加一项新的服务,chkconf ...

  9. linux版php运行环境,Linux系统搭建PHP运行环境

    LAMP网站架构是目前国际流行的 Web 框架,该框架包括:Linux 操作系统,Apache 网络服务器,MySQL 数据库,所有组成产品均是开源软件,是国际上成熟的架构框架. 最近我在百度智能云上 ...

最新文章

  1. 让你爽到飞起的【懒人插件AutoScssStruct4Vue】VSCode根据template的标签目录一键生成SCSS/LESS结构,敏捷开发必备插件!!!
  2. 全球首个突破200种语言互译的翻译引擎,百度翻译打破世界沟通壁垒
  3. Gemini 3D双目结构光深度相机在Android平台上深度数据噪点非常多的问题
  4. 【力荐】ABAP常用DEBUG调试代码的八种方式
  5. 外网数据同步到内网方案_数据同步之解决方案
  6. numpy拼接_巧用numpy切分图片
  7. tornado学习笔记day06-应用安全
  8. 技术改变生活 浅谈阿里云混合云的探索与实践
  9. linux运行完脚本 命令失效,linux – Systemd退出bash脚本,执行导致失败的命令,而不是继续...
  10. 从系统集成到虚拟化,IT之路艰难前行...
  11. 烟台蓬莱机场停车费一天多少钱,烟台机场停车哪里便宜
  12. 【预测模型】基于BP神经网络实短时交通流预测matlab代码
  13. linux终端清除命令,清除Linux终端的6个命令
  14. HDU 6232 2017 哈尔滨 Confliction
  15. Folium库使用心得(二)
  16. 网站架构设计实战项目一
  17. 计算机前端总线频率,前端总线频率
  18. ClickOnce 通过URL传递参数
  19. 做软件测试工程师如何突破月薪20k?
  20. 《江山美人》:程小东的利落与编剧群的故步自封

热门文章

  1. 一会儿花雨停了的飞鸽传书
  2. TurboIM即时通讯正式发布
  3. 程序员的未来在哪里?赶紧看看!!
  4. 难学的十大编程语言,C++位居第二,它才是第一名!
  5. C++高级编程篇-如何编写高效的C++篇
  6. 北妈每日一题:如何拿到 金条、蛋糕和大钻石
  7. 2019北妈和你:活着就意味必须要做点什么,请好好努力
  8. 广州程序员辞职创业卖菠萝油,放弃30万年薪
  9. web前端岗位经典面试题,面试前必读!
  10. docker php gd png.h,docker php 容器安装GD库