Доброго вермени суток!
Как я писал ранее не так давно удалось поучавствовать в одном крупном тестированни базы данных NoSQL. Подробности тут. А в этом посте я хотел бы описать что происходило с базой во время чтения.
Чтение файлов из базы
Описание нагрузки на БД: 10:00 – 11:30 старт чтения из базы в 240 потоков
Конфигурация:15 узлов BDA использовались под Oracle NoSQL DB, 3 ноды использовались под сервер приложений
В коде программы использовались следующие настройки:
byte[] bytes = new byte[1024];
2) Consistency на чтение
Consistency.NONE_REQUIRED
Использовалось потому что запись производилась с опцией
Durability.ReplicaAckPolicy.ALL
Consistency.NONE_REQUIRED
Использовалось потому что запись производилась с опцией
Durability.ReplicaAckPolicy.ALL
3) Один поток – один экземпляр Java программы который вычитывает 1 Гб из базы в цикле
Зависимость ввода вывода KB/sec в зависимости от времени для каждого узла (для увеличения кликните на картинку).
IO каждого сервера 450 Mbytes/secСеть загружена равномерно на 3,8 Gbit/sec
CPU на всех узлах нагружено примерно на 20 %.
Выводы:
1)Во время записи файлов нагрузка ложится равномерно на все узлы кластера (IO, Network, CPU) 2)Пропускная способность на чтение 4 Gbytes/sec на одну стойку BDA
Во время максимальной нагрузки:
- IO каждого сервера примерно 450 Mbytes/sec
- Сеть на всех узлах нагружена равномерно на 3,8 Gbit/sec (репликация данных по интерконнекту).
В данном случае используются преимущества Infiniband.
- CPU равномерно загружена на всех узлах кластера на 20%
Комментариев нет:
Отправить комментарий