ディスク占有量は,パフォーマンスデータを収集するレコード数によって変化します。
PFM - Agent for Oracleのディスク占有量の見積もりについて説明します。
(1) システム全体のディスク占有量
システム全体のディスク占有量の見積もり値をOSごとに記載します。
(a) Windowsの場合
PFM - Agent for Oracleのディスク占有量は,次のデータのファイルサイズによって変化します。
上記を踏まえ,Windowsの場合の,システム全体のディスク占有量の見積もり値を次の表に示します。
表A-5 システム全体のディスク占有量(Windowsの場合)
PFM - Agent for Oracleの状態 | ディスク占有量(単位:メガバイト) |
---|---|
Windows Server 2003,Windows Server 2008 | |
インストール時※1 | 10 |
初期状態での運用※2 | 110 |
運用時 | a + b |
(b) UNIXの場合
PFM - Agent for Oracleのディスク占有量は,次のデータのファイルサイズによって変化します。
上記を踏まえ,UNIXの場合の,システム全体のディスク占有量の見積もり値を次の表に示します。
表A-6 システム全体のディスク占有量(UNIXの場合)
PFM - Agent for Oracleの状態 | ディスク占有量(単位:メガバイト) | |||
---|---|---|---|---|
HP-UX | Solaris | AIX | Linux (x86),Linux (x64) | |
インストール時※1 | 40 | 20 | 40 | 20 |
初期状態での運用※2 | 140 | 120 | 140 | 120 |
運用時 | a + b | a + b | a + b | a + b |
(2) Storeデータベース(Storeバージョン1.0)のディスク占有量
(a) 見積もり式
Storeデータベースでは,各レコードは,レコードタイプごとに一つのファイルに格納されます。Storeデータベース(Storeバージョン1.0)のディスク占有量について,レコードタイプごとに次の表に示します。
表A-7 レコードタイプごとのStoreデータベースのディスク占有量
レコードタイプ | ディスク占有量の見積もり式(単位:バイト) |
---|---|
PIレコードタイプ | X1+.....+Xa+3,500*a |
PDレコードタイプ | Y1+.....+Yb+700*b |
表A-8 データの種類と保存レコード数
データの種類 | 保存期間 | 保存レコード数 (収集間隔が1分の場合) |
---|---|---|
分単位 | 1日 | 1,440 |
時単位 | 7日 | 168 |
日単位 | 1年 | 366 |
週単位 | 1年 | 52 |
月単位 | 1年 | 12 |
年単位 | 制限なし | (収集年数)*1 |
表A-9 レコードのインスタンス数の算出方法
項番 | レコード | インスタンス数取得SQL文,または算出方法 |
---|---|---|
1 | PI | インスタンス数は1です |
2 | PI_PIBC | SELECT count(*) FROM v$waitstat |
3 | PI_PICS | インスタンス数は1です |
4 | PI_PIDB | インスタンス数は1です |
5 | PI_PIDD | SELECT count(*) FROM v$rowcache |
6 | PI_PIDF | 下記の2種のSQL文から求められる結果の加算値です
|
7 | PI_PIDS | SELECT count(*) FROM v$dispatcher, v$process WHERE addr=paddr |
8 | PI_PIEV | SELECT count(*) FROM v$session_event a, v$session b WHERE a.sid=b.sid AND time_waited>=0 |
9 | PI_PIGC | インスタンス数は1です |
10 | PI_PIIO | SELECT count(*) FROM v$sess_io a, v$session b, v$process c WHERE a.sid=b.sid AND b.paddr=c.addr |
11 | PI_PILA | SELECT count(*) FROM v$latchholder a, v$session b, v$latch c, v$latchname d, v$process e WHERE c.latch#=d.latch# AND a.laddr(+)=c.addr AND a.pid=e.pid(+) AND e.addr=b.paddr(+) |
12 | PI_PILC | SELECT count(*) FROM v$librarycache |
13 | PI_PILO | SELECT /*+ ORDERED */ count(*) FROM v$lock a, v$session b WHERE a.sid=b.sid AND a.block >= 0 |
14 | PI_PIMT | インスタンス数は1です |
15 | PI_PIPL | SELECT count(*) FROM v$lock_activity |
16 | PI_PIPP※1 | インスタンス数は0です |
17 | PI_PIPQ | SELECT count(*) FROM v$pq_slave |
18 | PI_PIRS | SELECT count(*) FROM v$rollstat a, v$rollname b, sys.dba_rollback_segs c WHERE a.usn=b.usn AND c.segment_name=b.name |
19 | PI_PIS2 | SELECT count(*) FROM (SELECT DISTINCT sid FROM v$sesstat a, v$statname b WHERE a.statistic#=b.statistic#) |
20 | PI_PISE | SELECT count(*) FROM v$system_event |
21 | PI_PISH | SELECT count(*) FROM v$shared_server a, v$process b WHERE a.paddr=b.addr |
22 | PI_PISR | SELECT count(*) FROM v$sort_segment |
23 | PI_PIST | SELECT count(*) FROM v$sysstat |
24 | PI_PITR | SELECT COUNT(*) FROM v$transaction a, v$session b WHERE RAWTOHEX(ses_addr)=RAWTOHEX(saddr) |
25 | PI_PITS | SELECT count(*) FROM sys.dba_tablespaces |
26 | PI_PMDB | インスタンス数は1です |
27 | PI_PMDF | 下記の2種のSQL文から求められる結果の加算値です
|
28 | PI_PMTS | SELECT count(*) FROM sys.dba_tablespaces |
29 | PD | インスタンス数は1です |
30 | PD_PCI | インスタンス数は1です |
31 | PD_PCTS | SELECT count(*) FROM sys.dba_tablespaces |
32 | PD_PDAS | インスタンス数は1です |
33 | PD_PDBA | SELECT count(*) FROM v$backup_async_io |
34 | PD_PDBC | SELECT count(*) FROM v$waitstat |
35 | PD_PDBP | SELECT count(*) FROM v$buffer_pool a, v$buffer_pool_statistics b WHERE a.id=b.id |
36 | PD_PDBS | SELECT count(*) FROM v$backup_sync_io |
37 | PD_PDC | SELECT count(*) FROM v$sqlarea a, sys.audit_actions b WHERE a.command_type=b.action |
38 | PD_PDCF | SELECT count(*) FROM v$controlfile |
39 | PD_PDCI | SELECT count(*) FROM v$circuit a, v$session b, v$process c, v$process d, v$process e WHERE a.saddr=b.saddr AND a.server=c.addr(+) AND a.dispatcher=d.addr(+) AND a.waiter=e.addr(+) |
40 | PD_PDCS | インスタンス数は1です |
41 | PD_PDDB | インスタンス数は1です |
42 | PD_PDDD | SELECT count(*) FROM v$rowcache |
43 | PD_PDDF | 下記のすべてのSQL文から求められる結果の合算値です
|
44 | PD_PDDL※1 | インスタンス数は0です |
45 | PD_PDDO | SELECT count(*) FROM v$db_object_cache |
46 | PD_PDDS | SELECT count(*) FROM v$dispatcher, v$process WHERE addr=paddr |
47 | PD_PDEL | PD_PDELレコード収集間隔内にOracleアラートログに対して書き込まれた以下のメッセージの件数。 "DBA-", "EXP-", "IMP-", "LCC-", "OER-", "ORA-", "PCC-", "PLS-", "RTL-", "TNS-" PD_PDELレコードの収集間隔内で,Oracleアラートログに書き込まれる最大値をインスタンス数としてください。 Oracleアラートログは,以下のSQL文で取得できるパスに存在する "alert_<Oracle_SID>.log" ファイルです。
|
48 | PD_PDES※3 | SELECT count(*) FROM v$sqlarea, sys.user$ WHERE ( (disk_reads/decode(executions,0,1,executions) > 1000 OR buffer_gets/decode(executions,0,1,executions) > 10000) AND (parsing_user_id = user#) ) |
49 | PD_PDEV | SELECT count(*) FROM v$session_event a, v$session b WHERE a.sid=b.sid AND time_waited>=0 |
50 | PD_PDGC | インスタンス数は1です |
51 | PD_PDI | インスタンス数は1です |
52 | PD_PDIA | インスタンス数は1です |
53 | PD_PDLA | SELECT count(*) FROM v$latchholder a, v$session b, v$latch c, v$latchname d, v$process e WHERE c.latch#=d.latch# AND a.laddr(+)=c.addr AND a.pid=e.pid(+) AND e.addr=b.paddr(+) |
54 | PD_PDLC | SELECT count(*) FROM v$librarycache |
55 | PD_PDLO | SELECT /*+ ORDERED */ count(*) FROM v$lock a, v$session b WHERE a.sid=b.sid AND a.block >= 0 |
56 | PD_PDLS | インスタンス数は1です |
57 | PD_PDLW | SELECT count(*) FROM dba_waiters a, v$session b, v$session c WHERE a.holding_session=b.sid AND a.waiting_session=c.sid |
58 | PD_PDMT | インスタンス数は1です |
59 | PD_PDNH※1 | インスタンス数は0です |
60 | PD_PDNL | インスタンス数は1です |
61 | PD_PDO | SELECT count(*) FROM v$option |
62 | PD_PDOC | SELECT count(*) FROM v$open_cursor a, v$session b WHERE a.sid=b.sid |
63 | PD_PDOP | SELECT count(*) FROM v$process |
64 | PD_PDP | SELECT count(*) FROM v$parameter |
65 | PD_PDPQ | SELECT count(*) FROM v$pq_slave |
66 | PD_PDPS | SELECT count(*) FROM v$pq_sysstat |
67 | PD_PDQU | SELECT count(*) FROM v$queue, v$process WHERE addr(+)=paddr |
68 | PD_PDRL | SELECT count(*) FROM v$resource_limit |
69 | PD_PDRS | SELECT count(*) FROM v$rollstat a, v$rollname b, sys.dba_rollback_segs c WHERE a.usn=b.usn AND c.segment_name=b.name |
70 | PD_PDS | SELECT count(*) FROM v$session a, v$process b WHERE a.paddr=b.addr |
71 | PD_PDS2 | SELECT count(*) FROM (SELECT DISTINCT sid FROM v$sesstat a, v$statname b WHERE a.statistic#=b.statistic#) |
72 | PD_PDS3 | インスタンス数は1です |
73 | PD_PDSE | SELECT count(*) FROM v$system_event |
74 | PD_PDSG | SELECT count(*) FROM v$sgastat |
75 | PD_PDSH | SELECT count(*) FROM v$shared_server, v$process WHERE paddr=addr |
76 | PD_PDSM | 下記のすべてのSQL文から求められる結果の合算値です
|
77 | PD_PDSQ※2 | インスタンス数は0です |
78 | PD_PDSR | SELECT count(*) FROM v$sort_segment |
79 | PD_PDSS | SELECT count(*) FROM v$sesstat a, v$session b, v$statname c WHERE a.sid=b.sid AND a.statistic#=c.statistic# AND value>=0 |
80 | PD_PDST | SELECT count(*) FROM v$sysstat |
81 | PD_PDTA | SELECT count(*) FROM v$access a, v$session b WHERE a.sid=b.sid |
82 | PD_PDTF | SELECT count(*) FROM sys.dba_tablespaces |
83 | PD_PDTL | SELECT count(*) FROM v$locked_object a, sys.dba_objects b WHERE a.object_id=b.object_id |
84 | PD_PDTR | SELECT count(*) FROM v$transaction a, v$session b WHERE RAWTOHEX(ses_addr)=RAWTOHEX(saddr) |
85 | PD_PDTS | SELECT count(*) FROM sys.dba_tablespaces |
86 | PD_PDV | SELECT count(*) FROM product_component_version |
87 | PD_PDWA | SELECT count(*) FROM v$session_wait a, v$session b WHERE a.sid=b.sid AND a.wait_time>=0 |
88 | PD_STAT | インスタンス数は1です |
(b) 見積もり例
a=1
c=678
d=291
e=2
f=4,078
(1,440+168+366+52+12+1)*2(eの値)=4,078レコード
f=4,078
X={d*e+(c+1,900)*{d*e/(65,250-c)+1}}*f*1.5
X={291*2+(678+1,900)*{291*2/(65,250-678)+1}}*4,078*1.5
={582+(2,578)*{582/64,572+1}}*6,117
={582+2,578*1}*6,117
=3,160*6,117
=19,329,720(バイト)
=約19(メガバイト)
b=1
c=678
d=117
e=3
g=2,232
Y={d*g+(c+1,900)*{(d*e)/(65,250-c)+1}*(g/e)}*1.5
Y={117*2,232+(678+1,900)*{(117*3)/(65,250-678)+1}*(2,232/3)}*1.5
={117*2,232+2,578*{351/64,571+1}*744}*1.5
={261,144+2,578*1*744}*1.5
={261,144+1,918,032}*1.5
=2,179,176*1.5
=3,268,764(バイト)
=約3(メガバイト)
(3) Storeデータベース(Storeバージョン2.0)のディスク占有量
Storeデータベース(Storeバージョン2.0)のディスク占有量について説明します。
(a) 見積もり式
ディスク占有量,ファイル数,ディレクトリ数,およびStoreサービスがオープンするファイル数の見積もりについて説明します。
●ディスク占有量
Storeデータベースのディスク占有量は,レコードタイプごとのディスク占有量の総和となります。PIレコードタイプについては,さらに集約区分ごとのディスク占有量の総和となります。
表A-10 a,b,およびcに設定する値
レコードタイプ | 集約区分 | a | b | c |
---|---|---|---|---|
PI | 分 | 1,440 | 1+(g-1)/60※2 | 保存期間(単位:日) |
時 | 24 | 1+(g-1)/3,600※2 | 保存期間(単位:日) | |
日 | 7 | 1+(g-1)/86,400※2 | 保存期間(単位:週) | |
週 | 1 | 1+(g-1)/604,800※2 | 保存期間(単位:週) | |
月 | 1 | 1+(g-1)/2,592,000※2 | 保存期間(単位:月) | |
年 | 1 | 1+(g-1)/31,622,400※2 | 10(固定値) | |
PD | - | 1,440 | g/60 | 保存期間(単位:日) |
表A-11 デフォルトの保存期間と保存レコード数(Storeバージョン2.0の場合)
レコードタイプ | データの種類 | 保存期間 | 保存レコード数 (収集間隔が1分の場合) |
---|---|---|---|
PI | 分単位 | 1日 | 1,440 |
時単位 | 7日 | 168 | |
日単位 | 54週 | 378 | |
週単位 | 54週 | 54 | |
月単位 | 12か月 | 12 | |
年単位 | 10年 | (収集年数)*1 | |
PD | - | 7日 | 10,080 |
●ファイル数
Storeデータベースで作成されるファイル数Nの見積もり式を次に示します。
N=20+2*(
(A11+A12+...+A1l+l)+
(A21+A22+...+A2l+l)+
(A31+A32+...+A3l+l)+
(A41+A42+...+A4l+l)+
(A51+A52+...+A5l+l)+
(11*l)+
(B1+B2+...+Bm+m)
)
l:PIレコードで収集しているレコードの数
m:PDレコードで収集しているレコードの数
A11~A1l:PIレコードタイプのレコードごとの分レコードの保存期間設定値(単位:日)
A21~A2l:PIレコードタイプのレコードごとの時レコードの保存期間設定値(単位:日)
A31~A3l:PIレコードタイプのレコードごとの日レコードの保存期間設定値(単位:週)
A41~A4l:PIレコードタイプのレコードごとの週レコードの保存期間設定値(単位:週)
A51~A5l:PIレコードタイプのレコードごとの月レコードの保存期間設定値(単位:月)
B1~Bm:PDレコードタイプのレコードごとの保存期間設定値(単位:日)
●ディレクトリ数
Storeデータベースで作成されるディレクトリ数Nの見積もり式を次に示します。
N=25+2*((A1max)+(A2max)+(A3max)+(A4max)+(A5max)+11+(Bmax))
l:PIレコードで収集しているレコードの数
m:PDレコードで収集しているレコードの数
A1max:PIレコードタイプで収集しているレコードの集約区分が「分」のデータの保存期間設定値の最大値(単位:日)
A2max:PIレコードタイプで収集しているレコードの集約区分が「時」のデータの保存期間設定値の最大値(単位:日)
A3max:PIレコードタイプで収集しているレコードの集約区分が「日」のデータの保存期間設定値の最大値(単位:週)
A4max:PIレコードタイプで収集しているレコードの集約区分が「週」のデータの保存期間設定値の最大値(単位:週)
A5max:PIレコードタイプで収集しているレコードの集約区分が「月」のデータの保存期間設定値の最大値(単位:月)
Bmax:PDレコードタイプのレコードごとの保存期間設定値の最大値(単位:日)
●Storeサービスがオープンするファイル数
Storeサービスがオープンするディレクトリ数Nの見積もり式を次に示します。
N=20+2*(6*l+m)
l:PIレコードで収集しているレコードの数
m:PDレコードで収集しているレコードの数
(b) 見積もり例
PFM - Agent for OracleのStoreデータベース(Storeバージョン2.0)の見積もりについて,具体例を用いて説明します。
●ディスク占有量
PI_PITSとPD_PDTSを収集する設定にした場合を例に挙げて説明します。
PI_ PITSレコードの見積もりについて説明します。「(a) 見積もり式」のディスク占有量の見積もり式の,a~gの値を調べます。
d=678
e=291
f=今回は3とする
g=今回は60秒とする
次に,分レコード,時レコードなどそれぞれの計算を行います。
X(分)={(291+2)*4+(678+60)*{((291+2)*4)/(65,250-678)+1}}*1,440/1*
(3+1)*1.1
={1,172+738*1}*6,336
=1,910*6,336
=12,101,760(バイト)=約12メガバイト
X(時)={(291+2)*4+(678+60)*{((291+2)*4)/(65,250-678)+1}}*24/1*
(3+1)*1.1
={1,172+738*1}*105.6
=1,910*105.6
=201,696(バイト)=約0.2メガバイト
X(日)={(291+2)*4+(678+60)*{((291+2)*4)/(65,250-678)+1}}*7/1*
(1+1)*1.1
={1,172+738*1}*15.4
=1,910*15.4
=29,414(バイト)=約0.03メガバイト
X(週)={(291+2)*4+(678+60)*{((291+2)*4)/(65,250-678)+1}}*1/1*
(1+1)*1.1
={1,172+738*1}*2.2
=1,910*2.2
=4,202(バイト)=約0.005メガバイト
X(月)={(291+2)*4+(678+60)*{((291+2)*4)/(65,250-678)+1}}*1/1*
(1+1)*1.1
={1,172+738*1}*2.2
=1,910*2.2
=4,202(バイト)=約0.005メガバイト
X(年)={(291+2)*4+(678+60)*{((291+2)*4)/(65,250-678)+1}}*1/1*
(10+1)*1.1
={1,172+738*1}*12.1
=1,910*12.1
=23,111(バイト)=約0.03メガバイト
以上から,PI_PITSの見積もりは次のようになります。
X(合計)=X(分)+X(時)+X(日)+X(週)+X(月)+X(年)
=12.27メガバイト
=約13メガバイト
次にPD_PDTSレコードの見積もりについて説明します。
a=1,440
b=60/60 =1
c=7日とする
d=678バイト
e=117バイト
f=今回は10とする
g=今回は60秒とする
見積もり式を次に示します。
X={(117+2)*12+(678+60)*{((117+2)*12)/(65,250-678)+1}}*1,440/1*(7+1)*
1.1
={1,428+738*1}}*12,672
=2,166*12,672
=27,447,552(バイト)=約27メガバイト
したがって,必要なディスク占有量はPI_PITS+PD_PDTS=40メガバイトとなります。
●ファイル数
PI,PI_PITS,PD,およびPD_PDTSを収集する場合を例に挙げて説明します。「(a) 見積もり式」のファイル数の見積もり式の,可変値を調べます。
l:PIレコードで収集しているレコードの数=2
m:PDレコードで収集しているレコードの数=2
A11~A1l:PIレコードタイプのレコードごとの分レコードの保存期間設定値(単位:日)=今回は3日とする
A21~A2l:PIレコードタイプのレコードごとの時レコードの保存期間設定値(単位:日)=今回は3日とする
A31~A3l:PIレコードタイプのレコードごとの日レコードの保存期間設定値(単位:週)=今回は1週とする
A41~A4l:PIレコードタイプのレコードごとの週レコードの保存期間設定値(単位:週)=今回は1週とする
A51~A5l:PIレコードタイプのレコードごとの月レコードの保存期間設定値(単位:月)=今回は1月とする
B1~Bm:PDレコードタイプのレコードごとの保存期間設定値(単位:日)=今回は10日とする
Storeデータベースで作成されるファイル数Nの見積もり式を次に示します。
N=20+2*(
(A11+A12+...+A1l+l)+
(A21+A22+...+A2l+l)+
(A31+A32+...+A3l+l)+
(A41+A42+...+A4l+l)+
(A51+A52+...+A5l+l)+
(11*l)+
(B1+B2+...+Bm+m)+
)
=20+2*{
[3(PI分)+3(PI_PITS分)+2]+
[3(PI分)+3(PI_PITS分)+2]+
[1(PI分)+1(PI_PITS分)+2]+
[1(PI分)+1(PI_PITS分)+2]+
[1(PI分)+1(PI_PITS分)+2]+
[11*2]+
[10(PD分)+10(PD_PDTS分)+2]
}
=20+2*{8+8+4+4+4+22+22}=164
●ディレクトリ数
PI,PI_PITS,PD,およびPD_PDTSを収集する場合を例に挙げて説明します。
l:PIレコードで収集しているレコードの数=2
m:PDレコードで収集しているレコードの数=2
A1max:PIレコードタイプで収集しているレコードの集約区分が"分"のデータの保存期間設定値の最大値(単位:日)=今回は3日とする(考え方:PIが2日,PI_PITSが3日の場合は3日となります)
A2max:PIレコードタイプで収集しているレコードの集約区分が「時」のデータの保存期間設定値の最大値(単位:日)=今回は3日とする
A3max:PIレコードタイプで収集しているレコードの集約区分が「日」のデータの保存期間設定値の最大値(単位:週)=今回は1週とする
A4max:PIレコードタイプで収集しているレコードの集約区分が"週"のデータの保存期間設定値の最大値(単位:週)=今回は1週とする
A5max:PIレコードタイプで収集しているレコードの集約区分が「月」のデータの保存期間設定値の最大値(単位:月)=今回は1月とする
Bmax:PDレコードタイプのレコードごとの保存期間設定値の最大値(単位:日)=今回は10日とする(考え方:PD_PDTSが8日,PDが10日の場合は10日となります)
Storeデータベースで作成されるディレクトリ数Nの見積もり式を次に示します。
N=25+2*((A1max)+(A2max)+(A3max)+(A4max)+(A5max)+11+(Bmax))
=25+2*(3+3+1+1+1+11+10)=85
●Storeサービスがオープンするファイル数
PI,PI_PITS,PD,およびPD_PDTSを収集する場合を例に挙げて説明します。
l:PIレコードで収集しているレコードの数=2
m:PDレコードで収集しているレコードの数=2
Storeサービスがオープンするディレクトリ数Nの見積もり式を次に示します。
N=20+2*(6*l+m)
=20+2*(6*2+2)=48