Table of Contents
推奨 #
- バイナリーログが有効化されている場合、データベースユーザーはアップグレードスクリプトを実行するためにはSUPER権限が必要です。バイナリーログが有効化されているか検証するには、次のコマンドを実行してください:
SHOW VARIABLES LIKE 'log_bin';
- 現行ユーザーがSUPER権限を持っているか検証するには、次のスクリプトを実行してください:
SELECT * FROM INFORMATION_SCHEMA.USER_PRIVILEGES WHERE PRIVILEGE_TYPE = 'SUPER' AND REPLACE(GRANTEE,'''','') = CURRENT_USER();
- ファンクションやプロシジャー作成を次のオプションを有効にして許可してください: log_bin_trust_function_creators.
有効になっているか確認するには次のスクリプトを実行してください。SHOW VARIABLES LIKE 'log_bin_trust_function_creators';
- もしレプリケーションが無効であるかポイントインタイムリカバリが必要なければ、別の選択としてバイナリログを無効化するべきです。
- 1秒で複数のチェックアウト・チェックインを実行するコンパイラーには、通常より25-50%強いハードウェアを推奨します。
- VMのアドミニストレーターはホストサーバーが要求されるリソースを収納できる事を必ず確認してください。
- DBクエリーで低いパフォーマンスを目にしたら、ディスクキューを確認してください。
- OpenLM Serverと同じデータセンターにデータベースを配置する事を推奨します。
- 下記がMS SQLサーバーへの推奨です。
- 下記にMySQL用にWindows(my.ini)やLinux(my.cnf)のサンプル設定ファイルを提供しましたが、データベース管理者(DBA)によって改訂しなければなりません。
- VMネットワークコントローラーは各ネットワークカードで利用可能でなければなりません。
- 大きいデータベース(25GB以上)で大きい負荷の場合、各データベースは3つのファイルと3つのVMディスクコントローラーを、データベースファイル、ログファイル、tmpファイル用に持つべきです。
MySQL使用の場合の最適実践 #
- 最新の5.7/8のMySQLリリースを使用してください。
- システムのリソースを有効活用するには、MySQLはその設定ファイルで正しい値が設定される必要があります(my.cnf/my.ini)。しかしながら、MySQLはそのホストマシンのリソースを最大限に利用する事はできません。いくつの設定を推奨します。あなたのシステムサイズに従って、Zipフォーマットに保存されている設定ファイルを参考にしてください。
MS SQL使用の場合の最適実践 #
- お客様は次のメインテナンス計画を適用する必要があります。
a) 定期的な統計更新
b) 定期的なリビルドかインデックスの再組織化
DBA保持者はOpenLMデータベースにも会社のメインテナンス政策を適用する必要があります。政策等がない場合、公共のパッケージを適用できます(こちらを参照) - (ほぼ)排他的に実行されているWindowsマシンでMSSQLサーバーに割り当てる推奨メモリーはマシンのメモリーの合計の80%を超えてはなりません。
- OpenLMデータベースはis_read_committed_snapshot_onパラメーターを設定しなければなりません。
設定を確認するには:
SELECT is_read_committed_snapshot_on FROM sys.databases WHERE name= 'YourDatabase'
設定するには:
DECLARE @sqlCommand varchar(1000) DECLARE @db_name varchar(50) SET @db_name = 'YourDatabase' SET @sqlCommand = 'ALTER DATABASE ' + @db_name + ' SET ALLOW_SNAPSHOT_ISOLATION ON ' EXEC (@sqlCommand) SET @sqlCommand = 'ALTER DATABASE ' + @db_name + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE ' EXEC (@sqlCommand) SET @sqlCommand = 'ALTER DATABASE ' + @db_name + ' SET READ_COMMITTED_SNAPSHOT ON ' EXEC (@sqlCommand) SET @sqlCommand = 'ALTER DATABASE ' + @db_name + ' SET MULTI_USER ' EXEC (@sqlCommand)
- より良いパフォーマンスのためには、別の論理ディスク(ある状況下では、物理ディスクでも)にtempdb、データベースとログファイルをインストールすることを推奨します。手堅いインストレーションは
a) 1- tempdbデータ用ディスク (ssd設定推奨)
b) 1- システムデータベース用ディスク(msdb、 model、 master)
c) 1- 全ログ用ディスク(tempdbログ含む)
d) 1- 全DBデータ用ディスク - tempdbはとても重要な役割を持ち、全てのパラメーターや仮テーブルを保持し、ソートや集計を実行します。Tempdbデータファイルの数はプロセッサーの数通りが推奨されます。最大8 (それ以上はパフォーマンスに影響ありません)
- データベースファイルの自動増幅単位はデフォルトでパーセントに設定されており危険です。MB単位を使用するのが良くて実践的です。レコードサイズで掛け算して予測できる増幅に基づくのが良いです。どの場合でも、ディスクサイズにアラート設定をするのが推奨されます。
- あらかじめログサイズを設定する事を推奨します。
- クラッシュから再開したり、ログファイル増幅を制御できる定期的なバックアッププログラムが推奨されます。データベースのシュリンキング(縮小)は実践的には良くなく推奨されません。
OpenLM Server | データベースServer | ||||||||
ユーザー数 | ポート数 | OpenLM Agent | CPU | メモリー | ネットワークカード | CPU | メモリー | ディスク | ネットワークカード |
500 | 5 | – | 2 Cores | 4 GB | 1Gbit | – | – | – | – |
1000 | 5 | – | 2 Cores | 8 GB | 1Gbit | – | – | – | – |
5000 | 20 | – | 4 Cores | 8 GB | 1Gbit | 2 Cores | 8 GB | 10K+ RPM HDD or SSD | 1Gbit |
5000 | 50 | – | 4 Cores | 8 GB | 1Gbit | 4 Cores | 12 GB | 10K+ RPM HDD or SSD | 1Gbit |
10000 | 50 | – | 4 Cores | 8 GB | 1Gbit | 4 Cores | 16 GB | 10K+ RPM HDD or SSD | 1Gbit |
15000 | 200 | – | 4 Cores | 12 GB | 10Gbit | 8 Cores | 16 GB | 10K+ RPM HDD or SSD | 10Gbit |
30000 | 500 | – | 8 Cores | 16 GB | 10Gbit | 8 Cores | 24 GB | 10K+ RPM HDD or SSD | 10Gbit |
250 | 5 | 50 | 2 Cores | 6 GB | 1Gbit | – | – | – | – |
500 | 5 | 100 | 4 Cores | 8 GB | 1Gbit | – | – | – | – |
1000 | 10 | 250 | 4 Cores | 12 GB | 1Gbit | 4 Cores | 8 GB | 10K+ RPM HDD or SSD | 1Gbit |
5000 | 20 | 500 | 4 Cores | 8 GB | 1Gbit | 4 Cores | 12 GB | 10K+ RPM HDD or SSD | 1Gbit |
10000 | 50 | 500 | 4 Cores | 8 GB | 1Gbit | 8 Cores | 16 GB | 10K+ RPM HDD or SSD | 1Gbit |
15000 | 100 | 500 | 4 Cores | 12 GB | 10Gbit | 8 Cores | 16 GB | 10K+ RPM HDD or SSD | 10Gbit |
15000 | 300 | 3000 | 8 Cores | 12 GB | 10Gbit | 12 Cores | 24 GB | 10K+ RPM HDD or SSD | 10Gbit |
30000 | 500 | 15000 | 24 Cores | 32 GB | 10Gbit | 16 Cores | 64 GB | 10K+ RPM HDD or SSD | 10Gbit |
MariaDB使用の場合の最適実践 #
注意: my.iniファイルを変更前に必ずバックアップしてください
4GB : #
innodb_buffer_pool_size=2G
innodb_io_capacity=1000
innodb_open_files=2000
max_allowed_packet=500M
max_connections=500
max_heap_table_size=500M
thread_cache_size=256
tmp_table_size=500M
8GB : #
innodb_buffer_pool_size=5G
innodb_io_capacity=1500
innodb_open_files=3000
max_allowed_packet=1G
max_connections=500
max_heap_table_size=1G
thread_cache_size=500
tmp_table_size=1G
16GB : #
innodb_buffer_pool_size=12G
innodb_io_capacity=2500
innodb_open_files=5000
max_allowed_packet=1G
max_connections=500
max_heap_table_size=2G
thread_cache_size=1000
tmp_table_size=2G
24GB : #
innodb_buffer_pool_size=18G
innodb_io_capacity=3000
innodb_open_files=80000
max_allowed_packet=2G
max_connections=1000
max_heap_table_size=3G
thread_cache_size=2000
tmp_table_size=3G