11.8. アンダークラウドの調整

このセクションでのアドバイスは、アンダークラウドのパフォーマンスを向上に役立たせることが目的です。必要に応じて、推奨事項を実行してください。
  • OpenStack 認証サービス (keystone) は、トークンベースのシステムを使用して、他の OpenStack サービスにアクセスします。一定の期間が経過すると、データベースは未使用のトークンを多数累積します。 データベース内のトークンテーブルをフラッシュする cron ジョブを作成することを推奨します。たとえば、毎日午前 4 時にトークンテーブルをフラッシュするには、以下のように設定します。
    0 04 * * * /bin/keystone-manage token_flush
    
  • Heat は、openstack overcloud deploy を実行するたびにデータベースの raw_template テーブルにある全一時ファイルのコピーを保存します。raw_template テーブルは、過去のテンプレートをすべて保持し、サイズが増加します。raw_templates テーブルにある未使用のテンプレートを削除するには、以下のように、日次の cron ジョブを作成して、未使用のまま 1 日以上データベースに存在するテンプレートを消去してください。
    0 04 * * * /bin/heat-manage purge_deleted -g days 1
    
  • openstack-heat-engine および openstack-heat-api サービスは、一度に過剰なリソースを消費する可能性があります。そのような場合は /etc/heat/heat.confmax_resources_per_stack=-1 を設定して、Heat サービスを再起動します。
    $ sudo systemctl restart openstack-heat-engine openstack-heat-api
    
  • directorには、同時にノードをプロビジョニングするリソースが十分にない場合があります。同時に提供できるノード数はデフォルトで 10 個となっています。同時にプロビジョニングするノード数を減らすには、/etc/nova/nova.confmax_concurrent_builds パラメーターを 10 未満に設定して Nova サービスを再起動します。
    $ sudo systemctl restart openstack-nova-api openstack-nova-scheduler
    
  • /etc/my.cnf.d/server.cnf ファイルを編集します。調整が推奨される値は、以下のとおりです。
    max_connections
    データベースに同時接続できる数。推奨の値は 4096 です。
    innodb_additional_mem_pool_size
    データベースがデータのディクショナリーの情報や他の内部データ構造を保存するのに使用するメモリープールサイズ (バイト単位)。デフォルトは通常 8 M ですが、アンダークラウドの理想の値は 20 M です。
    innodb_buffer_pool_size
    データベースがテーブルやインデックスデータをキャッシュするメモリー領域つまり、バッファープールのサイズ (バイト単位)。通常デフォルトは 128 M で、アンダークラウドの理想の値は 1000 M です。
    innodb_flush_log_at_trx_commit
    コミット操作の厳密な ACID 準拠と、コミット関連の I/O 操作を再編成してバッチで実行することによって実現可能なパフォーマンス向上の間のバランスを制御します。1 に設定します。
    innodb_lock_wait_timeout
    行のロックがされるまで、データベースのトランザクションが待機するのを中断するまでの期間 (秒単位)。
    innodb_max_purge_lag
    この変数は、解析操作が遅れている場合に INSERT、UPDATE、DELETE 操作を遅延させる方法を制御します。10000 に設定します。
    innodb_thread_concurrency
    同時に実行するオペレーティングシステムのスレッド数の上限。理想的には、各 CPU およびディスクリソースに対して少なくとも 2 つのスレッドを提供します。たとえば、クワッドコア CPU と単一のディスクを使用する場合は、スレッドを 10 個使用します。
  • オーバークラウドを作成する際には、Heat に十分なワーカーが配置されているようにします。通常、アンダークラウドに CPU がいくつあるかにより左右されます。ワーカーの数を手動で設定するには、/etc/heat/heat.conf ファイルを編集して num_engine_workers パラメーターを必要なワーカー数 (理想は 4) に設定し、Heat エンジンを再起動します。
    $ sudo systemctl restart openstack-heat-engine