Облачная платформаAdvanced

Каково максимальное количество соединений к экземпляру RDS?

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

В RDS нет ограничений на количество поддерживаемых соединений. Это зависит от значений по умолчанию и диапазонов значений следующих параметров: max_connections и max_user_connections для MySQL DB engine и max_connections для PostgreSQL DB engine. Вы можете настроить эти параметры в шаблоне параметров.

Определение

Максимальное количество соединений относится к одновременным соединениям, разрешённым для экземпляра БД.

Как изменить

  • RDS for MySQL

    Вы можете выполнить следующую команду, чтобы запросить максимальное количество разрешённых соединений:

    show global variables like 'max_connections';

  • RDS for PostgreSQL

    Вы можете выполнить следующую команду, чтобы запросить максимальное количество разрешённых соединений:

    show max_connections;

Установка максимального количества соединений на подходящее значение

  • RDS for MySQL
    • Помимо значения max_connections, максимальное количество одновременных клиентских соединений, разрешённых RDS for MySQL, также ограничивается максимальным числом файлов, которые может открыть один процесс в операционной системе. Например, если максимальное количество файлов, которые может открыть каждый процесс, установлено в 100 в операционной системе, параметр max_connections не вступает в силу, даже если он установлен в 200.
    • Проверьте максимальное количество файлов, которые может открыть один процесс в операционной системе. Значение по умолчанию — 1024.

      ulimit -n

    • Проверьте значение open_files_limit. open_files_limit указывает максимальное количество файлов, которые может открыть один процесс, и читается из операционной системы при запуске инстанса RDS for MySQL.

      show variables like 'open_files_limit';

    • Рекомендуемые значения

      Максимальное количество соединений RDS for MySQL можно изменить до любого значения, разрешённого спецификациями вашего инстанса. Поддерживаемое максимальное количество соединений тесно связано с памятью инстанса.

      max_connections: максимальное количество одновременных соединений с инстансом БД. Если этот параметр установлен в default, максимальное количество соединений зависит от памяти (единица: GB) инстанса БД. Формула выглядит следующим образом:

      Оценочное значение max_connections = Доступная память узла / Оценочная память, занимаемая одним соединением

      Note
      • Доступная память узла = Общая память – Память, занимаемая буферным пулом – 1 GB (процесс mysqld/ОС/программа мониторинга)
      • Оценочное использование памяти одним соединением (single_thread_memory) = thread_stack (256 KB) + binlog_cache_size (32 KB) + join_buffer_size (256 KB) + sort_buffer_size (256 KB) + read_buffer_size (128 KB) + read_rnd_buffer_size (256 KB) ≈ 1 MB

      В следующей таблице перечислены значения по умолчанию max_connections для различных спецификаций памяти.

      Table 1 max_connections для различных спецификаций памяти

      Память (GB)

      Соединения

      512

      100,000

      384

      80,000

      256

      60,000

      128

      30,000

      64

      18,000

      32

      10,000

      16

      5,000

      8

      2,500

      4

      1,500

      2

      800

      Установите максимальное количество соединений на подходящее значение, поскольку большее количество соединений потребляет больше системных ресурсов.

  • RDS for PostgreSQL

    Set max_connections based on the complexity of your workloads.