Перейти к содержанию

Статья для предыдущей поддерживаемой версии ПО — 5.0!

Текущая рекомендованная версия — Comindware Platform 6.0. См. документацию к версии 6.0.

Настройка вспомогательного ПО для оптимизации работы {{ productName }}

Введение

Comindware Platform использует следующее вспомогательное ПО:

  • Apache Ignite — распределённая база данных;
  • JVM — виртуальная машина Java;
  • OpenSearch (Elasticsearch) — поисковая система;
  • NGINX — обратный прокси-сервер.

Для повышения производительности и выделения дополнительных ресурсов Comindware Platform (далее «экземпляр ПО») можно изменить некоторые параметры конфигурации вспомогательного ПО.

Настройка Apache Ignite

Изменение размера выделяемой области памяти

В Apache Ignite можно назначить максимальный размер области памяти с помощью директивы maxSize.

  1. Откройте файл /var/www/instancename/Ignite.config, где instancename — имя экземпляра ПО.
  2. Найдите раздел <bean class="org.apache.ignite.configuration.DataRegionConfiguration"> в разделе dataRegionConfigurations, содержащий директиву <property name="persistenceEnabled" value="true" />.
  3. Внутри этого раздела найдите директиву property name="maxSize".
  4. Установите требуемый размер области памяти, например 8 ГБ:

    <property name="maxSize" value="#{8L * 1024 * 1024 * 1024}" /> 
  5. Перезапустите экземпляр ПО, чтобы изменения вступили в силу.

Изменение размера кучи JVM

Для JVM Apache Ignite можно назначить минимальный (начальный) и максимальный размер области памяти для кучи с помощью директив Xms и Xmx.

Примечание

  • JVM может фактически использовать больше памяти, чем размер кучи, заданный директивами и Xms и Xmx.
  • Размер кучи можно задать в гигабайтах, мегабайтах, килобайтах: -Xms<size>[g|G|m|M|k|K]. Если не указать единицу измерения, то размер кучи будет задан в байтах.
  1. Установите переменную среды JVM_OPTS, указав в ней требуемый начальный и максимальный размер кучи, например -Xms10m (начальный. 10 МБ) и -Xmx16g (макс. 16 ГБ):

    export JVM_OPTS="-Xms10m -Xmx16g 
    -XX:MaxDirectMemorySize=1g
    -Djava.net.preferIPv4Stack=true
    -XX:+AlwaysPreTouch -XX:+UseG1GC
    -XX:+ScavengeBeforeFullGC -XX:+DisableExplicitGC
    --add-opens=java.base/sun.nio.ch=ALL-UNNAMED
    --add-opens=java.base/java.io=ALL-UNNAMED
    --add-opens=java.base/java.nio=ALL-UNNAMED
    --add-opens=java.base/java.util=ALL-UNNAMED
    --add-opens=java.base/java.lang=ALL-UNNAMED
    --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED
    --add-exports=java.base/sun.nio.ch=ALL-UNNAMED
    --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED
    --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED
    --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED
    --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED
    -DIGNITE_QUIET=false
    -DIGNITE_NO_ASCII=true"
  2. Перезапустите экземпляр ПО, чтобы изменения вступили в силу.

Материалы по теме

Настройка OpenSearch (Elasticsearch)

Изменение количества шардов

Для OpenSearch (Elasticsearch) можно изменить максимальное количество шардов на каждый в кластере по следующему правилу:

  • для повышения производительности OpenSearch (Elasticsearch) количество шардов следует уменьшить до минимально необходимого (от 100 шардов на одно приложение в экземпляре ПО);
  • в случае нехватки ресурсов для OpenSearch (Elasticsearch) при большом объеме данных количество шардов следует увеличить (но при этом производительность может снизиться).
  1. Откройте файл конфигурации OpenSearch (Elasticsearch): elasticsearch.yml
  2. Установите требуемое количество шардов с помощью директивы cluster.max_shards_per_node:

    сluster.max_shards_per_node: 3000 
  3. Перезапустите службу OpenSearch (Elasticsearch), чтобы изменения вступили в силу.

Изменение размера кучи JVM

Для JVM OpenSearch (Elasticsearch) можно назначить минимальный (начальный) и максимальный размер области памяти для кучи с помощью директив Xms и Xmx.

Примечание

  • Для кучи JVM OpenSearch (Elasticsearch) рекомендуется выделять не более половины оперативной памяти машины, чтобы оставался достаточный объем ОЗУ для работы Lucene.
  • Чем меньше размер кучи OpenSearch (Elasticsearch), тем выше будет производительность OpenSearch (Elasticsearch) и Lucene.
  • Не следует выделять для кучи JVM более 32 ГБ, так как это может привести к снижению производительности и перерасходу памяти.
  • JVM может фактически использовать больше памяти, чем размер кучи, заданный директивами и Xms и Xmx.
  • Размер кучи можно задать в гигабайтах, мегабайтах, килобайтах: -Xms<size>[g|G|m|M|k|K]. Если не указать единицу измерения, то размер кучи будет задан в байтах.
  1. Откройте файл конфигурации JVM OpenSearch (Elasticsearch): /etc/elasticsearch/jvm.options
  2. Установите размер кучи начальный и максимальный размер кучи, например -Xms4g (начальный. 4 ГБ) и -Xmx32g (макс. 32 ГБ):

    -Xms4g 
    -Xmx32g
  3. Перезапустите службу OpenSearch (Elasticsearch), чтобы изменения вступили в силу.

Материалы по теме

Настройка NGINX

В конфигурации NGINX для экономии трафика и уменьшения времени загрузки страниц можно включить сжатие, а также увеличить количество подключений.

  1. Откройте для редактирования файл /etc/nginx/nginx.conf
  2. В разделе events задайте количество подключений с помощью директивы worker_connections:

    events { 
    ...
    worker_connections 768;
    ...
    }
  3. В разделе http включите и настройте сжатие:

    http { 
    ...
    gzip on;
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    ...
    }
К началу

Ассистент базы знаний Comindware

Загрузка ассистента...
Запрос отправлен в ИИ-ассистент Открыть вкладку