2016-08-18 4 views
1

Я использую утилиту GraphDB loadrdf для загрузки онтологии и довольно больших данных. Я установил pool.buffer.size = 800000 и jvm -Xmx на 24g. Я пробовал как параллельный, так и последовательный режимы. Они оба замедляются, как только общая сумма репо составляет около 10 тыс. В конечном итоге это замедляется до 1 или 2 заявления/секунды. Кто-нибудь знает, нормальное поведение loadrdf или есть способ оптимизировать производительность?Инструмент loadrdf Graphdb загружает ontology и данные очень медленно

Редактировать У меня увеличен индекс памяти. См. Часть моей конфигурации repo ttl:

owlim:entity-index-size "45333" ; 
owlim:cache-memory "24g" ; 
owlim:tuple-index-memory "20g" ; 
owlim:enable-context-index "false" ; 
owlim:enablePredicateList "false" ; 
owlim:predicate-memory "0" ; 
owlim:fts-memory "0" ; 
owlim:ftsIndexPolicy "never" ; 
owlim:ftsLiteralsOnly "true" ; 
owlim:in-memory-literal-properties "false" ; 
owlim:transaction-mode "safe" ; 
owlim:transaction-isolation "true" ; 
owlim:disable-sameAs "true"; 

Но как-то процесс все еще замедляется. Он начинается с «Глобальная средняя ставка: 1,402 ст/с». Но замедляется до «Глобального среднего курса: 20 st/s» после «Заявления в репо: 61,831». Я даю свой jvm: -Xms24g -Xmx36g

ответ

1

Не могли бы вы разместить свою конфигурацию репозитория? Внутри него есть параметр tuple-index-memory - это определит количество изменений (страниц диска), которые нам разрешено хранить в памяти. Чем больше это значение, тем меньше количество флешей, которые мы собираемся делать.

Проверьте, установлено ли это значение 20G в настройке и повторите попытку.

+0

Привет @nikolavp, спасибо большое! Ниже приведена конфигурация ttl repo (у меня увеличена память индекса). Но процесс все еще замедляется. Он начинается с «Глобальная средняя ставка: 1,402 ст/с». Но замедляется до «Глобального среднего курса: 20 st/s» после «Заявления в репо: 61,831». Я даю свой jvm: -Xms24g -Xmx36g. – cwen

+0

Часть моего репо ttl: 'owlim: entity-index-size" 45333 "; owlim: кэш-память «24g»; owlim: tuple-index-memory «20g»; owlim: enable-context-index "false"; owlim: enablePredicateList «false»; owlim: предикат-память «0»; owlim: fts-memory "0"; owlim: ftsIndexPolicy «никогда»; owlim: ftsLiteralsOnly «true»; owlim: in-memory-literal-properties "false"; owlim: режим транзакции «безопасен»; owlim: транзакционная изоляция «истина»; owlim: disable-sameAs «true»; ' – cwen

+0

Одна вещь, которую я заметил из диспетчера задач Windows - процессор идет очень высоко, почти на 100% занят. Но использование памяти составляет около 11 ГБ, хотя я установил jvm до 36 г, а кэш-память - до 24 г. Можете ли вы сказать, что что-то блокирует использование памяти? – cwen

0

Я рассмотрел конфигурацию хранилища ttl. Существует этот параметр: entity-index-size = 45333, значение которого необходимо увеличить, например. установите его на 100 миллионов (entity-index-size = 100000000). Значение по умолчанию для этого параметра в GraphDB 7 равно 10M, но поскольку вы явно задали его, оно становится чрезмерно высоким.

Вы можете прочитать больше об этом параметре here

+0

Привет, Venelin, большое спасибо. Я пробовал это - изменил параметр owlim: entity-index-size «100000000». Все еще очень медленный как для последовательного, так и для параллельного режима. Он сокращается до «Глобальной средней ставки: 15 st/s» после «Заявления в репо: 87,931». Использование памяти осталось около 12 ~ 13 ГБ, что очень странно. Любые другие параметры, которые я могу настроить? – cwen