TimesTen 18 c構成HugePage
3907 ワード
文書TimesTen 18.1に従う.2.1 Classicモードのインストールと構成プロセス、Linux 7にTimesTen 18.1をインストールする.3.2.0、すべて順調で、サンプルデータベースの再作成に成功しました.
しかし、データベースメモリを256 Gに増やした場合、エラーが発生しました.
なぜなら、データベースメモリが256 Gを超えると、HugePageをオンにする必要があるからです.Database Connection Fails With Cannot create data store shared-memory segment,error 22(Doc ID 1504153.1)を参照してください.
次のアクションは、ドキュメントOracleを参照します.® TimesTen In-Memory Database Installation, Migration, and Upgrade Guide Release 18.1 - Configure HugePages
まずHugepageの単位を調べます.普通は2 Mです.
需要が256 Gであるため、すべての必要なHugePageの数は:
他にもいくつかのオーバーヘッドがあることを考慮して、131072を132000に調整します.
Instance adminのユーザー名とgroup情報を表示します.
記録instance adminはoracle、group idは10000である.
ファイル/etc/sysctlを編集します.conf、次の2行を追加します.
そのうち10000はinstance adminのgroup idである.132000は私たちが前に計算した値です.
有効化:
ファイル/etc/security/limitsを編集します.conf、次の2行を追加します.
ここでoracleはinstace adminユーザー名であり、3000000は以下の計算結果より大きい値を選択した値です.
その後、ユーザーは再ログインを終了し、有効にする必要があります.
ライブラリを作成しても問題はありません.
その他の監視データ:
しかし、データベースメモリを256 Gに増やした場合、エラーが発生しました.
$ ttisql sampledb
Copyright (c) 1996, 2020, Oracle and/or its affiliates. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
connect "DSN=sampledb";
836: Cannot create database shared-memory segment, error 0
703: Subdaemon connect to database failed with error TT836
The command failed.
Done.
なぜなら、データベースメモリが256 Gを超えると、HugePageをオンにする必要があるからです.Database Connection Fails With Cannot create data store shared-memory segment,error 22(Doc ID 1504153.1)を参照してください.
次のアクションは、ドキュメントOracleを参照します.® TimesTen In-Memory Database Installation, Migration, and Upgrade Guide Release 18.1 - Configure HugePages
まずHugepageの単位を調べます.普通は2 Mです.
$ cat /proc/meminfo | grep Hugepagesize
Hugepagesize: 2048 kB
需要が256 Gであるため、すべての必要なHugePageの数は:
256 * 1024M = 262144 MB/ 2 MB = 131072
他にもいくつかのオーバーヘッドがあることを考慮して、131072を132000に調整します.
Instance adminのユーザー名とgroup情報を表示します.
$ id
uid=55000(oracle) gid=10000(timesten) groups=10000(timesten),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
記録instance adminはoracle、group idは10000である.
ファイル/etc/sysctlを編集します.conf、次の2行を追加します.
vm.nr_hugepages=132000
vm.hugetlb_shm_group=10000
そのうち10000はinstance adminのgroup idである.132000は私たちが前に計算した値です.
有効化:
$ sudo sysctl -p
vm.nr_hugepages = 131072
vm.hugetlb_shm_group = 10000
ファイル/etc/security/limitsを編集します.conf、次の2行を追加します.
oracle soft memlock 300000000
oracle hard memlock 300000000
ここでoracleはinstace adminユーザー名であり、3000000は以下の計算結果より大きい値を選択した値です.
256*1024*1024 = 268435456
その後、ユーザーは再ログインを終了し、有効にする必要があります.
ライブラリを作成しても問題はありません.
$ ttisql sampledb
Copyright (c) 1996, 2020, Oracle and/or its affiliates. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
connect "DSN=sampledb";
Connection successful: DSN=sampledb;UID=oracle;DataStore=/u01/database/data/ttdb;DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=US7ASCII;LogFileSize=256;DRIVER=/home/oracle/tt181/install/lib/libtten.so;LogBufMB=256;LogDir=/u01/database/log;PermSize=262144;TempSize=1024;OracleNetServiceName=ttorcl;
(Default setting AutoCommit=1)
Command> dssize
The following values are in MB:
PERM_ALLOCATED_SIZE: 262144
PERM_IN_USE_SIZE: 13.979
PERM_IN_USE_HIGH_WATER: 13.979
TEMP_ALLOCATED_SIZE: 1024
TEMP_IN_USE_SIZE: 15.552
TEMP_IN_USE_HIGH_WATER: 15.759
Command> dssize g
The following values are in GB:
PERM_ALLOCATED_SIZE: 256
PERM_IN_USE_SIZE: .014
PERM_IN_USE_HIGH_WATER: .014
TEMP_ALLOCATED_SIZE: 1
TEMP_IN_USE_SIZE: .015
TEMP_IN_USE_HIGH_WATER: .015
その他の監視データ:
$ cat /proc/meminfo|grep -i huge
AnonHugePages: 143360 kB
ShmemHugePages: 0 kB
HugePages_Total: 132000
HugePages_Free: 131868
HugePages_Rsvd: 131690
HugePages_Surp: 0
Hugepagesize: 2048 kB
[oracle@tthugepage ~]$ ipcs -a
------ Message Queues --------
key msqid owner perms used-bytes messages
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0xf803da71 360448 oracle 660 1048576 1
0x1903cda4 458753 oracle 660 276316553216 10
0x1a03cda4 491522 oracle 660 134217728 2
------ Semaphore Arrays --------
key semid owner perms nsems
0xf803da71 196608 oracle 660 1
0x1903cda4 262145 oracle 660 2155