分享
 
 
 

ORACLE性能诊断―学习statspack笔记(四)[扩展statspack收集服务

王朝oracle·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

说明:由于STATSPACK并不能获取全面分析性能问题所需要的所有信息,所以需要扩展其收集服务器的统计信息。(本文环境REDHAT

Linux7.2)

VMSTAT介绍

通过STATSPACK收集服务器信息,主要通过收集VMSTAT的信息来展现服务器状况。VMSTAT工具是最常见的UNIX监控工具,可以展现给定时间间隔的服务器的状态值。

一般VMSTAT工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。如:

[oracle@brucelau oracle]$ vmstat 1 2

procs

memory

swap

io

system

CPU

r

b

w

swpd

free

buff

cache

si

so

bi

bo

in

cs

us

sy

id

1

0

0

0 271844 186052 255852

0

0

2

6

102

10

0

0 100

0

0

0

0 271844 186052 255852

0

0

0

0

104

11

0

0 100

(注:目前系统几乎空闲,并且不同操作系统VMSTAT输出内容有所不同)

目前说来,对于服务器监控有用处的度量主要有:

r(运行队列)

pi(页导入)

us(用户CPU)

sy(系统CPU)

id(空闲)

通过VMSTAT识别CPU瓶颈

r(运行队列)展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了。

获得CPU个数的命令(LINUX环境):

cat /proc/cpuinfo|grep processor|wc ?l

当r值超过了CPU个数,就会出现CPU瓶颈,解决办法大体几种:

1.

最简单的就是增加CPU个数

2.

通过调整任务执行时间,如大任务放到系统不繁忙的情况下进行执行,进尔平衡系统任务

3.

调整已有任务的优先级

通过VMSTAT识别CPU满负荷

首先需要声明一点的是,vmstat中CPU的度量是百分比的。当us+sy的值接近100的时候,表示CPU正在接近满负荷工作。但要注意的是,CPU满负荷工作并不能说明什么,UNIX总是试图要CPU尽可能的繁忙,使得任务的吞吐量最大化。唯一能够确定CPU瓶颈的还是r(运行队列)的值。

通过VMSTAT识别RAM瓶颈

数据库服务器都只有有限的RAM,出现内存争用现象是Oracle的常见问题。

首先察看RAM的数量,命令如下(LINUX环境):

[root@brucelau root]#free

total

used

free

shared

buffers

cached

Mem:

1027348

873312

154036

185736

187496

293964

-/+ buffers/cache:

391852

635496

Swap:

2096440

0

2096440

当然可以使用top等其他命令来显示RAM。

当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,这样会出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,但页导入操作就表明了服务器需要更多的内存了,页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。

解决的办法有几种:

1.

最简单的,加大RAM

2.

改小SGA,使得对RAM需求减少

3.

减少RAM的需求(如:减少PGA)

我们基本的了解了VMSTAT工作,下面是STATSPACK通过vmstat统计收集服务器性能数据。

STATSPACK通过vmstat收集服务器信息

首先在perfstat用户下建一个存储服务器信息的表:如

建表:

create table stats$vmstat

(

start_date

date,

--系统时间

duration

date,

--时间间隔

server_name

varchar2(20), --服务器名称

runque_waits

number, --运行队列数据

page_in

number, --页导入数据

page_out

number, --页导出数据

user_cpu

number, --用户cpu数据

system_cpu

number, --系统cpu数据

idle_cpu

number, --空闲cpu数据

wait_cpu

number ?等待cpu数据(只是aix存在)

)

tablespace perfstat;

然后,通过UNIX/LINUX的shell变成,利用vmstat的结果来获取相应的服务器信息,并且存放到表中。

关于shell编程,可能已经超出本文内容,并且诚实的说,本人并没有shell编程的经验,希望那位兄台可以完成shell编程的内容,并劳驾mail给我共享一下,谢了先!!

附:

LINUX上VMSTAT的帮助手册:(man vmstat的结果)

VMSTAT(8)

Linux Administrator's Manual

VMSTAT(8)

NAME

vmstat - Report virtual memory statistics

SYNOPSIS

vmstat [-n] [delay [ count]]

vmstat[-V]

DESCRIPTION

vmstat reports information about processes, memory, paging, block IO, traps, and CPU activity.

The

first report produced gives averages since the last reboot.

Additional reports give information on a sam-

pling period of length delay.

The process and memory reports are instantaneous in either case.

Options

The -n switch

causes the header to be displayed only once rather than periodically.

delay is the delay between updates in seconds.

If no delay is specified, only one report is printed

with

the

average values since boot.

count is the number of updates.

If no count is specified and delay is defined, count defaults to infinity.

The -V switch results in displaying version information.

FIELD DESCRIPTIONS

Procs

r: The number of processes waiting for run time.

b: The number of processes in uninterruptable sleep.

w: The number of processes swapped out but otherwise runnable.

This

field is calculated, but Linux never desperation swaps.

Memory

swpd: the amount of virtual memory used (kB).

free: the amount of idle memory (kB).

buff: the amount of memory used as buffers (kB).

Swap

si: Amount of memory swapped in from disk (kB/s).

so: Amount of memory swapped to disk (kB/s).

IO

bi: Blocks sent to a block device (blocks/s).

bo: Blocks received from a block device (blocks/s).

System

in: The number of interrupts per second, including the clock.

cs: The number of context switches per second.

:

CPU

These are percentages of total CPU time.

us: user time

sy: system time

id: idle time

NOTES

vmstat does not require special permissions.

These

reports

are intended to help identify system bottlenecks.

Linux vmstat does not count itself as a run-

ning process.

All linux blocks are currently 1k, except for CD-ROM blocks which are 2k.

FILES

/proc/meminfo

/proc/stat

/proc/*/stat

SEE ALSO

ps(1), top(1), free(1)

BUGS

Does not tabulate the block io per device or count the number of system calls.

AUTHOR

Written by Henry Ware <al172@yfn.ysu.edu.

Throatwobbler Ginkgo Labs 27 July 1994

VMSTAT(8)

(待续)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有