Имя: Пароль:
1C
1С v8
v8: rphost жрёт память
,
0 AnisaL
 
13.03.13
14:26
Ребята! Помогите, rphost растет на глазах - за 30 минут уже 1.2 ГБ, и дальше жрет. Спасите!что может быть?
88 djekting
 
14.03.13
09:10
(83) а нагрузка на проц какая7 база отдельно или на этом же компе7
89 Галахад
 
гуру
14.03.13
09:10
(83) А сколько свободно-то?
И какие роли у сервера?
90 Живой Ископаемый
 
14.03.13
09:12
2(83) А как ты определяешь? вот например я опер==ределя что мне ее не сильно хватает, хотя всего памяти 12 Гиг, из них свободных только 33 Мб, поэтому если какой-то процесс затребует больше, например 100 Мб, операциооной системе придется или освободить кэш, или сбросить что-то в своп, то есть требование процесса не будет исполненно мгновенно, и процесс ощутит "торможение"

http://screencast.com/t/mGLDv5H7c63g
91 AnisaL
 
14.03.13
09:19
Скажите, какие свойства у рабочего сервера должны быть?
92 Sammo
 
14.03.13
09:20
(91) Что еще кроме 1с на сервере? Терминал, контроллер домена, sql сервер, почтовый сервер...
93 AnisaL
 
14.03.13
09:29
ребят, спасайте( что-то я наделала с добавлением раб.процесса, теперь сервер 1с не открывается(((
94 MrStomak
 
14.03.13
09:31
перезапускай агент
95 Maxus43
 
14.03.13
09:31
(93) скрин окошка с процессами в студию, со столбцом использование
96 Галахад
 
гуру
14.03.13
09:34
(93) Пользователи-то могут работать?
97 AnisaL
 
14.03.13
09:34
(94) спасибо, помогло))
98 AnisaL
 
14.03.13
09:35
(87) да, на одном сервере и скл сервер и база
99 Sammo
 
14.03.13
09:38
Как обычно ответ к концу первой сотни.
1. Ограничивайте скуль размерами используемой памяти
2. Смотрите не общий размер памяти, а свободной.
100 AnisaL
 
14.03.13
09:44
(99) скуль ограничен - 10240
101 AnisaL
 
14.03.13
09:44
(96) могут
102 Sorm
 
14.03.13
09:45
(0) сц.... он!
103 AnisaL
 
14.03.13
09:48
(89) а где эти роли посмотреть?
104 Галахад
 
гуру
14.03.13
09:48
(100) Странно.
SQL - 10000
Win - 1500
rphost -1500

А где остальное? 3 Гб.
105 Sammo
 
14.03.13
09:49
16 памяти, минус 10 на скуль, минус гиг (или 2) на системные шняжки.
Остается порядка 4 на 1с. И это оптимистичная точка зрения. Так?
Сколько _свободной_ памяти на сервере?
106 rphosts
 
14.03.13
09:57
(90) 2 ядра на сервере? а что так мало?
107 rphosts
 
14.03.13
09:58
(0) в настройках имени меня указан предельный размер памяти на процесс?
108 rphosts
 
14.03.13
09:59
напомните плиз с прошлой ветки или когда там оно было: win7-32 можно заставить юзать 4Г?
109 rphosts
 
14.03.13
10:02
кста, проагрейдился... новая мамка, новый большой винт под всякое файло, память *4, системный винт SSD.... офис 2007 устанавливался менее минуты, 1С пока не запускал (только пару релизов платформы проинсталил (для разных целей нужны разные версии))!
110 rphosts
 
14.03.13
10:02
извиняюсь, (108), (109) не туда запостил
111 Оболтус
 
14.03.13
10:04
Надо проверить есть ли свободное место. SQL может и немного больше 10 отъесть, даже если ограничен.
112 Оболтус
 
14.03.13
10:05
*свободное место в памяти.
113 AnisaL
 
14.03.13
10:12
(105) может скриншот скинуть диспетчера задач?
114 AnisaL
 
14.03.13
10:14
Физ. память
Всего - 16075
Кэшировано - 1144
Доступно - 9268
Свободно - 8170
115 rphosts
 
14.03.13
10:21
(114) а остальные ресурсы как? Как там с загрузкой проца?
116 AnisaL
 
14.03.13
10:23
117 rphosts
 
14.03.13
10:25
(116) как-бэ вроде всем всего должно хватать... может действительно платформу до последней обновить?
118 rphosts
 
14.03.13
10:26
конфа типовая или как?
119 AnisaL
 
14.03.13
10:26
(117) конфа нетиповая, причем значительно
120 Sammo
 
14.03.13
10:29
Надо смотреть память в момент тормозов.
121 Джинн
 
14.03.13
10:36
(69) Вы имеете удачный опыт исправления утечек памяти сервера приложений? Вы разработчик из 1С?
122 rphosts
 
14.03.13
10:39
(119) ээээ, а вы точно уверены в том что там не такой код, который любой сервер повесит?
123 Sammo
 
14.03.13
10:42
(121) По моему опыту большая часть случаев утечек памяти в 8.1.15.14 была связана с кодом - циклические ссылки, например.
124 AnisaL
 
14.03.13
10:50
(122) Напиши примеры такого кода
125 rphosts
 
14.03.13
10:54
(124) например запрос в цикле
126 rphosts
 
14.03.13
10:54
или автоматические блокировки
127 rphosts
 
14.03.13
10:57
(126) хотя по блокировкам действительно часто хватает автоматических.

но с учётом утечек памяти действительно похоже на циклические ссылки
128 Живой Ископаемый
 
14.03.13
11:23
2(121) я имею удачный опыт использования 8.1.15 64 бит без утечек.
129 Живой Ископаемый
 
14.03.13
11:24
То есть тут нет никаких утечек. 64 битный rphost съел 2 Гига памяти, далеко до экстремальных значений, почему он подпадает под опалу вообще непонятно.. из-за вашего неудачного опыта?
130 AnisaL
 
14.03.13
12:33
Вообщем все дело в одной кнопке Сброс, по которой выводится весь список документов, начиная с 2010 года (около 30тыс доков), при этом еще подсчитывается их количество в запросе, и плюсом раскрашивается ко каждому столбику
131 AnisaL
 
14.03.13
12:35
запрос = новый запрос;
запрос.Текст = "Выбрать * из документ.заявкаНаряд";
результат = запрос.Выполнить().Выбрать();
количество = результат.Количество();
Время выполнения запроса (через замер производительности) - 10,6 сек (73%)
132 AnisaL
 
14.03.13
12:37
После нажатия этой кнопки, 1с долго думает, а если постоянно ее нажимать (а так и происходит) - все виснет
133 AnisaL
 
14.03.13
12:41
Подскажите, а можно количество документов по-другому посчитать?
134 IKSparrow
 
14.03.13
12:43
У нас, не смотря на ограничения в консоли сервера 1С, rphost сжирает до 64 гигов свободной памяти на сервере. При обмене. Что за фигня - пока не анализировали. Но почему штатные ограничения не работают - не понятно. Движок 16.368 х64
135 МишельЛагранж
 
14.03.13
12:45
(133) запросом и считатайте.
А 30 тыс документов за раз - это очень много для 1С. Непреподъмно. Разбейте на блоки.
136 Sammo
 
14.03.13
12:45
(133) Выбрать количество(ссылка) Не?
137 МишельЛагранж
 
14.03.13
12:46
*считайте и *непреподъемно
138 Sorm
 
14.03.13
12:46
"Выбрать * из документ.заявкаНаряд" - что ж так мучить SQL? Хоть поля поставьте...
139 arsik
 
гуру
14.03.13
12:47
(133)
ВЫБРАТЬ
   КОЛИЧЕСТВО(АктТехническогоОсмотра.Ссылка) КАК Ссылка
ИЗ
   Документ.АктТехническогоОсмотра КАК АктТехническогоОсмотра
140 МишельЛагранж
 
14.03.13
12:47
(131) и укажите конкретно, какие поля нужны - а то вот это:
""Выбрать * из документ.заявкаНаряд""
Тащит столько, что все может потушить. Это ж 1С, там оптимизация только снится (даже не ращ\зработчикам - те вообще не знают такого слова).
141 чувак
 
14.03.13
12:48
(0) rphost вызывает доброжука заранее, завтра пятница, надо готовится :)
142 МишельЛагранж
 
14.03.13
12:49
(138)"что ж так мучить SQL?"
Уж кого и мучают - это совершенно не пригодную для обработки данных 1С. А SQL - что ему, он и не такие объемы переваривает...
Оракл знаете, сколько "тащит" одномоментно? Так вот, SQL - 2\3 от этого выдюжит.
143 arsik
 
гуру
14.03.13
12:49
(133) Так точнее

ВЫБРАТЬ
   КОЛИЧЕСТВО(АктТехническогоОсмотра.Ссылка) КАК КоличествоДокументов
ИЗ
   Документ.АктТехническогоОсмотра КАК АктТехническогоОсмотра

результат = запрос.Выполнить().Выбрать();
Если результат.Следующий() тогда
количество = результат.КоличествоДокументов;
144 AnisaL
 
14.03.13
12:51
(143) Спасибо, щас попробую
145 AnisaL
 
14.03.13
12:52
(143) блин, простите, я забыла что дальше еще подсчитываются выполненные и в работе заявки
запрос = новый запрос;
запрос.Текст = "Выбрать * из документ.заявкаНаряд";
результат = запрос.Выполнить().Выбрать();
количество = результат.Количество();
   элементыформы.Надпись5.Значение = строка(количество);
   вып= 0;
   враб = 0;
   пока результат.Следующий() цикл
       если результат.статус = перечисления.СтатусЗаявки.ВРаботе тогда
           враб = враб+1;
       конецЕсли;
       если результат.статус = перечисления.СтатусЗаявки.Выполнена тогда
           вып = вып+1;
       конецЕсли;        
   конецЦикла;
146 rphosts
 
14.03.13
12:53
(141) Вот только спугни Доброжука!!!  2 пятницы подряд без Доброжука это жёстко!!!!
147 AnisaL
 
14.03.13
12:53
(146) вы про что?
148 Demiurg
 
14.03.13
12:54
коллеги из самой 1с рекомендуют 18й релиз как менее кушающий память
149 Галахад
 
гуру
14.03.13
12:55
ВЫБРАТЬ
   КОЛИЧЕСТВО(АктТехническогоОсмотра.Ссылка) КАК КоличествоДокументов
ИЗ
   Документ.АктТехническогоОсмотра КАК АктТехническогоОсмотра

где АктТехническогоОсмотраю.Статус = &ВРаботе
150 rphosts
 
14.03.13
12:56
(145)
что-то типа
ВЫБРАТЬ
   КОЛИЧЕСТВО(АктТехническогоОсмотра.Ссылка) КАК КоличествоДокументов,
Сумма(Выбор
  Когда АктТехническогоОсмотра.Статус = Значение(перечисления.СтатусЗаявки.ВРаботе) Тогда 1
  Иначе 0
Конец) КАК ЗаявокВРаботе
ИЗ бла-бла-бла
151 AnisaL
 
14.03.13
12:56
(148) 8.1 платформы?
152 rphosts
 
14.03.13
12:57
(148) тут проблема в чудных запросах и разборе результата в цикле...
153 AnisaL
 
14.03.13
12:57
Всем сказала эту кнопку не нажимать) хост пока держится 230Мб
154 rphosts
 
