Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

15.8. 언더클라우드 튜닝

이 섹션의 지침은 언더클라우드의 성능을 향상시키는 데 도움이 됩니다. 필요에 따라 권장 사항을 구현합니다.

  • Identity 서비스(keystone)는 다른 OpenStack 서비스에 대한 액세스 제어에 토큰 기반 시스템을 사용합니다. 일정한 기간이 지나면 데이터베이스에는 사용하지 않는 많은 토큰이 누적됩니다. 기본 cronjob은 매일 토큰 테이블을 플러시합니다. 환경을 모니터링하고 토큰 플러시 간격을 필요에 따라 조정하는 것이 좋습니다. 언더클라우드의 경우 crontab -u keystone -e 를 사용하여 간격을 조정할 수 있습니다. 이는 일시적인 변경 사항이며 openstack undercloud update 에서 이 cronjob을 다시 기본값으로 재설정합니다.
  • Heat는 openstack overcloud deploy 를 실행할 때마다 모든 템플릿 파일의 사본을 데이터베이스의 raw_template 테이블에 저장합니다. raw_template 테이블은 과거의 모든 템플릿을 유지하고 크기를 늘립니다. raw_templates 테이블에서 사용되지 않는 템플릿을 제거하려면 매일 cronjob을 생성하여 데이터베이스에 존재하는 사용되지 않는 템플릿을 하루 이상 지웁니다.

    0 04 * * * /bin/heat-manage purge_deleted -g days 1
  • openstack-heat-engineopenstack-heat-api 서비스가 너무 많은 리소스를 사용하는 경우가 있습니다. 이 경우 /etc/heat/heat.conf 에서 max_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/galera.cnf 파일을 편집합니다. 조정의 몇 가지 권장 값은 다음과 같습니다.

    max_connections
    데이터베이스에 대한 동시 연결 수입니다. 권장 값은 4096입니다.
    innodb_additional_mem_pool_size
    데이터베이스에서 데이터 사전 정보 및 기타 내부 데이터 구조를 저장하는 데 사용하는 메모리 풀의 크기(바이트)입니다. 언더클라우드에 대한 기본값은 일반적으로 8M이며 이상적인 값은 20M입니다.
    innodb_buffer_pool_size
    데이터베이스에서 테이블 및 인덱스 데이터를 캐시하는 메모리 영역의 버퍼 풀 크기(바이트)입니다. 언더클라우드에 대한 기본값은 일반적으로 128M이며, 이상적인 값은 1000M입니다.
    innodb_flush_log_at_trx_commit
    커밋 관련 I/O 작업을 다시 정렬하고 배치로 수행할 때 가능한 고성능과 커밋 작업을 위한 엄격한 ACID 규정 준수 간의 균형을 제어합니다. 1로 설정합니다.
    innodb_lock_wait_timeout
    데이터베이스 트랜잭션이 종료되기 전에 행 잠금을 기다리는 시간(초)입니다. 50으로 설정합니다.
    innodb_max_purge_lag
    이 변수는 제거 작업이 지연될 때 INSERT, UPDATE 및 DELETE 작업을 지연하는 방법을 제어합니다. 10000으로 설정합니다.
    innodb_thread_concurrency
    동시 운영 체제 스레드 제한입니다. 각 CPU 및 디스크 리소스에 대해 적어도 두 개의 스레드를 제공하는 것이 좋습니다. 예를 들어 쿼드 코어 CPU와 단일 디스크를 사용하는 경우 10개의 스레드를 사용합니다.
  • heat에 오버클라우드 생성을 수행할 충분한 작업자가 있는지 확인합니다. 일반적으로 언더클라우드에 있는 CPU 수에 따라 다릅니다. 작업자 수를 수동으로 설정하려면 /etc/heat/heat.conf 파일을 편집하고, num_engine_workers 매개변수를 필요한 작업자 수(대부분 4)로 설정한 후 heat 엔진을 다시 시작합니다.

    $ sudo systemctl restart openstack-heat-engine