gsrvr жрет всю память

0 голосов
спросил 08 Фев, 07 от Kovalenko (1,020 баллов) в категории Программные продукты Esri
Сервер 4 проца optirona 16 гигов памяти. Написано приложение под гиссервер, которое закладывает данные в sde. После запуска gsrvr  начинает постепенно забирать под себя память и так до тех пор пока не не появится ошибка out of system memory. Объекты выкладываются по одному и через один контекст сервера. Сам sde стоит под oracle 10g. Как можно бороться с этим?

17 Ответы

0 голосов
ответил 08 Фев, 07 от Grigoriy (127,020 баллов)
Видимо не правильно выкладываются объекты. А без приложения под гиссервер загружать не пробовали?
0 голосов
ответил 09 Фев, 07 от Kovalenko (1,020 баллов)
    Да нет объекты выкладываются правильно. Причем если выкладывать объекты таким образом, что при вкладывании каждого нового объекта делать реконект к серверу, то все работает нормально. Gsrvr создается и сразу после реконекта пропадает. Но этот вариант не подходит, так как много времни уходит на установление нового соединения. Заметил еще одну странную вещь, при конекте с нескольких машин создается такоже количество gsrvr? но память жрет только один.
0 голосов
ответил 09 Фев, 07 от Grigoriy (127,020 баллов)
Сервис в гиссервере pooled or not pooled?
0 голосов
ответил 09 Фев, 07 от PITKS1 (20,860 баллов)
Используйте direct connect к SDE. И быстрее будет и памяти отжирать некому будет.
0 голосов
ответил 09 Фев, 07 от Grigoriy (127,020 баллов)
Да серверу будет легче, только при direct connect процесс Gsrvr будет выполняться на клиенте, где будет жрать тоже самое количество памяти image.
0 голосов
ответил 09 Фев, 07 от PITKS1 (20,860 баллов)
Бррр. С каких пор ??? Все запросы пойдут через вызовы в gsrvroraxxxx.dll и sdeoraxxxx.dll. А процесса gsrvr.exe и в помине не будет. В ArcGIS Desktop (Server) даже файла такого нету.
0 голосов
ответил 10 Фев, 07 от Grigoriy (127,020 баллов)
Да отдельно его в списке процессов не будет. Но gsrvroraxxxx.dll или sdeoraxxxx.dll где по Вашему будут выполнять свою работу? И если gsrvr на серваке жрет память, то скорее всего, то же самое будет и при использовании direct connect, но только на клиенте.
0 голосов
ответил 10 Фев, 07 от PITKS1 (20,860 баллов)
gsrvr.exe жрет память потому как он открывает приемо-передающие буфера при открытии нового потока. Если по какой-то причине поток не был правильно закрыт - буфер может оставаться в памяти. Это давно (с 8.0) известная проблема и время от времени она вылазит снова в разных релизах под разные платформы.

При direct connect такие буфера не открываются на клиенте, потому и расти будет нечему.

У 9.2 AGS есть свои проблемы с памятью (memory leak в ArcSOC.EXE) но это уже из другой оперы.
0 голосов
ответил 12 Фев, 07 от Peps (5,330 баллов)
    А какая разница какой тип сервера? И каки е рекомендации от ESRI?
0 голосов
ответил 12 Фев, 07 от Peps (5,330 баллов)
   Проверил у себя, выходит таже хрень. При конекте что к пуловому, что не пуловуму серверу. Память жрется, полигоны создаются через ifeature в фиче класе и потом делается операция store. При этом правда сесии редкатирования не открываю, да это и не нужно при работе через гиссервер
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...