14.03.13
12:58
(147) это мы про светлое завтра
155 rphosts
 
14.03.13
12:58
(153) запрос доделайте в сторону (150) и пусть хоть задавятся
156 Галахад
 
гуру
14.03.13
12:59
(153) Вот это правильно! Это по нашему :-)
157 AnisaL
 
14.03.13
13:00
(155) Да, переделаю )
158 Sammo
 
14.03.13
13:07
Выбрать статус, количество(ссылка)
159 rphosts
 
14.03.13
13:09
(158) ну или так с группировкой по статусу
160 AnisaL
 
14.03.13
13:17
(150) {Документ.ЗаявкаНаряд.Форма.ФормаСписка1(646)}: Ошибка при вызове метода контекста (Выполнить): {(4, 39)}: Неверные параметры "Перечисления.СтатусЗаявки.ВРаботе"
Когда ЗаявкаНаряд.Статус = Значение(<<?>>Перечисления.СтатусЗаявки.ВРаботе) Тогда 1
161 Галахад
 
гуру
14.03.13
13:19
Перечисление
162 rphosts
 
14.03.13
13:22
(160) а, ну конечно в запросе нужно писать не Перечисления а Перечисление
163 AnisaL
 
14.03.13
13:22
(161) запрос.Текст = "ВЫБРАТЬ
   |КОЛИЧЕСТВО(ЗаявкаНаряд.Ссылка) КАК КоличествоДокументов,
   |Сумма(Выбор
   |        Когда ЗаявкаНаряд.Статус = Значение(Перечисление.СтатусЗаявки.ВРаботе) Тогда 1
     |        Иначе 0
   |        Конец) КАК ЗаявокВРаботе,
   |Сумма(Выбор
   |        Когда ЗаявкаНаряд.Статус = Значение(Перечисление.СтатусЗаявки.Выполнена) Тогда 1
     |        Иначе 0
   |        Конец) КАК ЗаявокВыполненных
   |ИЗ Документ.ЗаявкаНаряд Как ЗаявкаНаряд";
