RHCA-RH442 linux 性能优化 笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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