настройка размера пула соединений с помощью библиотеки python-for-redis Энди МакКарди - PullRequest
1 голос
/ 08 июля 2011

У меня есть загрузчик python, использующий библиотеку python от Andy McCurdy, которая открывает несколько подключений Redis DB и устанавливает миллионы ключей, проходящих по файлам строк, каждый из которых содержит целое число, которое является номером redis-db для этой записи.В целом, в настоящее время открыто только 20 баз данных, но в конечном итоге их может быть целых 100 или более.

Я замечаю, что журнал redis (установленный для подробного описания) всегда говорит мне, что "подключено 4 клиента(0 рабов), ... хотя я знаю, что мои 20 открыты и используются.

Так что я предполагаю, что речь идет о поддержке пула соединений, встроенной в библиотеку python. Я прав в этомУгадайте? Если да, то реальный вопрос в том, есть ли способ увеличить размер пула - у меня много машинных ресурсов, много выделенных для Redis? Повлияет ли увеличение размера пула на производительность при увеличении количества виртуальных соединений, которые я создаю?up?

На данный момент, я на самом деле подключаюсь только к ОДНОМУ соединению за раз, хотя у меня есть много открытых, так как я перетасовываю входные записи между ними. Но в конечном итоге будет много сценариев (2 дюжины?), поражающих Redisпараллельно, в основном чтение, и мне интересно, какой эффект увеличит размер пула.

Спасибо, Мэтью

1 Ответ

1 голос
/ 15 июля 2011

Так что я предполагаю, что речь идет о поддержке пула соединений, встроенной в библиотеку python. Я прав в этом предположении?

Да.

Если это так, то реальный вопрос в том, есть ли способ увеличить размер пула

Не требуется, это увеличит количество соединений до 2 ** 31 по умолчанию (andys lib). Так что ваши соединения в любом случае бездействуют.

Если вы хотите повысить производительность, вам нужно будет изменить приложение, используя redis.

и мне интересно, как бы увеличился размер пула.

Нет, по крайней мере, в этом случае.

ЕСЛИ redis становится узким местом в какой-то момент, и у вас есть многоядерный сервер. Вы должны запустить несколько экземпляров Redis для повышения производительности, так как он работает только на одном ядре. Когда вы запускаете несколько экземпляров и выполняете в основном операции чтения, функция подчиненного устройства может повысить производительность, поскольку подчиненные устройства могут использоваться для всех операций чтения.

...