Изменение настроек PXF
Настройки PXF, которые можно задать средствами Yandex Cloud, совпадают с настройками в конфигурационном файле Greenplum® pxf-application.properties
Чтобы изменить настройки PXF:
-
Перейдите на страницу каталога
и выберите сервис Managed Service for Greenplum. -
Нажмите на имя нужного кластера и выберите на панели слева
PXF. -
Нажмите кнопку
Изменить настройки PXF в верхней части страницы. -
Измените настройки:
-
Connection Timeout — таймаут подключения к серверу Apache Tomcat® во время выполнения запросов на чтение. Диапазон значений: от
5
до600
секунд. Значение можно указать в разных единицах времени. -
Upload Timeout — таймаут подключения к серверу Apache Tomcat® во время выполнения запросов на запись. Диапазон значений: от
5
до600
секунд. Значение можно указать в разных единицах времени. -
Max Threads — максимальное количество потоков Apache Tomcat®. Диапазон значений: от
1
до1024
.Чтобы предотвратить ситуации, когда запросы зависают или не выполняются из-за перерасхода памяти или некорректной работы сборщика мусора Java, задайте количество потоков Apache Tomcat®. О регулировке числа потоков читайте в документации VMware Greenplum® Platform Extension Framework
. -
Pool Allow Core Thread Timeout — разрешен ли таймаут для стриминговых потоков ядра приложения (core streaming threads).
-
Pool Core Size — количество стриминговых потоков ядра в пуле. Диапазон значений: от
1
до1024
. -
Pool Queue Capacity — максимальное количество запросов, которое можно добавить в очередь в пул за стриминговыми потоками ядра. Диапазон значений: от нуля и выше. При значении
0
очередь в пул не образуется. -
Pool Max Size — максимально допустимое количество стриминговых потоков ядра. Диапазон значений: от
1
до1024
. -
Xmx — изначальный размер JVM-кучи для демона PXF. Диапазон значений: от
64
до16384
МБ. Значение можно указать в разных единицах измерения. -
Xms — максимальный размер JVM-кучи для демона PXF. Диапазон значений: от
64
до16384
МБ. Значение можно указать в разных единицах измерения.
-
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить настройки PXF:
-
Посмотрите описание команды CLI для изменения конфигурации кластера:
yc managed-greenplum cluster update --help
-
Задайте настройки PXF:
yc managed-greenplum cluster update <имя_или_идентификатор_кластера> \ --pxf-connection-timeout=<таймаут_для_запросов_на_чтение> \ --pxf-upload-timeout=<таймаут_для_запросов_на_запись> \ --pxf-max-threads=<максимальное_число_потоков_Apache_Tomcat®> \ --pxf-pool-allow-core-thread-timeout=<разрешен_ли_таймаут_для_стриминговых_потоков> \ --pxf-poll-core-size=<количество_стриминговых_потоков> \ --pxf-pool-queue-capacity=<емкость_очереди_в_пул_за_стриминговыми_потоками> \ --pxf-pool-max-size=<максимальное_число_стриминговых_потоков> \ --pxf-xmx=<изначальный_размер_JVM-кучи> \ --pxf-xms=<максимальный_размер_JVM-кучи>
Где:
-
pxf-connection-timeout
— таймаут подключения к серверу Apache Tomcat® во время выполнения запросов на чтение (в секундах). Диапазон значений: от5
до600
. -
pxf-upload-timeout
— таймаут подключения к серверу Apache Tomcat® во время выполнения запросов на запись (в секундах). Диапазон значений: от5
до600
. -
pxf-max-threads
— максимальное количество потоков Apache Tomcat®. Диапазон значений: от1
до1024
.Чтобы предотвратить ситуации, когда запросы зависают или не выполняются из-за перерасхода памяти или некорректной работы сборщика мусора Java, задайте количество потоков Apache Tomcat®. О регулировке числа потоков читайте в документации VMware Greenplum® Platform Extension Framework
. -
pxf-pool-allow-core-thread-timeout
— разрешен ли таймаут для стриминговых потоков ядра приложения (core streaming threads). Значение по умолчанию:false
. -
pxf-poll-core-size
— количество стриминговых потоков ядра в пуле. Диапазон значений: от1
до1024
. -
pxf-pool-queue-capacity
— максимальное количество запросов, которое можно добавить в очередь в пул за стриминговыми потоками ядра. Диапазон значений: от нуля и выше. При значении0
очередь в пул не образуется. -
pxf-pool-max-size
— максимально допустимое количество стриминговых потоков ядра. Диапазон значений: от1
до1024
. -
pxf-xmx
— изначальный размер JVM-кучи для демона PXF (в мегабайтах). Диапазон значений: от64
до16384
. -
pxf-xms
— максимальный размер JVM-кучи для демона PXF (в мегабайтах). Диапазон значений: от64
до16384
.
Имя кластера можно получить со списком кластеров в каталоге.
-
Чтобы изменить настройки PXF:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера Greenplum®.
Полный список доступных для изменения полей конфигурации кластера Managed Service for Greenplum® см. в документации провайдера Terraform
. -
В описании кластера, в блоке
pxf_config
, задайте настройки PXF:resource "yandex_mdb_greenplum_cluster" "<имя_кластера>" { ... pxf_config { connection_timeout = <таймаут_для_запросов_на_чтение> upload_timeout = <таймаут_для_запросов_на_запись> max_threads = <максимальное_число_потоков_Apache_Tomcat®> pool_allow_core_thread_timeout = <разрешен_ли_таймаут_для_стриминговых_потоков> pool_core_size = <количество_стриминговых_потоков> pool_queue_capacity = <емкость_очереди_в_пул_за_стриминговыми_потоками> pool_max_size = <максимальное_число_стриминговых_потоков> xmx = <изначальный_размер_JVM-кучи> xms = <максимальный_размер_JVM-кучи> } }
Где:
-
connection_timeout
— таймаут подключения к серверу Apache Tomcat® во время выполнения запросов на чтение (в секундах). Диапазон значений: от5
до600
. -
upload_timeout
— таймаут подключения к серверу Apache Tomcat® во время выполнения запросов на запись (в секундах). Диапазон значений: от5
до600
. -
max_threads
— максимальное количество потоков Apache Tomcat®. Диапазон значений: от1
до1024
.Чтобы предотвратить ситуации, когда запросы зависают или не выполняются из-за перерасхода памяти или некорректной работы сборщика мусора Java, задайте количество потоков Apache Tomcat®. О регулировке числа потоков читайте в документации VMware Greenplum® Platform Extension Framework
. -
pool_allow_core_thread_timeout
— разрешен ли таймаут для стриминговых потоков ядра приложения (core streaming threads). Значение по умолчанию:false
. -
pool_core_size
— количество стриминговых потоков ядра в пуле. Диапазон значений: от1
до1024
. -
pool_queue_capacity
— максимальное количество запросов, которое можно добавить в очередь в пул за стриминговыми потоками ядра. Диапазон значений: от нуля и выше. При значении0
очередь в пул не образуется. -
pool_max_size
— максимально допустимое количество стриминговых потоков ядра. Диапазон значений: от1
до1024
. -
xmx
— изначальный размер JVM-кучи для демона PXF (в мегабайтах). Диапазон значений: от64
до16384
. -
xms
— максимальный размер JVM-кучи для демона PXF (в мегабайтах). Диапазон значений: от64
до16384
.
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.Update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-greenplum/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.pxfConfig.connectionTimeout,configSpec.pxfConfig.uploadTimeout,configSpec.pxfConfig.maxThreads,configSpec.pxfConfig.poolAllowCoreThreadTimeout,configSpec.pxfConfig.poolCoreSize,configSpec.pxfConfig.poolQueueCapacity,configSpec.pxfConfig.poolMaxSize,configSpec.pxfConfig.xmx,configSpec.pxfConfig.xms", "configSpec": { "pxfConfig" : { "connectionTimeout": "<таймаут_для_запросов_на_чтение>", "uploadTimeout": "<таймаут_для_запросов_на_запись>", "maxThreads": "<максимальное_число_потоков_Apache_Tomcat®>", "poolAllowCoreThreadTimeout": <разрешен_ли_таймаут_для_стриминговых_потоков>, "poolCoreSize": "<количество_стриминговых_потоков>", "poolQueueCapacity": "<емкость_очереди_в_пул_за_стриминговыми_потоками>", "poolMaxSize": "<максимальное_число_стриминговых_потоков>", "xmx": "<изначальный_размер_JVM-кучи>", "xms": "<максимальный_размер_JVM-кучи>" } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую. -
connectionTimeout
— таймаут подключения к серверу Apache Tomcat® во время выполнения запросов на чтение (в секундах). Диапазон значений: от5
до600
. -
uploadTimeout
— таймаут подключения к серверу Apache Tomcat® во время выполнения запросов на запись (в секундах). Диапазон значений: от5
до600
. -
maxThreads
— максимальное количество потоков Apache Tomcat®. Диапазон значений: от1
до1024
.Чтобы предотвратить ситуации, когда запросы зависают или не выполняются из-за перерасхода памяти или некорректной работы сборщика мусора Java, задайте количество потоков Apache Tomcat®. О регулировке числа потоков читайте в документации VMware Greenplum® Platform Extension Framework
. -
poolAllowCoreThreadTimeout
— разрешен ли таймаут для стриминговых потоков ядра приложения (core streaming threads). Значение по умолчанию:false
. -
poolCoreSize
— количество стриминговых потоков ядра в пуле. Диапазон значений: от1
до1024
. -
poolQueueCapacity
— максимальное количество запросов, которое можно добавить в очередь в пул за стриминговыми потоками ядра. Диапазон значений: от нуля и выше. При значении0
очередь в пул не образуется. -
poolMaxSize
— максимально допустимое количество стриминговых потоков ядра. Диапазон значений: от1
до1024
. -
xmx
— изначальный размер JVM-кучи для демона PXF (в мегабайтах). Диапазон значений: от64
до16384
. -
xms
— максимальный размер JVM-кучи для демона PXF (в мегабайтах). Диапазон значений: от64
до16384
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/greenplum/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.pxf_config.connection_timeout", "config_spec.pxf_config.upload_timeout", "config_spec.pxf_config.max_threads", "config_spec.pxf_config.pool_allow_core_thread_timeout", "config_spec.pxf_config.pool_core_size", "config_spec.pxf_config.pool_queue_capacity", "config_spec.pxf_config.pool_max_size", "config_spec.pxf_config.xmx", "config_spec.pxf_config.xms" ] }, "config_spec": { "pxf_config" : { "connection_timeout": "<таймаут_для_запросов_на_чтение>", "upload_timeout": "<таймаут_для_запросов_на_запись>", "max_threads": "<максимальное_число_потоков_Apache_Tomcat®>", "pool_allow_core_thread_timeout": <разрешен_ли_таймаут_для_стриминговых_потоков>, "pool_core_size": "<количество_стриминговых_потоков>", "pool_queue_capacity": "<емкость_очереди_в_пул_за_стриминговыми_потоками>", "pool_max_size": "<максимальное_число_стриминговых_потоков>", "xmx": "<изначальный_размер_JVM-кучи>", "xms": "<максимальный_размер_JVM-кучи>" } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в одну строку через запятую. -
connection_timeout
— таймаут подключения к серверу Apache Tomcat® во время выполнения запросов на чтение (в секундах). Диапазон значений: от5
до600
. -
upload_timeout
— таймаут подключения к серверу Apache Tomcat® во время выполнения запросов на запись (в секундах). Диапазон значений: от5
до600
. -
max_threads
— максимальное количество потоков Apache Tomcat®. Диапазон значений: от1
до1024
.Чтобы предотвратить ситуации, когда запросы зависают или не выполняются из-за перерасхода памяти или некорректной работы сборщика мусора Java, задайте количество потоков Apache Tomcat®. О регулировке числа потоков читайте в документации VMware Greenplum® Platform Extension Framework
. -
pool_allow_core_thread_timeout
— разрешен ли таймаут для стриминговых потоков ядра приложения (core streaming threads). Значение по умолчанию:false
. -
pool_core_size
— количество стриминговых потоков ядра в пуле. Диапазон значений: от1
до1024
. -
pool_queue_capacity
— максимальное количество запросов, которое можно добавить в очередь в пул за стриминговыми потоками ядра. Диапазон значений: от нуля и выше. При значении0
очередь в пул не образуется. -
pool_max_size
— максимально допустимое количество стриминговых потоков ядра. Диапазон значений: от1
до1024
. -
xmx
— изначальный размер JVM-кучи для демона PXF (в мегабайтах). Диапазон значений: от64
до16384
. -
xms
— максимальный размер JVM-кучи для демона PXF (в мегабайтах). Диапазон значений: от64
до16384
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками VMware, Inc в США и/или других странах.