Быстродействие в веб-приложениях

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
amnesiac
Активный участник
Сообщения: 244
Зарегистрирован: 03 мар 2015, 10:01
Репутация: 24
Откуда: Санкт-Петербург

Быстродействие в веб-приложениях

Сообщение amnesiac » 01 июн 2015, 17:30

Добрый день!

Прошу совета у тех, кто встречался с конструированием веб-приложений во вьюерах. Сделала приложение с помощью Viewer for Flex, пока было мало слоев, все работало нормально, когда добавила туда больше сервисов, стало сильно тормозить. Кэширование помогает слабо.
Подскажите, пожалуйста, что влияет на быстродействие приложений на flex? и как его увеличить?
Имеет ли значение, где находится БД (у меня - на сетевом диске), из которой сервисы берут данные, а также тип БД (у меня обычная файловая, и вроде бы на ней должно работать быстрее, чем на ArcSDE)?

Vaska72
Интересующийся
Сообщения: 26
Зарегистрирован: 03 янв 2012, 18:49
Репутация: 13
Откуда: Тюмень

Re: Быстродействие в веб-приложениях

Сообщение Vaska72 » 01 июн 2015, 17:57

Больше всего на быстродействие влияет оформление и кол-во объектов. Чем сложнее условное обозначение, чем больше объектов на карте отображается одновременно, чем больше надписей, тем меньше быстродействие. Нужно попробовать оптимизировать карту: задать масштабы отображения для слоев и для подписей, по возможности упростить условные обозначения.
Есть хороший инструмент Mxdperfstat. С его помощью можно посмотреть какие слои и почему долго отрисовываются в ArcMap. Они же будут медленно работать и в веб-сервисах.

Хотя если и кэширование не помогает, то возможно проблема в самом сервере.

Andrey Zhukov
Гуру
Сообщения: 838
Зарегистрирован: 10 дек 2009, 23:24
Репутация: 169
Ваше звание: старик-гисовик
Откуда: Москва
Контактная информация:

Re: Быстродействие в веб-приложениях

Сообщение Andrey Zhukov » 01 июн 2015, 17:59

А сколько слоев в приложении используются?

amnesiac
Активный участник
Сообщения: 244
Зарегистрирован: 03 мар 2015, 10:01
Репутация: 24
Откуда: Санкт-Петербург

Re: Быстродействие в веб-приложениях

Сообщение amnesiac » 01 июн 2015, 18:23

Vaska72 писал(а):Больше всего на быстродействие влияет оформление и кол-во объектов. Чем сложнее условное обозначение, чем больше объектов на карте отображается одновременно, чем больше надписей, тем меньше быстродействие.
По идее для некэшированных сервисов я использовала самые простые обозначения (немногослойные и обычные маркеры). Масштабируется карта только в тех масштабах, которые заданы кэшированной подложке. Или сервисам все равно надо прописывать те же фиксированные масштабы?
А какая проблема может быть в сервере? Вроде все устанавливали по инструкциям, железо достаточно мощное. Правда у нас нет отдельного сервера под ГИС-сервер, БД и приложение, все находится на разных жестких дисках одного сервера.
Спасибо за ссылку, попробую.
Andrey Zhukov писал(а):А сколько слоев в приложении используются?
9 составных слоев, в которых от 1 до 6 дочерних. Но тормозить начало только сегодня, когда я добавила очередной составной слой (на рисунке)
Вложения
слои.jpg
слои.jpg (35.39 КБ) 12484 просмотра

Аватара пользователя
jerry-maori
Гуру
Сообщения: 585
Зарегистрирован: 22 авг 2012, 17:02
Репутация: 143
Откуда: Нижний Новгород

Re: Быстродействие в веб-приложениях

Сообщение jerry-maori » 01 июн 2015, 18:37

Для начала посмотреть по монитору ресурсов, кто крыса... в смысле есть ли прям явный затык (типа кол-ва операций чтения-записи на винт, скачкообразный рост потребления оперативы в какой то момент)...
Если, например, БД лежит на RAID5, то могут быть затыки при большом кол-ве запросов (5-ка не любит на себе БД).

amnesiac
Активный участник
Сообщения: 244
Зарегистрирован: 03 мар 2015, 10:01
Репутация: 24
Откуда: Санкт-Петербург

Re: Быстродействие в веб-приложениях

Сообщение amnesiac » 01 июн 2015, 19:05

