linux性能分析工具以及命令(Linux系统性能分析命令)
目录:
第一章:Linux查看系统信息命令
1.查看服务器的当前操作系统相关信息
2.查看目录的磁盘使用空间
3.查看当前系统最大的可用空间及使用详情
4.查看系统分区情况
5. 查看端口运行的程序
6. 查看进程运行的程序
7. 查看程序运行详情
第二章:分析系统性能的命令
1.查看服务器内存的命令
2.查看服务器的cpu使用命令
3.设备使用情况监控
4.查看服务器的磁盘占用
分析系统性能的命令1.查看服务器内存的命令:
cat /proc/meminfo
MemTotal: 所有可用RAM大小(即物理内存减去一些预留位和内核的二进制代码大小)
MemFree: LowFree与HighFree的总和,被系统留着未使用的内存
Buffers: 用来给文件做缓冲大小
Cached: 被高速缓冲存储器(cache memory)用的内存的大小(等于 diskcache minus SwapCache ).
SwapTotal: 交换空间的总大小
SwapFree: 未被使用交换空间的大小
top命令
第四行:内存状态
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命令
对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。所以从应用程序的角度来说,可用内存=系统free memory buffers cached。
2.查看服务器的cpu使用命令
sar -u 1 1
输出项说明:
第一行的最后表示此服务器的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命令
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
其中:
参数-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
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
这里有两个网卡:eth0和lo
查看eth0的网络占用比:若rxpck/s>txpck/s,则使用rxpck/128 =25%
若rxpck<txpck,则使用txpck/128
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com