Через appstats я вижу, что мои запросы к хранилищу данных занимают около 125 мс (вместе с api и cpu), но часто перед выполнением запросов часто возникают длительные задержки (например, до 12000 мс).
Я вижу, что моя задержка из хранилища данных не связана с моим запросом (например, один и тот же запрос/данные имеют значительно разные задержки), поэтому я предполагаю, что это проблема планирования с движком приложения.
Другие люди видят эту проблему?
Есть ли способ уменьшить задержку (например, настройки консоли администратора)?
Вот скриншот из appstats. У этого сервлета очень мало обработки процессора. Он выполняет getObjectByID, а затем выполняет запрос хранилища данных. Запрос имеет оператор OR, поэтому он преобразуется в 3 запроса с помощью механизма приложения.
,
Как вы можете видеть, он занимает 6000 мс до того, как будет запущен первый getObjectByID. Перед операцией get нет обработки (кроме получения pm). Я думал, что эта задержка в 6000 мс может быть вызвана разминкой экземпляра, поэтому я увеличил количество незанятых экземпляров до 2, чтобы предотвратить разминки.
Затем возникает вторая латентность вокруг 1000 мс между getObjectByID и запросом. Там нулевые строки кода между get и запросом. Код просто берет результат getObjectByID и использует данные как часть запроса.
Общая сумма составляет 8097 мс, но мои операции с хранилищем данных (и 99,99% сервлета) составляют всего 514 мс (45 мс api), хотя числа меняются каждый раз, когда я запускаю сервлет. Вот еще один скриншот appstats, который был запущен на том же сервлете, что и те же данные.
Вот основы моего кода Java. Мне пришлось удалить некоторые детали в целях безопасности.
user = pm.getObjectById(User.class, userKey);
//build queryBuilder.append(...
final Query query = pm.newQuery(UserAccount.class,queryBuilder.toString());
query.setOrdering("rating descending");
query.executeWithArray(args);
Отредактировано:
Используя Pingdom, я вижу, что задержка GAE варьируется от 450 мс до 7,399 мс, или от 1,644%! Это с двумя незанятыми экземплярами и без пользователей на сайте.