Варианты производительности Fiware Orion - PullRequest
0 голосов
/ 24 августа 2018

Мне нужен совет по вопросам производительности.

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

Моя программа считывает и анализирует некоторые файлы, а затем сохраняет их в Fiware Orion, в зависимости от размера файла для проверки и анализа может потребоваться до 3 секунд. Затем эти данные отправляются в Orion Context Broker.

Пример:

  • Пустой и свежий экземпляр Ориона
  • Тестовый пример: 3000 объектов, POST с использованием пакетных операций.
  • Из-за размера сущностей 3000 разбиваются на меньшие по размеру и отправляются в Орион с пакетом. В этом случае моя программа обрежет их до размера 500 и отправит их один за другим.
  • Первый запуск 3000 единиц времени для выполнения операций 7 секунд.
  • Изменить путь обслуживания. Выполнить те же 3000 единиц времени для завершения операции 14/15 секунд.
  • Измените путь обслуживания, запустите те же 3000 объектов времени для завершения операции 20 + секунд.
  • и т. Д.

Мой экземпляр Fiware запускается с помощью команд docker-compose, используемых для Fiware / Mongo:

-dbhost mongo -reqMutexPolicy none -dbPoolSize 100 -logLevel NONE

--nojournal --logappend

Мне нужен совет по этому вопросу, поскольку я не нашел конкретной информации об этом типе проблемы (если я пропустил, просто укажите мне на это). Мне кажется, что с монго что-то странное. Или я ошибаюсь.

{ id: "8B56C6",
type: "DepositPoint",
family: { value: "Agent", type: "String", metadata: {} },
serialNumber: { value: "", type: "String", metadata: {} },
refSortingType: { value: "sortingtype:2", type: "String", metadata: {} },
description: { value: "", type: "String", metadata: {} },
refType: { value: "depositpointtype:0", type: "String", metadata: {} },
storedWasteOrigin: { value: "", type: "String", metadata: {} },
location:
{ value: { type: "Point", coordinates: [Array] },
 type: "geo:json" },
address: { value: "", type: "String", metadata: {} },
fillingLevel: { value: 0, type: "Integer" },
cargoWeight: { value: 0, type: "Integer", metadata: { unit: [Object] } },
temperature: { value: 0, type: "Integer", metadata: { unit: [Object] } },
methaneConcentration: { value: 0, type: "Integer", metadata: { unit: [Object] 
} },
regulation: { value: "Municipal association", type: "String", metadata: {} },
responsible: { value: "", type: "String", metadata: {} },
owner: { value: "Txorierri", type: "String", metadata: {} },
dateServiceStarted: { value: "", type: "String", metadata: {} },
dateLastEmptying: { value: "", type: "String", metadata: {} },
nextActuationDeadline: { value: "", type: "String", metadata: {} },
actuationHours: { value: "", type: "String", metadata: {} },
openingHours: { value: "", type: "String", metadata: {} },
dateLastCleaning: { value: "", type: "String", metadata: {} },
nextCleaningDeadline: { value: "", type: "String", metadata: {} },
refDepositPointIsle: { value: "", type: "String", metadata: {} },
status: { value: "ok", type: "String", metadata: {} },
color: { value: "", type: "String", metadata: {} },
image: { value: "", type: "String", metadata: {} },
annotations: { value: "", type: "String", metadata: {} },
areaServed: { value: "", type: "String", metadata: {} },
dateModified: { value: "", type: "String", metadata: {} },
refDevice: { value: "", type: "String", metadata: {} } }

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

1 Ответ

0 голосов
/ 12 сентября 2018

Я бы избегал Fiware-Service-Path и использовал бы пользовательский атрибут для группировки ваших сущностей.Интересный атрибут, определенный schema.org - это areaServed https://schema.org/areaServed, который можно использовать для этих целей.

...