164 rphosts
 
14.03.13
13:22
с конструктором скоро вообще отучусь писать запросы ручками
165 AnisaL
 
14.03.13
13:23
(163) + общее количество посчитал 1, почему? а другие правильно
166 AnisaL
 
14.03.13
13:24
Зато хост даже не поменялся при этом
167 AnisaL
 
14.03.13
13:28
Ну почему общее количество доков не посчитал?
168 rphosts
 
14.03.13
13:30
замени
   |КОЛИЧЕСТВО(ЗаявкаНаряд.Ссылка) КАК КоличествоДокументов,
на

   |Сумма(1) КАК КоличествоДокументов,

сдаётся мне ещё нужно условие на документы... может что они проведены или что они не полмечены на удалени...
169 AnisaL
 
14.03.13
13:31
(167) ой, простите, глупость сморозила, случайно закомментировала одну строчку:) все считает) спасибо
170 AnisaL
 
14.03.13
13:35
Блин, аж не верится что так быстро может работать))) Спасибо всем присоединившимся ))
171 Мохнатое рыло
 
14.03.13
13:35
А зачем вообще надо выводить весь список документов, начиная с 2010?
172 AnisaL
 
14.03.13
13:37
(171) я тоже над этим думала, что можно ограничить по дате)
173 AquaKosh
 
14.03.13
13:38
Вот "проблему" раздули про 1 rphost... У нас на серваке вообще 16 rphost'ов сделано. :)
174 AnisaL
 
14.03.13
13:44
А скажите, можно ли в таком запросе количество посчтитать по статусам:
запрос = новый запрос;
   запрос.Текст = "Выбрать * из документ.ЗаявкаНаряд как рег где &Условие1 и &Условие2 и &Условие3 и &Условие4";
   
   УсловиеПоРегламентным = "рег.регламентные";
   Запрос.Текст = СтрЗаменить(Запрос.Текст,"&Условие1",?(элементыформы.Флажок2.Значение,УсловиеПоРегламентным,"ИСТИНА"));
   
   флаг = Истина;
   
    УсловиеПоСтатусу = "рег.статус=&Статус";
    Запрос.Текст = СтрЗаменить(Запрос.Текст,"&Условие2",?(элементыформы.Флажок1.Значение,УсловиеПоСтатусу,"ИСТИНА"));
    запрос.УстановитьПараметр("Статус", перечисления.СтатусЗаявки.ВРаботе);
   
    УсловиеПоАдресу = "рег.Адрес подобно &Адрес";
         Если ЭлементыФормы.ПолеВводаАдрес.Значение<> "" тогда
         ВыражениеСАдресом = Истина;
       Иначе
         ВыражениеСАдресом =Ложь;
       КонецЕсли;
         
    Запрос.Текст = СтрЗаменить(Запрос.Текст,"&Условие3",?(ВыражениеСАдресом, УсловиеПоАдресу,"ИСТИНА"));
    Запрос.УстановитьПараметр("Адрес","%"+ЭлементыФормы.ПолеВводаАдрес.Значение+"%");
   
    УсловиеПоТелефону = "рег.Телефон подобно &Телефон";
   
         Если ЭлементыФормы.ПолеВводаТелефон.Значение<> "" тогда
         ВыражениеСТелефоном = Истина;
       Иначе
         ВыражениеСТелефоном =Ложь;
       КонецЕсли;
         
    Запрос.Текст = СтрЗаменить(Запрос.Текст,"&Условие4",?(ВыражениеСТелефоном, УсловиеПоТелефону,"ИСТИНА"));
    Запрос.УстановитьПараметр("Телефон","%"+ЭлементыФормы.ПолеВводаТелефон.Значение+"%");
175 rphosts
 
14.03.13
13:57
(174) грошь цена была-б запросам если-б такую ерунду нельзя было посчитать в запросе

ВЫБРАТЬ рег.статус КАК статус, Сумма(1) КАК КолВо из .............
СГРУППИРОВАТЬ ПО рег.Статус
176 rphosts
 
14.03.13
13:58
вам-бы отчёты подучить - от этих знаний, имхо, приход самый огромный
177 AnisaL
 
14.03.13
14:32
(176) запрос так-то получился, единственная проблема - не могу номер заявки выбрать - ругается
{Документ.ЗаявкаНаряд.Форма.ФормаСписка1(106)}: Ошибка при вызове метода контекста (Выполнить): {(1, 9)}: Поле не входит в группу "рег.Номер"
Выбрать <<?>>рег.Номер как Номер, рег.статус КАК статус, Сумма(1) КАК КолВо из документ.ЗаявкаНаряд как рег где ИСТИНА и ИСТИНА и ИСТИНА и ИСТИНА и  рег.ДатаСоздания<=&ДатаКон и рег.ДатаСоздания>=&датаНач и ИСТИНА СГРУППИРОВАТЬ ПО рег.Статус
   списокСмет.ЗагрузитьЗначения(запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Номер"));
178 AnisaL
 
14.03.13
14:43
(177) Этот запрос на кнопке Отбор висит, нужно сделать отбор по Заявкам и еще посчитать кол-во выполненных, вработе и общее кол-во. Поэтому еще нужен рег.Номер:
списокСмет = новый списокЗначений;
   списокСмет.ЗагрузитьЗначения(запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Номер"));
   
                       ДокументСписок.Отбор.Номер.ВидСравнения=ВидСравнения.ВСписке;
                       ДокументСписок.Отбор.Номер.Значение=СписокСмет;
                       ДокументСписок.Отбор.Номер.Использование=истина;
179 rphosts
 
14.03.13
14:45
(177) если в запросе есть группировка, то всё что отбирается запросом или должно быть в списке полей группировки или оно должно быть аргументов агрегатных функций. Если вы производите группировку по полю рег.Статус, то поле рег.Номер отбирать запросом нельзя.

А зачем вам номер если вы считаете по статусам?
180 sapphire
 
14.03.13
14:46
Какая-то ветка ужасов. Жуть.
181 sapphire
 
14.03.13
14:47
(173) И оно так много надо реально?
182 rphosts
 
14.03.13
14:55
(181) мне тоже нравится когда меня много
183 AquaKosh
 
14.03.13
15:44
(181) 12 точно реально надо, т.к. только в таком режиме рпхосты не доходят до лимита в 2гб при длительной работе (выяснено практическим путём).
А 16 сделано для ровного счёта, типа по ядрам.
184 Мохнатое рыло
 
14.03.13
17:22
(183) Вот из-за таких как ты в 8.3 лишили нас возможности самим создавать рпхосты.
185 AquaKosh
 
14.03.13
17:49
(184) Мда, детский сад...
186 Мохнатое рыло
 
14.03.13
18:42
(185) И не говори :)
187 Живой Ископаемый
 
14.03.13
20:10
2(131) ну то есть дело как оказалось и ни в "ой как много памяти жрет, 2 гига вместо 1-го" , и вовсе не в "глючности" релиза платформы...
а вот послушались бы сейчас копросоветов, и были бы с новой платформой, и с теми же самыми проблемами.
AdBlock убивает бесплатный контент. 1Сергей