2016-07-12 3 views
1

У меня есть служба python, называемая бережливостью. И я хочу попробовать TThreadPoolServer вместо TThreadedServer. После моих попыток я обнаружил, что мода TThreadPoolServer имеет более низкую скорость процессора, но более низкую скорость. Я думаю, что максимальные потоки по умолчанию в пуле небольшие. Но я не знаю, как настроить эти параметры на бережливом сервере python. мог ли кто-нибудь узнать об этом? Благодарю.На сервере Thrift Python, как настроить максимальные потоки в пуле с помощью TThreadPoolServer?

+0

@VladislavMartin: В вашем предложении отсутствуют некоторые слова, чтобы иметь смысл. Мое предложение состоит в том, чтобы вставить «* ограничено», прежде чем «* будет правильным *». – JensG

+1

@JensG: Упс! ... Согласно анализу/тестированию сервера GitHub для серверов Thrift, вы предполагаете, что [максимальное количество потоков в пуле 'TThreadPoolServer' ограничено] (https://github.com/m1ch1/mapkeeper/wiki/TThreadedServer -vs.-TNonblockingServer # tthreadpoolserver-not-benchmarked-here) является правильным. Как было сказано в ответе @ Арниаля, вы можете найти в исходном коде, что предел по умолчанию равен 10. –

ответ

1

См. Определения в исходном коде, TServer.py.

По умолчанию количество потоков в пуле TThreadPoolServer равно 10. См. Строку 143 в исходном коде под определением класса TThreadPoolServer.

Вы можете изменить количество потоков в пуле, вызвав следующий метод: TThreadPoolServer.setNumThreads(self, num).

UPDATE:

Если ваш сценарий нуждается в большем количестве, чем процессор ввода/вывода, я рекомендую вам попробовать использовать TForkingServer. Это может работать лучше, чем поточный сервер из-за GIL.

Из комментариев по линии 199-202 в исходном коде, в соответствии с определением TForkingServer класса:

Сервер Бережливость, что новый Сервер порождает процесс для каждого запроса

Это более масштабируемым, чем сервер с резьбой, поскольку он не вызывает конкуренции GIL.

+0

Можете ли вы предоставить ссылки в своем ответе на документацию, на которую вы ссылаетесь? В частности, ссылка на источник, в которой указано, что максимальное количество потоков по умолчанию в TThreadPoolServer составляет 10 * и * файл dorkstring TForkingServer. –

+0

Спасибо, это работает! Я не нахожу связанных api docs о бережливости в Интернете. Можете ли вы дать несколько советов о связанных с этим материалах? Еще раз спасибо! – findtruth

+0

По умолчанию количество потоков и docstring для 'TForkingServer' я взял из Thrift (v0.9.3) исходных кодов. Я добавил ссылку на файл с определениями. – Arnial