linux性能分析工具以及命令(Linux系统性能分析命令)

目录:

第一章:Linux查看系统信息命令

1.查看服务器的当前操作系统相关信息

2.查看目录的磁盘使用空间

3.查看当前系统最大的可用空间及使用详情

4.查看系统分区情况

5. 查看端口运行的程序

6. 查看进程运行的程序

7. 查看程序运行详情

第二章:分析系统性能的命令

1.查看服务器内存的命令

2.查看服务器的cpu使用命令

3.设备使用情况监控

4.查看服务器的磁盘占用

分析系统性能的命令

1.查看服务器内存的命令:

cat /proc/meminfo

linux性能分析工具以及命令(Linux系统性能分析命令)(1)

MemTotal: 所有可用RAM大小(即物理内存减去一些预留位和内核的二进制代码大小)

MemFree: LowFree与HighFree的总和,被系统留着未使用的内存

Buffers: 用来给文件做缓冲大小

Cached: 被高速缓冲存储器(cache memory)用的内存的大小(等于 diskcache minus SwapCache ).

SwapTotal: 交换空间的总大小

SwapFree: 未被使用交换空间的大小

top命令

linux性能分析工具以及命令(Linux系统性能分析命令)(2)

第四行:内存状态

16229748k total — 物理内存总量(16GB)12096348k used — 使用中的内存总量(12GB)161144k free — 空闲内存总量(160M)3972256k buffers — 缓存的内存量 (3879M)

第五行:swap交换分区

8257532k total — 交换区总量(8GB)532324k used — 使用的交换区总量(519M)7725208k free — 空闲交换区总量(7GB)3485388k cached — 实际可用交换分区总量(3.4GB)

free命令

linux性能分析工具以及命令(Linux系统性能分析命令)(3)

对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。所以从应用程序的角度来说,可用内存=系统free memory buffers cached。

2.查看服务器的cpu使用命令

sar -u 1 1

linux性能分析工具以及命令(Linux系统性能分析命令)(4)

输出项说明:

第一行的最后表示此服务器的cpu为4核

CPU:all 表示统计信息为所有 CPU 的平均值。

%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。

%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。

%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。

%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。(查看cpu当前性能主要是看这个参数)

%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。

%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。

1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈

2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量

3. 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。

Top命令

linux性能分析工具以及命令(Linux系统性能分析命令)(5)

Cpu(s):表示这一行显示CPU总体信息 27.0%us:用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间。 3.1%sy:内核占用CPU时间百分比 0.0%ni:改变过优先级的进程占用CPU的百分比 61.5%id:空闲CPU时间百分比 8.4%wa:等待I/O的CPU时间百分比 0.0%hi:CPU硬中断时间百分比 0.0%si:CPU软中断时间百分比

load average 反应的是cpu一段时间内的使用情况 第一个参数是1分钟内的cpu使用平均值 第二个参数是5分钟内的cpu使用平均值 第三个参数是15分钟内的使用平均值;衡量标准是不能超过逻辑cpu的总数;超过则表示性能不加。

3.设备使用情况监控

例如,每10秒采样一次,连续采样3次,报告设备使用情况,需键入如下命令:

sar -d 10 3 –p

linux性能分析工具以及命令(Linux系统性能分析命令)(6)

其中:

参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0

tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.

rd_sec/s:每秒读扇区的次数.

wr_sec/s:每秒写扇区的次数.

avgrq-sz:平均每次设备I/O操作的数据大小(扇区).

avgqu-sz:磁盘请求队列的平均长度.

await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).

svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.

%util:I/O请求占CPU的百分比,比率越大,说明越饱和.

1. avgqu-sz 的值较低时,设备的利用率较高。

2. 当%util的值接近 1% 时,表示设备带宽已经占满。

4.查看服务器的磁盘占用

命令:iostat -dmx 1 2 -d sda

linux性能分析工具以及命令(Linux系统性能分析命令)(7)

rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并

wrqm/s: 每秒对该设备的写请求被合并次数

r/s: 每秒完成的读次数

w/s: 每秒完成的写次数

rkB/s: 每秒读数据量(kB为单位)

wkB/s: 每秒写数据量(kB为单位)

avgrq-sz:平均每次IO操作的数据量(扇区数为单位)

avgqu-sz: 平均等待处理的IO请求队列长度

await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位),这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。

svctm: 平均每次IO请求的处理时间(毫秒为单位),如果 svctm 比较接近 await,说明I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator算法,优化应用,或者升级 CPU。

%util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率,该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

查看服务器的网络占用比命令

sar -n DEV 1 1

linux性能分析工具以及命令(Linux系统性能分析命令)(8)

这里有两个网卡:eth0和lo

查看eth0的网络占用比:若rxpck/s>txpck/s,则使用rxpck/128 =25%

若rxpck<txpck,则使用txpck/128

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页