Проблема производительности WinDraw…

Автор: | 12 марта 2010

30 Сен­тяб­ря 2009 года, когда внед­ре­ние про­грам­мы шло пол­ным ходом, нами была отправ­ле­на про­бле­ма в ком­па­нию Atechnology по пово­ду про­из­во­ди­тель­но­сти про­грам­мы WinDraw. Вот как она выгля­де­ла.

Появи­лась про­бле­ма с про­из­во­ди­тель­но­стью про­грам­мы. А имен­но с рабо­той c SQL сер­ве­ром.
У нас
под SQL сто­ит отдель­ный сер­вер, на нем 14 гигов опе­ра­ти­вы, 10 гигов отда­но для SQL. SQL сер­вер пред­на­зна­чен толь­ко для WinDraw.
При­мер­но за 1.5 неде­ли “съе­да­ет­ся” все 10 гигов памя­ти и не осво­бож­да­ет­ся. Даже когда в про­грам­ме никто не рабо­та­ет (ночью, в выход­ные). Реша­ет­ся пере­за­пус­ком служ­бы SQL сер­ве­ра. Память высво­бож­да­ет­ся и все начи­на­ет “летать”. Если же это­го не сде­лать — начи­на­ют выва­ли­вать­ся дот нетов­ские ошиб­ки OutOfMemory, про­грам­ма рабо­та­ет очень мед­лен­но…

К сожа­ле­нию от раз­ра­бо­чи­ков не после­до­ва­ло ника­кой реак­ции. Про­шло пол-года с того момен­та, и про­бле­ма ста­ла чаще о себе напо­ми­нать. Теперь вся память съе­да­ет­ся быва­ет за два-три дня…

… С само­го нача­ла, еще до внед­ре­ния, мы про­ду­ма­ли схе­му рабо­ты про­грам­мы WinDraw в офи­сах про­даж, в цен­траль­ном офи­се (ЦКУ, ОГО, дилер­ский отдел и т.д) и на про­из­вод­ствен­ном участ­ке. И реше­но было сра­зу настро­ить рабо­ту исполь­зуя два сер­ве­ра — один под базу дан­ных, вто­рой под само при­ло­же­ние, доступ к кото­ро­му предо­став­лять посред­ством Citrix. Так и было сде­ла­но.

Для SQL сер­ве­ра было выбра­но сле­ду­ю­щее “желе­зо”:

  • HP DL380R05 X5450 HPM (Rack2U 2xXeonQC 3.0 Ghz,.…)
  • 14 Гб опе­ра­тив­ной памя­ти
  • 8 * 72Gb 10K SFF SAS 2.5″ HotPlug HDD

Жест­кие дис­ки были объ­еде­не­ны в RAID 5 с одним резерв­ным дис­ком (HotSpare Disk). В каче­стве опе­ра­ци­он­ной сите­мы уста­но­ви­ли Microsoft Windows 2003 R2. В каче­стве сер­ве­ра базы дан­ных уста­но­ви­ли Microsoft SQL Server Enterprise Edition. Рас­пре­де­ле­ние памя­ти настро­и­ли вот так:

Настрой­ка памя­ти на SQL сер­ве­ре

И вот что мы име­ем прак­ти­че­ски посто­ян­но.

Вся память исполь­зу­ет­ся…

Даже когда никто не рабо­та­ет в про­грам­ме память не высво­бож­да­ет­ся, и посте­пен­но про­грам­ма WinDraw начи­на­ет рабо­тать все мед­лен­ней и мед­лен­ней. Реша­ет­ся это пере­за­пус­ком сер­ви­са SQL Server…

Ком­па­ния Atechnology не пред­ло­жи­ла ника­ких реше­ний. И на дан­ный момент мы пока пыта­ем­ся опти­ми­зи­ро­вать раз­лич­ные запро­сы к базе дан­ных, кото­рые исполь­зу­ют­ся для постро­е­ния отче­тов Stimulsoft Reports.Net

Проблема производительности WinDraw…: 9 комментариев

  1. Виталий

    Доб­рый день.
    Под­ска­жи­те, как мож­но с Вами свя­зать­ся?
    Есть пару вопро­сов по WinDraw…

  2. Внедренец

    Све­де­на к мини­му­му… То есть не реше­на. То есть не про­ве­ре­но на серьез­ных объ­е­мах, как я пред­по­ла­гаю. Поэто­му даже верить в это не полу­ча­ет­ся. Одно­знач­но­го отве­та нет, а “све­де­на к мини­му­му” — это несе­рьез­но…

  3. at

    в послед­них вер­си­ях кон­фи­гу­ра­ции дан­ная про­бле­ма све­де­на к мини­му­му, про­сто нуж­но мень­ше юзать функ­ции CLR на сер­ве­ре, и будет все класс­но.

  4. gray_cat_660

    Да. Есть такая про­бле­ма. При­чем про­яв­ля­ет­ся на поиз­вод­стве.. что ино­гда при­но­сит недоб­рые послед­ствия. Дли­тель­ность ожи­да­ния отче­тов выста­вил уже боль­ше 1000… что­бы выво­ди­ло хоть какие то резуль­та­ты)

  5. Tyger

    Да, такая про­бле­ма есть. Про­грам­ма тор­мо­зит нере­аль­но.

  6. Евгений Назаренко

    Доб­рый день!
    Я явля­юсь одним из сотруд­ни­ков ком­па­нии АТех­но­лод­жи и зани­ма­юсь внед­ре­ни­ем ПО на про­из­вод­ствах.
    К сожа­ле­нию лич­но с Вашей ком­па­ни­ей я не зна­ком, но после про­чте­ния дан­но­го поста воз­ник­ло непре­одо­ли­мое жела­ние напи­сать ком­мен­та­рий 🙂
    Зная базо­вые осно­вы .Net мож­но утвер­ждать одно: очист­кой памя­ти и осво­бож­де­ни­ем ресур­сов зани­ма­ет­ся так назы­ва­е­мый “сбор­щик мусо­ра”, кото­рый запус­ка­ет­ся по сло­вам MS в момен­ты про­стоя систе­мы…
    Сле­до­ва­тель­но про­бле­ма боль­ше в самой сре­де Framework, неже­ли в рабо­та­ю­щем ПО. На вскид­ку я бы посо­ве­то­вал Вам обно­вить Net Framework, воз­мож­но про­бле­ма с осво­бож­де­ни­ем неза­ня­тых ресур­сов уже реше­на раз­ра­бот­чи­ка­ми от Microsoft
    С ува­же­ни­ем, Евге­ний!

    1. Внедренец Автор записи

      Такой совет нам уже неод­но­крат­но дава­ли. Net Framework обнов­ля­ли — про­бле­ма оста­лась. Сер­вис паки все постав­ле­ны и на Windows и на SQL. Бол­ле того, есть отдель­ный сер­вер, на кото­ром рабо­та­ет SQL (прав­да 2005 вер­сия), и на нем дру­гая про­грам­ма, (Barsum — логи с теле­фон­ной стан­ции), так на нем днем исполь­зу­ет­ся Боль­ший объ­ем памя­ти, чем ночью, то есть память высво­бож­да­ет­ся…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*