Как ограничить Пассажирское использование памяти Phusion?

В API-интерфейсах AWS IAM используется в конечном итоге согласованная модель, поэтому задержки возникают во время обновления ресурсов IAM (например, при создании ключей доступа). Это означает, что даже если вызов функции для создания ключа доступа AWS завершается успешно, это не обязательно означает, что ключ доступа AWS завершил свое создание на серверах AWS немедленно. https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#trouультив. , мы можем установить политику повторных попыток для создания пользователей IAM, используя вновь созданные ключи доступа AWS, имея время ожидания:

import boto3
import botocore
import backoff


@backoff.on_exception(backoff.expo, botocore.exceptions.ClientError, max_time=30)
def create_user(access_key_id, access_key_secret, username):
    temp_session = boto3.Session(aws_access_key_id=access_key_id,aws_secret_access_key=access_key_secret,region_name='ap-southeast-1')
    temp_iam_client = temp_session.client('iam')
    temp_iam_client.create_user(UserName=username)


session = boto3.session.Session(profile_name='default')
iam_client = session.client('iam')

response_access_key = iam_client.create_access_key(UserName='user')
access_key_id = response_access_key.get('AccessKey').get('AccessKeyId')
access_key_secret = response_access_key.get('AccessKey').get('SecretAccessKey')
create_user(access_key_id, access_key_secret, 'my-new-user')

Старый ответ

Добавление спящего режима сразу после создания ключа доступа AWS - это обходной путь.

import boto3
import time
session1 = boto3.session.Session(profile_name='my_profile')
iam_client = session1.client('iam')

responseCreateAccessKey = iam_client.create_access_key(UserName=user)
accessKeyId = responseCreateAccessKey.get('AccessKey').get('AccessKeyId')
accessKeySecret = responseCreateAccessKey.get('AccessKey').get('SecretAccessKey')

time.sleep(10)
temp_session = boto3.Session(aws_access_key_id=accessKeyId,aws_secret_access_key=accessKeySecret,region_name='ap-southeast-1')
temp_iam_client = temp_session.client('iam')
responseCreateUser = temp_iam_client.create_user(UserName='my-new-user')

11
задан John Topley 24 January 2009 в 18:53
поделиться

2 ответа

Нет никакого способа ограничить использование памяти явно (скажите что использование <= 100 МиБ).

Но то, что можно сделать, ограничить количество процессов установкой PassengerMaxPoolSize. Набор, который это и затем видит, как использование памяти (который зависит от приложений, которые Вы запускаете).

Кроме того, использование Ruby Enterprise Edition может помочь.

6
ответ дан 3 December 2019 в 11:21
поделиться

Попробуйте запустить его в зоне Solaris;)

-2
ответ дан 3 December 2019 в 11:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: