Используя Пускает слюни в тяжелой пакетной обработке

Нет, потокам не нужно иметь общую политику планирования. Политика планирования управляет тем, как поток перемещается в списке выполняемых потоков на своем статическом уровне приоритета, поэтому этим поведением можно управлять на уровне отдельного потока. При выборе процесса для запуска планировщик будет искать наивысший статический приоритет с работающими потоками и выбирать поток, который является главой списка для этого уровня статического приоритета.

Для SCHED_FIFO, когда поток достигает заголовка списка с заданным приоритетом, он остается там до тех пор, пока не заблокируется или не уступит. Для SCHED_RR работающий поток, который превысил свой максимальный квант времени, будет перемещен в конец списка для его статического приоритета.

14
задан bmw0128 18 September 2008 в 14:22
поделиться

7 ответов

Я не работал с последней версией, Пускает слюни (в прошлый раз, когда я использовал ее, был приблизительно год назад), но тогда наши сравнительные тесты высокой загрузки доказали его, чтобы быть совершенно медленными. Огромное разочарование, основывая большую часть нашей архитектуры на нем.

По крайней мере что-то хорошее, о котором я помню, пускает слюни, то, что их команда разработчиков была доступна на IRC и очень полезна, Вы могли бы дать им попытку, они - эксперты, в конце концов: irc.codehaus.org #drools

3
ответ дан 1 December 2019 в 14:22
поделиться

Отчасти зависит от Ваших правил - 500K, объекты разумно, учитывая достаточную память (она должна заполнить сеть RETE в памяти, таким образом, использование памяти является кратным объектам 500K - т.е. пространство для объектов + пространство для структуры сети, индексы и т.д.) - его возможное, Вы - подкачка страниц к диску, который был бы действительно медленным.

, Конечно, если у Вас есть правила, что комбинации соответствия того же типа факта, который может заставить взрыв комбинаций пробовать, который, даже если у Вас есть 1 правило, будет действительно действительно медленным. Если бы у Вас больше была информация об анализе, Вы делаете, который, вероятно, помог бы с возможными решениями.

4
ответ дан 1 December 2019 в 14:22
поделиться

Пускает слюни действительно не разработан, чтобы быть выполненным на огромном количестве объектов. Это оптимизировано для под управлением сложных правил о нескольких объектах.

инициализация оперативной памяти для каждого дополнительного объекта является слишком медленной, и кэширующиеся стратегии разработаны для работы на объект оперативной памяти.

1
ответ дан 1 December 2019 в 14:22
поделиться

Я просто учусь, пускает слюни сам, поэтому возможно, я пропускаю что-то, но почему целый пакет пятисот тысяч объектов добавлен к оперативной памяти сразу? Единственная причина, о которой я могу думать, состоит в том, что существуют правила, которые умирают только, когда два или больше объекта в пакете связаны.

Если это не так затем возможно, Вы могли использовать сессию не сохраняющую состояние и утверждать один объект за один раз. Я предполагаю, что правила выполнят 500k времена быстрее в этом случае.

Даже если это имеет место, для всех Ваших правил нужен доступ ко всем объектам 500k? Вы могли убыстриться, вещи путем применения на объект управляет по одному, и затем во второй фазе обработки применяют пакетные правила уровня с помощью другой базы правил и оперативной памяти? Это не изменило бы объем данных, но сеть RETE будет небольшой, потому что простые правила были бы удалены.

Альтернативный подход должен был бы попытаться определить связанные группы объектов и утверждать объекты в группах во время второй фазы, далее уменьшив объем данных в оперативной памяти, а также разделив сеть RETE.

2
ответ дан 1 December 2019 в 14:22
поделиться

Мы смотрели на, пускает слюни также, но для нас количество объектов является небольшим, таким образом, это не проблема. Я действительно не забываю читать, что существуют альтернативные версии того же алгоритма, которые берут использование памяти больше во внимание и оптимизированы для скорости, все еще будучи основан на том же алгоритме. Не уверенный, если какой-либо из них превратил его в реальную применимую библиотеку все же.

0
ответ дан 1 December 2019 в 14:22
поделиться

Использовать сеанс без сохранения состояния и добавлять объекты по одному за раз?

0
ответ дан 1 December 2019 в 14:22
поделиться

Я использовал Drools с рабочей памятью с состоянием, содержащей более 1 миллиона фактов. При некоторой настройке ваших правил и базовой JVM производительность может быть достаточно хорошей через несколько минут для первоначального запуска. Дайте мне знать, если хотите узнать больше.

4
ответ дан 1 December 2019 в 14:22
поделиться
Другие вопросы по тегам:

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