Один из наших соратников - Макс Кудряшов - поделился тестами такой реализации на промышленной базе:
Cравнили производительность RAM-диска и обычной дисковой полки. Результаты очень положительные: пересчет модели упал с 4.5 - 6 часов (в зависимости от нагрузки) до 2 часов ровно (причем буквально с точностью до пары секунд каждый раз). Даже учитывая, что практически весь пересчет идет в один поток, количество потребляемых IOPS доходило до 10K (но в основном 2-5K). Так что совсем не удивительно, что обычная полка не справляется - она в пике выдавала только под 400.
Есть конечно расчеты, которые слабо зависят от диска (в основном с использованием CREATENONMISSINGBLK ON), но агрегации и копирования данных просто летают.
Приложен график (в центре провал - было не оптимально написано правило).
Софт для создания RAM Disk - Primo Ramdisk
Параметры куба Essbase: BSO, Buffered I/O Access Mode, RLE Data Compression
Объем данных в кубе - 70 ГБ, индексный файл - 3ГБ
Антон,
ОтветитьУдалитьНе забывайте учесть что «RAM Drive» в ОЗУ - это ЭНЕРГОЗАВИСИМАЯ память. Поэтому при его использовании даже плановая перезагрузка сервера превращается из штатной операции в приключения. А при нештатной ситуации (зависла ОС, случайно перегрузили, уборщица/админ в серверной задели кабель питания, короткое замыкание в автомате, в здании выключили электричество, а в ИБП батареи не менялись 5 лет и через 10 мин сдохли т.д. – тысячи их) потеряются данные. Т.о. чтобы использовать это решение в промышленной среде нужны очень крепкие нервы и регулярный бэкап.
Виктор
П.С. Был бы пересчет не в один поток полка показала бы совсем другие цифры.
Виктор, если Менеджмент требует "скорости" и готов доплатить за память и нормальный ИБП, а ИТ департамент может это реализовать, почему - нет? Естественно, требования к бесперебойности питания сервера должны быть ужесточены. К тому же, современный софт для создания RAM Disk-ов позволяет регулярно сваливать данные на винчестер, а также привязываться к действиям ОС. При выключении потребуется прервать все расчеты, свалить данные (образ) на винчестер, а при загрузке - вернуть все на место.
ОтветитьУдалитьБезусловно, от реализации правил в модели многое зависит. В данном случае была возможность провести эксперимент на ПРОМЫШЛЕННОЙ базе с такой реализацией.
Или у Вас есть доступ к EXALYTICS?
Антон, добрый день!
УдалитьЕсть интерес провести тестирование на Exalytics, что бы иметь практический пример ее применения. Не хотите объединить усилия? Наше железо..ваши кейсы))
Сергей
buterin@yandex.ru
Если памяти много, почему не использовать для тех же целей стандартный функционал Essbase, а именно data file cache?
ОтветитьУдалитьЯрослав
Data file cache требует direct I/O. В 7-й версии у меня были с этой опцией проблемы. С тех пор я ее не испытывал на продакшнах. Про это уже много написано, например: http://goo.gl/CCXBC
Удалить