jerry-maori писал(а):Для начала посмотреть по монитору ресурсов, кто крыса... в смысле есть ли прям явный затык (типа кол-ва операций чтения-записи на винт, скачкообразный рост потребления оперативы в какой то момент)...
Если, например, БД лежит на RAID5, то могут быть затыки при большом кол-ве запросов (5-ка не любит на себе БД).
спасибо, посмотрю!
а стоит попробовать низкую изоляцию процессов для сервисов или не может быть в этом дело? я думала, что у нас довольно мощный сервер, и поставила высокую

Аватара пользователя
jerry-maori
Гуру
Сообщения: 585
Зарегистрирован: 22 авг 2012, 17:02
Репутация: 143
Откуда: Нижний Новгород

Re: Быстродействие в веб-приложениях

Сообщение jerry-maori » 01 июн 2015, 19:09

Окай, каков конфиг сервера:
1. Процессор
2. Оператиная память
3. Как организована дисковая подсистема
4. Что ещё крутится на нём, кроме ArcGIS Server

Vaska72
Интересующийся
Сообщения: 26
Зарегистрирован: 03 янв 2012, 18:49
Репутация: 13
Откуда: Тюмень

Re: Быстродействие в веб-приложениях

Сообщение Vaska72 » 01 июн 2015, 21:25

amnesiac писал(а):Но тормозить начало только сегодня, когда я добавила очередной составной слой (на рисунке)
Значит надо попробовать убрать все остальные сервисы из приложения и посмотреть будет тормозить или нет. Тогда будет понятно дело в этом сервисе или в чем-то другом.
amnesiac писал(а):Масштабируется карта только в тех масштабах, которые заданы кэшированной подложке. Или сервисам все равно надо прописывать те же фиксированные масштабы?
Я имел ввиду попробовать по возможности ограничить масштабы для некоторых слоев и подписей. Например, показывать реки начиная с масштаба 1:1 000 000, а подписи рек с 1:500 000. Так и количество объектов на карте уменьшится, и читаемость карты повысится.

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

amnesiac
Активный участник
Сообщения: 244
Зарегистрирован: 03 мар 2015, 10:01
Репутация: 24
Откуда: Санкт-Петербург

Re: Быстродействие в веб-приложениях

Сообщение amnesiac » 02 июн 2015, 10:07

jerry-maori писал(а):Окай, каков конфиг сервера:
1. Процессор
2. Оператиная память
3. Как организована дисковая подсистема
4. Что ещё крутится на нём, кроме ArcGIS Server
1. Intel Xeon x5690, 2 штуки
2. 192 Гб
3. 8 жестких дисков в RAID5 (выше вы писали, что дело в том, что БД на RAID5 не оч хорошо, может в этом дело?)
4. Кроме ArcGIS Server на нем установлены программы, выполняющие объемные процедурные и графические вычисления, но сейчас, когда проверяли приложение, ничего задействовано из этого не было - все равно тормозит

Системный монитор скачков памяти никаких не выдает

Аватара пользователя
jerry-maori
Гуру
Сообщения: 585
Зарегистрирован: 22 авг 2012, 17:02
Репутация: 143
Откуда: Нижний Новгород

Re: Быстродействие в веб-приложениях

Сообщение jerry-maori » 02 июн 2015, 10:39

ну железки толстые, не должно тупить...
А можно запустить ваше приложение и параллельно запустить монитор ресурсов... И начать приложение дёргать до того момента, как оно тормозить начинает... И посмотреть, что с ресурсопотреблением в этот момент случается?
В частности -- нагрузка на проц, скорость чтения/записи в винта ну и скорость сетевого обмена...

Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 203
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: Быстродействие в веб-приложениях

Сообщение SergeyRyzhkov » 02 июн 2015, 10:49

1. БД на сетевом диске, не там где арк-сервер ? Это не хорошо...
2. Файловая БД не факт что быстрее, чем работать с БД. Может как раз в этом (в совокупности с п 1) и причина, gbd по размеру большая получилась ?
ArcSDE (я же Вам объяснял :) - это просто прослойка, она тут вообще не причем)

А так jerry-maori, Вам правильно посоветовал. Только таким путем можно выявить ...

ЗЫ: Все-таки на умершем флексе остались ?

amnesiac
Активный участник
Сообщения: 244
Зарегистрирован: 03 мар 2015, 10:01
Репутация: 24
Откуда: Санкт-Петербург

Re: Быстродействие в веб-приложениях

Сообщение amnesiac » 02 июн 2015, 11:16

