Тестирование производительности OrientDB отключить кеш

Я написал несколько тестов производительности для встроенной базы данных orientdb v1.7.7.

Один и тот же запрос выполняется несколько раз. Первое выполнение запроса занимает некоторое время, но последующие выполнения выполняются намного быстрее.

Я предполагаю, что OrientDB кэширует много вещей. Поэтому я хочу отключить кеш.

В документации по кэшированию orientdb говорится, что:

OGlobalConfiguration.CACHE_LOCAL_ENABLED.setValue(false);

Мне пришлось адаптировать этот код, поскольку этого свойства конфигурации не существует, поэтому я написал:

OGlobalConfiguration.CACHE_LEVEL1_ENABLED.setValue(false);
OGlobalConfiguration.CACHE_LEVEL2_ENABLED.setValue(false);

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


person gontard    schedule 07.08.2014    source источник


Ответы (1)


Это связано с тем, что DiskCache. Посмотрите на это как на замену отображения памяти операционной системы. Он обрабатывает загрузку/сохранение страниц из оперативной памяти на диск:

https://github.com/orientechnologies/orientdb/wiki/local-storage-disk-cache

Вы можете изменить его, установив глобальную конфигурацию «DISK_CACHE_SIZE» с размером, который вы хотите выделить в МБ. Сделайте это, прежде чем использовать OrientDB:

OGlobalConfiguration.DISK_CACHE_SIZE.setValue( 1000 ); // 1GB 

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

person Lvca    schedule 07.08.2014
comment
Спасибо, Лука. Можно ли его отключить? - person gontard; 07.08.2014
comment
Вы можете уменьшить его: OGlobalConfiguration.DISK_CACHE_PAGE_SIZE.setValue(‹size_in_mb›) - person Lvca; 07.08.2014
comment
Из кода: DISK_CACHE_PAGE_SIZE(storage.diskCache.pageSize, Размер страницы дискового буфера в килобайтах,!!! НИКОГДА НЕ МЕНЯЙТЕ ЭТО ЗНАЧЕНИЕ !!!, Integer.class, 64)? - person gontard; 07.08.2014
comment
Извините, я имел в виду: DISK_CACHE_SIZE - person Lvca; 07.08.2014
comment
Хорошо, я попробую это. Может быть, вы могли бы добавить это к своему ответу. Спасибо еще раз. - person gontard; 07.08.2014