RHCA-RH442 linux 性能优化 笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RHCA-RH442总结

UNIT2 COLLECTING,GRAPHING AND INTERPRETING DATA

Units and Unit Conversions

How much is how much?

international System of Units (SI)prefixes are decimal:

kilo-(K)=10^3

mega-(M)=10^6

giga-(G)=10^9

tera-(T)=10^12

peta-(P)=10^15

exa-(E)=10^18

The International Electrotechnical Commission(IEC)prefixes are binary:

kibi-(Ki)=2^10

mebi-(Mi)=2^20

gibi-(Gi)=2^30

tebi-(Ti)=2^40

pebi-(Pi)=2^50

exbi-(Ei)=2^60

Profiling Tools

vmstat:虚拟内存统计

语法:vmstat [-V] [-n] [delay [count]]

-V 表示打印出版本信息

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

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

count 表示按照delay指定的时间间隔统计的次数,默认为1

procs:

r:运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,表示CPU不足,需增加CPU

b:处于不可打扰睡眠中的进程数(等待资源的进程数),比如正在等待I/O 或内存交换。

memory:

swpd:表示切换到内存交换区的内存大小。如果swpd的值不为0或比较大,只要si,so的值长期为0,一般不会影响系统性能。(KB)

free:当前空闲的物理内存。(KB)

buff:用作buffers cache的内存数量,一般对块设备的读写才需要缓冲。

cache:用作page cached的内存数量,一般作为文件系统进行缓存,频繁访问的文件都会被缓存。如果cache值较大,说明缓存的文件数较多,如果此时io 中的bi比较小,说明文件系统效率比较好。

swap

si:表示由磁盘调入内存,也就是由内存进入内存交换区的内存大小。

so:表示有内存调入磁盘,也就是由内存交换区进入内存的内存大小。

一般情况下,si,so的值都为0,如果si,so的值长期不为0,则表示系统内存不足。

io

bi:每秒从块设备读入内存的总量(kb/s)

bo:每秒从写入块设备的内存总量(kb/s)

system

in:表示在某一时间间隔内观测到的每秒设备中断数。

cs:表示每秒产生的上下文切换次数。

以上这两个值越大,由内存消耗的CPU时间越多

cpu

us:表示用户进程消耗的CPU时间百分比。us值比较高,说明用户进程消耗CPU时间多,如果长期大于50%,就需要考虑优化程序或算法。

sy:表示内核进程消耗的CPU时间百分比。sy的值越高,说明内核消耗的CPU资源很多

id:表示CPU处于空闲状态的时间百分比

wa:表示I/O等待所占用的CPU时间百分比。wa值越高,说明I/O等待越严重,wa的参考值为20%,如果超过20%,说明I/O等待严重,引起I/O等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或磁盘控制器的带宽瓶颈造成的。

综上,对CPU的评估中,需重点注意procs中的r值和cpu中的us,sy和id值。

sar:The System Activity Reporter

sar命令是多用途分析工具,是sysstat包的一部分,sar可以从计划任务收集数据。sar计划任务安装在/etc/cron.d/sysstat,运行/usr/lib64/sa/sadc和/usr/lib64/sa/sa2两个脚本。sa1脚本使用/usr/lib64/sa/sadc收集数据,数据存储在/var/log/sa/sadd,dd 为两位数字。

sa2:是将当日二进制日志文件中所有的数据转储到文本文件(sar)的另一个Shell 脚本,然后它将清除七天之前的所有日志文件。参数-A指定了从二进制文件中提取哪些数据转储到文本文件中。转储的文件存放在/var/log/sa/目录下,命名为sar${DATE}。

使用sar命令时设置环境变量$LANG提供一天24小时的时间制。

#vim ~/.bashrc

alias sar=’LANG=C sar’

#source ~/.bashrc

sar命令语法:sar [options] [-o filename] [internal [count]]

options

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

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

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

-d 显示所有硬盘设备在采样时间内的使用情况

-r 显示系统内存在采样时间内的使用情况

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

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

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

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

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

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

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

-o filename 表示将命令结果以二进制格式存放在文件中

internal 表示采样间隔时间

count 表示采样次数(可选参数)

uptime

输出信息依次为:系统现在时间,系统上次开机到现在运行了多长时间,系统目前有多少登录用户,系统在1分钟,5分钟,15分钟的平均负载。

负载平均值一般不能大于系统cpu的个数,如果系统有8个cpu,负载平均值长期大于8,说明cpu繁忙,负载过高,可能会影响系统性能,如果负载值小于cpu 个数,则表示cpu还有空闲的时间片。

Plotting Data

Plotting Data with gnuplot

使cpu空转

#dd if=/dev/zero of=/dev/null &

#dd if=/dev/zero of=/dev/null &

#dd if=/dev/zero of=/dev/null &

#uptime | awk ‘{print $1,$(NF-2),$(NF-1),$NF}’ > /tmp/uptime

#sleep 60

#uptime | awk ‘{print $1,$(NF-2),$(NF-1),$NF}’ >> /tmp/uptime

#killall dd

#vim /tmp/uptime.gnuplot

set xdata time

set timefmt ‘%H:%M:%S’

set xtics rotate

set xlabel ‘Time’

set ylabel ‘15-minute load average’

plot ‘/tmp/uptime’ using 1:2 title ‘1-min’with lines,\

‘/tmp/uptime’ using 1;3 title ’5-min‘with lines,\

‘/tmp/uptime’ using 1:4 title ‘15-min’ with lines

#yum install -y gnuplot

#gnuplot /tmp/uptime.gnuplot

#gnuplot -persist /tmp/uptime.gnuplot

Plotting Data with RRDtool

rrdtool采用环形数据库。

#yum install -y rrdtool

相关文档
最新文档