Как подчеркнуть тестовое хранилище google с javascript?

Нам нужно проверить нашу инфраструктуру на устойчивость (до сотен тысяч запросов в секунду), а один из элементов в архитектуре - это хранилище данных Google Cloud. Один из тестов, который мне нужно выполнить, - это сколько объектов можно записать за секунду.

Ниже приведен пример кода здесь от Google, чтобы вставлять и перечислять элементы, но я нахожу, что это медленная запись одного объекта (одного или две секунды на вставку), даже паралелизуя их в bash script, требуется довольно много времени, как вне инфраструктуры, так и внутри.

Есть ли способ проверить хранилище данных, где тысячи запросов могут отправляться в секунду? Предпочтительно в javascript.

Я сам не программист javascript, поэтому приношу извинения, если этот вопрос встречается как немного очевиден - я надеюсь, что нет.

Ответ 1

Cloud Datastore предназначен для одновременного обслуживания всех приложений GAE и даже приложений вне GAE или даже вне облака Google. Поэтому ИМХО, проверяющее производительность самого хранилища, является беспредметным, если вы уважаете опубликованный Limits - скорее всего, вы будете только чтобы проверить глубину ваших карманов в процессе. Просто чтобы получить представление: Есть ли какое-либо SLA для облачного хранилища Google?

Тестирование производительности вашего приложения с использованием хранилища данных - совсем другое дело. Это зависит от вашей реализации приложения, структуры и отношений ваших объектов и т.д. Это то, на что вы хотите сосредоточиться. Но это тестирование вашего приложения, а не самого хранилища данных.

Вы можете посмотреть:

Ответ 2

Вы можете посмотреть на это:

https://artillery.io/

Вы можете установить его через Nodejs и запустить ваши запросы, выбрав целевой URL через yml файл следующим образом:

    config:   
    target: 'https://artillery.io'   
    phases:
        - duration: 60
          arrivalRate: 20   
    defaults:
        headers:
          x-my-service-auth: '987401838271002188298567' 
    scenarios:
      - flow:
        - get:
            url: "/docs"

Вы можете запустить приведенный выше код через следующее:

artillery run hello.yml 

Вы можете получить более подробную информацию об этой библиотеке javascript по этой ссылке:

https://artillery.io/docs/getting-started/#run-a-quick-test

Ответ 3

Рад, что вы используете Google Datastore (GDS).

Лучший способ протестировать бэкэнд с помощью Apache JMeter с экземпляром сервера с ручным модулем (в настоящее время службы).

Не зная о вашей модели хранилища данных, GDS может сохранять одну сущность в секунду в группе сущностей. Тем не менее, вы можете увеличить пропускную способность GDS с помощью метода очередности агрегации заданий. В настоящее время достигнуто до 300 запросов в секунду за сохранение.