jerry-maori писал(а): А можно запустить ваше приложение и параллельно запустить монитор ресурсов...
Спасибо за совет, попробую! Пока знаю тока, что память на него никак не реагирует
Vaska72 писал(а): Значит надо попробовать убрать все остальные сервисы из приложения и посмотреть будет тормозить или нет. Тогда будет понятно дело в этом сервисе или в чем-то другом.
убрала все остальное, проблема в этом сервисе, но не пойму, в чем она заключается - может в количестве объектов в одном из слоев - там есть на 47 с лишним тыс. объектов, тогда как остальные - на 2-5-7 тыс.

Из предупреждений - только пути UNC и прозрачность некоторых слоев (но ее хотелось бы сохранить для функциональности). С координатами и выборками все ок. А вот насчет отображения - не могу придумать, что еще можно оптимизировать...подписи все в топооснову зашиты, масштаб - 1:250 000 и крупнее, объекты имеют разные атрибуты, но классифицировать их как-то сложно, если тока искусственную классификацию вводить по площади, например...но хотелось бы не тратить на это время, если можно как-то обойти проблему быстродействия
Можно ли вообще избежать создания составного из большого слоя при таком количестве объектов или не получится?
SergeyRyzhkov писал(а):1. БД на сетевом диске, не там где арк-сервер ? Это не хорошо...
2. Файловая БД не факт что быстрее, чем работать с БД. Может как раз в этом (в совокупности с п 1) и причина, gbd по размеру большая получилась ?
ArcSDE (я же Вам объяснял :) - это просто прослойка, она тут вообще не причем)

А так jerry-maori, Вам правильно посоветовал. Только таким путем можно выявить ...

ЗЫ: Все-таки на умершем флексе остались ?
1. БД не там же, да. То есть на этом же сервере, но на другом жестком диске RAID массива. Если это может быть причиной, будем переделывать конфигурацию. А как в идеале должно быть?
2. Насчет этого не буду спорить, потому что не очень помню, но мне кажется, где-то в документации аркгисовской читала, что с БГД вроде как быстрее будет, и лучше ее, если не требуется функционал СУБД. По размеру она составляет 666 Мб (я серьезно). Может причина в основном в этом? :twisted:

На флексе - решение временное, конечно. Решила поступить, как Вы советовали - отдать промежуточную версию на обратную связь пользователю, а в это время прокачать матчасть по leaflet. Но времени катастрофически не хватает

Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 203
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: Быстродействие в веб-приложениях

Сообщение SergeyRyzhkov » 02 июн 2015, 11:25

amnesiac
Вы правильно начали поступать.

1. Локализовать проблемный сервис. У меня такое было, когда слой ЗОРИ подключал, ну очень тормозит он. Плюс его еще и классифицировали.
Хотя тот же слой adres (130 тыщ) или parcel (120 тыщ) намного больше по размеру, но не оказывают влияние на быстродействие.
Я делал (давным давно) генерализацию данного слоя (естественно при вычислениях использовал копию) - немного стало легче.

2. Вы уверены что тормоза именно на сервере? Вы попробуйте в аркмапе тоже тормоза (если поиграться с включением\выключением сервисов) ? Порой же бывает что клиент не может переварить рендеринг (тем более флекс).

3. Насчет файловой и СУБД. Тут очень все относительно. У Вас же винда, а ей трудно порой работать с файлами :),
Положите гбд рядом с серваком, без всяких путей, других дисков и т.д. Посмотрите.

Andrey Zhukov
Гуру
Сообщения: 838
Зарегистрирован: 10 дек 2009, 23:24
Репутация: 169
Ваше звание: старик-гисовик
Откуда: Москва
Контактная информация:

Re: Быстродействие в веб-приложениях

Сообщение Andrey Zhukov » 02 июн 2015, 11:31

Рендер сервиса с файловой базы геоданных всегда быстрее.

Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 203
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: Быстродействие в веб-приложениях

Сообщение SergeyRyzhkov » 02 июн 2015, 11:49

Andrey Zhukov писал(а):Рендер сервиса с файловой базы геоданных всегда быстрее.
Не согласен со столь категоричным заявлением.
Много лет назад один всего слой, состоящий из 800 тыщ объектов, пришлось "затащить" в Oracle нормализовать, построить материализованную вьюху, построить индексы и т.д., так как в ФГБД ну очень тормозила, а БД спасла в какой-то мере. Возможно в тот момент что-то не так делал, конечно.

Но спорить не буду, нет уже возможности (и желания) провести эксперимент и аргументировать свое заявление :)

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость