Linux系统性能分析(一)

1、性能分析的目的

1)找出系统性能瓶颈(硬件,软件)

2)提供性能优化方案(升级硬件,改进系统结构)

3)达到合理的硬件和软件配置

4)使系统资源使用达到最大的平衡。

2、影响性能的因素

1)CPU

2)内存

3)硬盘(1、raid技术的使用,raid0,raid1,raid0+1,raid5。

2、小文件读写瓶颈是磁盘的寻址(tps),大文件读写的性能瓶颈是带宽

3、Linux可以利用空闲内存作文件系统访问的cache,因此系统内存越大存储系统的性能越好)

4)网络

raid技术概述

raid0:所有磁盘完全地并行读写,所以读写性能最高(有几块硬盘,读写性能就提高几倍)。但是完全没有冗余,所以容错最差,任意一块磁盘损坏,则数据完全丢失。

raid1:即镜像技术,镜像写,并行读,可靠性最高。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。

raid5:是一种储存性能、数据安全和存储成本兼顾的存储方案。raid5至少需要三颗硬盘,riad5不是对储存数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成raid5的各个硬盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。

raid0+1:先条带,再镜像。磁盘分成两组,两组分别先做条带raid0,然后在raid0的基础上做两组raid0再镜像,从而得到riad0+1。

3、性能分析步骤

1)对资源使用状况进行长期的监控和数据采集

2)使用常见的性能分析工具(vmstat iostat free top iftop)

3) 经验积累

1、应用程序设计的缺陷和数据库查询是滥用最有可能导致性能问题

2、性能瓶颈可能是因为程序差、内存不足、磁盘瓶颈,但最终表现出的结果就是CPU耗尽、系统负载高,响应迟缓

3、物理内存不够时会使用交换内存,会带来磁盘IO和CPU的开销大

4、可能是造成CPU瓶颈的问题,频繁执行程序,数据库查询大量的where子句、order by排序

5、可能造成内存瓶颈的问题,高并发用户访问、系统进程多、java内存泄露

6、可能造成磁盘IO瓶颈问题,生成cache文件,数据库频繁更新,或者查询大表

4、vmstat详细介绍

vmstat是一个很全面的性能分析工具,可能观察到系统的进程状态、内存使用、虚拟内存使用、磁盘的IO、中断、上下文切换、cpu使用等。

[[email protected]~]# vmstat 1 5

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

0  0 5672332 152760 205424 2271256   10   10   129    14    0    0  1  0 99  0  0

0  0 5672332 166516 205424 2257232    0    0  1792     0 1089 1020  0  0 99  0  0

0  0 5672332 163788 205424 2259540    0    0  2304     0 1152 1035  0  1 99  0  0

0  0 5672332 161060 205424 2262232    0    0  2816    60 1400 1059  0  0 99  0  0

0  0 5672332 159820 205424 2264532    0    0  2176     0 1719 1034  0  0 99  0  0

1)procs

1、r列表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,就说明CPU资源不足,考虑增加CPU。

2、b列表示在等待资源的进程数,比如正在等待IO或者内存交换等。

2)memory

1、swpd列表示切换到内存交换区的内存数量,如果swpd的值不为0或者比较大,而且si、so的值长期为0,那么这种情况不用担心,不会影响系统性能。

2、free列表示当前空闲的物理内存数量。

3、buff列表示buffers的内存数据,一般对块设备的读写才需要缓冲。

4、cache列表示page cached的内存数量,一般作文件系统的cached,频繁访问文件都会被cached。如果cached值比较大,就说明cache文件数较多。如果此时IO中的bi比较小,就说明文件系统效率比较好。

3)swap

1、si列表示由磁盘调入内存,也就是内存进入内存交换区的数量。

2、so列表示由内存调入磁盘,也就是内存交换区进入内存的数量。

3、一般情况下,si、so的值都是0,如果si、so值长期不为0,则表示系统内存不足,需要考虑增加内存。

4)IO

1、bi列表示从块设备读入的数据总量

2、bo列表示写入到块设备的数据总量(这里设置bi bo参考值为1000,如果超过1000,而且wa值比较大,则表示系统磁盘IO性能瓶颈)

5)system

1、in列表示在某一时间间隔观察到的每秒设备中断数。

2、cs列表示每秒产生的上下文切换数。(上面这两个值越大,会看到内核消耗的CPU的时间就越多。

6)CPU

1、us列显示了用户进程消耗CPU时间百分比。us的值比较高时,说明用户进程消耗的CPU时间多,如果长期大于50%,需要考虑优化程序。

2、sy列显示了内核进程消耗CPU时间百分比。sy的值比较高时,就说明内核消耗的CPU时间多,如果us+syf超过80%,就说明CPu的资源存在不足。

3、id列显示了CPU处于空闲状态的时间百分比。

4、wa列表示IO等待所占的CPU时间百分比。wa值越高,说明IO等待越严重。如果wa值超过20%,说明IO等待严重。

5、st列一般不关注,虚拟机占用的时间百分比。

时间: 2024-12-14 20:55:07

Linux系统性能分析(一)的相关文章

linux 系统性能分析(top命令)及更准确解读内存的占用率(free -m 命令)

一.系统性能分析(top命令) top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,默认5秒刷新一下进程列表,所以类似于 Windows 的任务管理器. 系统整体当下的统计信息 top命令显示的前五行是系统整体的统计信息. 第一行是任务队列信息,同uptime命令的执行结果.eg. top  -  15:09:51  up  17  days  ,  3:38  ,  4  users  ,  load  average  :  1.09  ,  3.39

Linux 系统性能分析工具sar一

sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况.磁盘I/O.CPU效率.内存使用状况.进程活动及IPC有关的活动等.本文主要以CentOS 6.3 x64系统为例,介绍sar命令. sar命令常用格式 sar [options] [-A] [-o file] t [n] 其中: t为采样间隔,n为采样次数,默认值是1: -o file表示将命

Linux系统性能分析

前言 性能调优的主要目的是使系统能够有效地利用各种资源,最大可能地发挥应用程序和系统之间的性能融合,使应用高效.稳定的运行.但是,衡量系统资源利用率的好坏的标准没有一个严格的定义,针对不同的系统和应用也没有一个统一的说法. 系统性能我们比较关注:内存,磁盘,CPU,系统load 一.系统负载load: 1.查看系统负载的方法: top.uptime 2.系统负载分析 top - 06:43:59 up 180 days,  6:41,  2 users,  load average: 0.65,

Linux 系统性能分析工具图解读

最近看了 Brendan Gregg 大神著名的 Linux Performance Observability Tools,这么好的资料不好好学习一下实在是浪费了,又找到了大神的ppt 和 演讲(需爬墙),于是把相关的命令和概念连预习,学习,复习走了一遍. 首先学习的是大神提出的 Basic Tool 有如下几个: uptime top (htop) mpstat iostat vmstat free ping nicstat dstat uptime uptime 比较重要的能显示当前系统的

【转】Linux系统性能分析命令

作为一名linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行,但是由于硬件问题.软件问题.网络环境等的复杂性和多变性,导致对系统的优化变得异常复杂,如何定位性能问题出在哪个方面,是性能优化的一大难题, 从系统入手,阐述由于系统软.硬件配置不当可能造成的性能问题,并且探讨检测系统故障和优化性能的一般方法和流程. 一.CPU性能评估 Cpu是影响Linux性能的主要因素之一,下面先介绍几个查看CPU性能的命令.1.1 vmstat命令该命令可以显示关于系统各种资源之间相关

sysstat linux系统性能分析

Sysstat的工具集sar. iostat.mpstat.sadf.sar.sadc * iostat 工具提供CPU使用率及硬盘吞吐效率的数据:* mpstat 工具提供单个处理器或多个处理器相关数据:* sar 工具负责收集.报告并存储系统活跃的信息:* sa1 工具负责收集并存储每天系统动态信息到一个二进制的文件中.它是通过计划任务工具cron来运行,是为sadc所设计的程序前端程序:* sa2 工具负责把每天的系统活跃性息写入总结性的报告中.它是为sar所设计的前端 ,要通过cron来

Linux系统性能分析工具 sar--系统活动情况报告

1.结论: sar 命令是linux系统上,分析系统性能的常用工具,可以查看cpu.内存.磁盘IO.文件读写.系统调用, 2.sar会有一个定时任务,定期记录当前系统信息到  /var/log/sa/xx, 默认是每隔10分钟记录一次,当sar命令后面不指定间隔和次数时,就是显示历史数据. sar也可以指定 实时的统计间隔和统计次数. 3.sar -P 或者 mpstat 可以显示多核cpu上当前的统计数据. 参考: http://m.codesky.net/article/mip/201705

linux系统性能分析工具并定位到具体进程

[涉及工具] top  综合,偏CPU和memory dstat 综合, 偏磁盘 pidstat iostat 磁盘io 全局 iotop 磁盘io 精确到进程 iftop 网络,事实刷新 ss 取代netstat 并且速度更快 [查看cpu状态-设计涉及指标] 1 cpu使用率: 用户 系统 2 cpu累计使用时长 3 中断 上下文切换等(使用不是很多) CPU查看工具 top dstat top 选项 -bn1 -c  查看全命令 top -bn1c 一次记录就结束并打印command的全命

常用系统性能分析工具

Linux sar命令: sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况.磁盘I/O.CPU效率.内存使用状况.进程活动及IPC有关的活动等. [root ~]$ sar --help 用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ] Options are: [ -A ] [ -b ] [ -B ] [ -