|
УТ 11, выгрузка на сайт.. Недостаточно памяти (Порции всего по 5000 позиций) | ☑ | ||
---|---|---|---|---|
0
nodrama
07.09.22
✎
12:20
|
Доброго времени суток. Тестил выгрузку номенклатуры и цен на сайт... и че то словил ошибку ля ля ля недостаточно памяти и т.д.
на сервере 160 гигов оперативки. 48 гигов еще виртуальной подкачке. на дисках свободно по 500 гигов на каждом (С,Д). Если в обмене с сайтом, отобрать допустим номенклатуру конкретную папку (где скажем 500-1000 штук не важно) то все выгружается нормально. но папок сотни, выгружать по папкам смысла особого нет. Я поставил "Порционную выгрузку". Поставил там по 5000 в одной порции.. вроде не много. (всего около 100к номенклатуры с ценами).. через пол дня "думанья".. вылетело с ошибкой ляляля не достаточно памяти и т.д. На сайте ни чего ессесно не появилось. я так понимаю что ... 5000 в одной порции.. не значит что он сделает 5000 и сразу загрузит на сайт потом еще 5000... он сначала сделает фигову тучу порций по 5000, а потом все что сделал будет по 5000 грузить на сайт вроде как.. но все равно не понятно с чего ему не хватает памяти и что делать в данной ситуации ? Я конечно запустил порции по 500 теперь а не по 5000, но не думаю что это изменит картину |
|||
1
Ager
07.09.22
✎
12:27
|
Сначала делается запрос по всем товарам, потом они бьются на порции. Скорее всего на этапе формирования запроса памяти не хватает. Либо оптимизировать запрос, либо делать отборы и выгружать частями.
|
|||
2
Ryzeman
07.09.22
✎
12:30
|
(0) Запрос отдельно запускал? У нас джейсоны по 50к туда-сюда летают в секунды. По-любоу кросс джоин где-нибудь не усмотрел
|
|||
3
nodrama
07.09.22
✎
12:30
|
(1) Так там есть "кнопка" рядом с выгрузкой.. лупа.. типо посмотреть что отобралось и будет выгружаться. с теми параметрами что ты установил (отборы там и т.д.) ну или не установил. аля зарегистрированные к обмену...
Если ее нажать... да думает прилично.. ну может минут 20...номенклатуры полно.. Но показывает же... Думаю при выгрузке там точно такой же запрос... следовательно должнен отрабатывать |
|||
4
nodrama
07.09.22
✎
12:31
|
(2) так это типовой функционал УТ 11 (типовая).
отдельно запрос не запускал.. но жал кнопку "посмотреть номенклатуры к регистрации" и он мне вываливал список из 100к++ позиций |
|||
5
Ryzeman
07.09.22
✎
12:33
|
(4) ну... типовая может работать криво или как минимум не оптимально, особенно если база доработана сильно. У нас сейчас не типовые обмены. Да и на прошлой работе тоже сразу типовой обмен переделали (правда я там сбоку был)
|
|||
6
nodrama
07.09.22
✎
12:37
|
(5) Ну если кнопка "показать зарегеные обьекты" которые будут в выгрузке.. Работает и выводит список.. без ошибок.
Там же при "выполнить обмен" такой же запрос. он так же отбирает объекты просто не выводит их в показ) а грузит на сайт. поэтому я и подумал что если показать что зарегено работает, то и обмен должен (запрос) точнее отработать. там же одно и то же количество то что посмотреть что выгрузить.. |
|||
7
Ryzeman
07.09.22
✎
12:39
|
(6) Гм. Там случайно не пуляет по одному товару через новый HTTP-запрос?.. Ну мало ли
|
|||
8
Ryzeman
07.09.22
✎
12:39
|
Хотя при чём тут память на сервере
|
|||
9
Kassern
07.09.22
✎
12:44
|
(0) "на сервере 160 гигов оперативки" - сколько из нее свободной в мониторинге?
|
|||
10
nodrama
07.09.22
✎
12:45
|
(9) В данный момент свободной 101 из 160
|
|||
11
Галахад
гуру
07.09.22
✎
12:46
|
Насколько я помню там все данные загоняются в единый объект.
А уж потом порционно или нет пишется в файлы. |
|||
12
nodrama
07.09.22
✎
12:47
|
(11) у нас стоит прямая загрузка на сайт, без выгрузки в файлы, а потом эти файлы руками загружать не сайт..
тут я хз.. при прямом обмене он пишет файлы или сразу грузит на сайт хз |
|||
13
Kassern
07.09.22
✎
12:47
|
(10) Замер производительности делали? Смотрели, что там в коде выполняется? Сервер и клиент 64битный надеюсь? ТЖ настраивали?
|
|||
14
Kassern
07.09.22
✎
12:48
|
Почитайте эту статью https://tproger.ru/articles/rassledovanie-oshibki-nehvatki-pamjati-na-servere-1s/
|
|||
15
Галахад
гуру
07.09.22
✎
12:48
|
(12) Конечно пишет.
|
|||
16
Kassern
07.09.22
✎
12:50
|
(12) Вы про битрикс? Вроде там создаются пакеты файлов, потом еще и архивируются и шлются на сервак, где сайт.
|
|||
17
nodrama
07.09.22
✎
12:51
|
Ошибка дословно "Превышен максимальный расход памяти сервера за один вызов"
|
|||
18
Kassern
07.09.22
✎
12:54
|
(17) в яндексе пробовали вбить эту ошибку, или сразу на Мисту написали?))
|
|||
19
nodrama
07.09.22
✎
12:55
|
(18) я только ее в журнале нашел ;)
|
|||
20
Kassern
07.09.22
✎
12:55
|
У вас в кластере стоит ограничение на расход, типа, чтобы тяжелые запросы с декартовым произведение таблиц не выжирали всю память на серваке криворуким джуном.
|
|||
21
timurhv
07.09.22
✎
12:56
|
(0) 1С плевать на размер файла подкачки
|
|||
22
nodrama
07.09.22
✎
12:57
|
(20) это я уже прочитал.. нужно место "0" поставить "1". попробую
|
|||
23
nodrama
07.09.22
✎
12:57
|
но тут другой вопрос.. (20) а хватит ли памяти потом в итоге если убрать то ограничения в класторе )) покажут видимо только тесты
|
|||
24
Kassern
07.09.22
✎
12:58
|
(23) купите лицензию КОРП и крутите вертите памятью как вам угодно в рамках кластера)
|
|||
25
timurhv
07.09.22
✎
12:59
|
(22) -1 вроде, а не 1.
Проблема в данных, либо в процедурах выгрузки \ запросах. |
|||
26
nodrama
07.09.22
✎
13:00
|
(25) тветственны за эту ошибку настройки сервера 1С. В них есть параметр «Безопасный расход памяти за один вызов», и если его не меняли, по умолчанию там стоит параметр «0». Чтобы убрать ограничение, нужно установить иное значение параметра, например – «1»
Вроде в статье написано 1 |
|||
27
nodrama
07.09.22
✎
13:01
|
А в другой статье -1 ))... поверим второй
|
|||
28
nodrama
07.09.22
✎
13:03
|
Поставил -1.. перезапустил службу сервера 1с.. потестим
|
|||
29
timurhv
07.09.22
✎
13:03
|
(25) Временно допустимый объем памяти процессов = 70% от ОЗУ
Безопасный расход памяти за один вызов = 10% от параметра выше. Получается 1.1Гб за один вызов. Скорее всего, либо данные кривые, либо запрос без нормальных отборов. (27) Смотрите ИТС https://its.1c.ru/db/v8321doc#bookmark:cs:TI000000158 |
|||
30
nodrama
07.09.22
✎
13:04
|
(29) так запрос и без отборов.. мы хотиле Всю номенклатуру добавить на сайт. без отборов и т.д.
|
|||
31
timurhv
07.09.22
✎
13:05
|
(28) Зря, сожрет все. У вас данные кривые, либо запрос править. Полдня не может выгружаться 100к позиций с ценами.
|
|||
32
timurhv
07.09.22
✎
13:05
|
(30) Посмотрите соединения в запросах
|
|||
33
timurhv
07.09.22
✎
13:07
|
Я к тому что у нас на 8Гб серваке за раз выгружаются по 300тыс марок в WMS по SOAP, еще 80 пользователей сидят работают. Проблем нет.
JSON еще меньше потребует ресурсов. |
|||
34
nodrama
07.09.22
✎
13:10
|
Кстати там в типовом обмене при выборе че выгружать.. в отборах.есть 2 поля Вторая закладка которая
Группы номенклатуры.. там можно выбрать группа (список групп).. а последняя колонка Отбор номенклатуры более точный. я же правильно понимаю что они взаимозаменяются если я выбрал группу номенклатуры допустим "Стул".. то в отборе мне не надо ставить группу Стул ? или если я в отборе уже выбрал группу Стул, то в группе номенклатуры мне уже не надо ставить стул ? или они должны быть одинаково заполнены ? |
|||
35
Kassern
07.09.22
✎
13:27
|
(34) Все ваши отборы в конечном итоге всего лишь регистрируют изменения в план обмена. Можете легко проверить как отрабатывают условия.
|
|||
36
Мультук
гуру
07.09.22
✎
13:40
|
(0)
100к номенклатуры в Битрикс, без настройки, без тюнинга "тонких мест" ? Только вера в большой толстый сервер и широкий интернет ? Имхо, не будет оно так работать. |
|||
37
Мультук
гуру
07.09.22
✎
13:49
|
(0)
Копать можно начинать с Б_ОбменССайтомСерверВыгрузкаДанных.ФормированиеПакетовДанных(...) Имхо на инфостарте была статья, как ребята оптимизировали запросы СКД в этой выборке. Но что и где уже не помню. P.S. Кстати, на 40к номенклатуры (без картинок) на x64 УТ 11.4 у нас не падает т не падало. Возможно, у вас как не в себя характеристик и видов цен, которые вы выгружаете на сайт. Выгружайте только нужные виды цен. P.P.S. Смешной коммент из указанной функции. Кто-то всё еще думает что неработающее условие NULL = &П это бага. // бага в платформе.. ТекстЗапроса = Запрос.Текст; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL = &П ", "ИСТИНА = ИСТИНА "); |
|||
38
nodrama
07.09.22
✎
14:37
|
(36) У них не Битрикс ;)
|
|||
39
Krendel
07.09.22
✎
18:33
|
(24) Это не в корпе дело, а в загрузке выгрузке
|
|||
40
Гений 1С
гуру
07.09.22
✎
18:36
|
(0) точнее текст ошибки надо цитировать. У меня недавно на постгри было об ошибке памяти, оказалось сервачко дохлый
|
|||
41
Deal with it
07.09.22
✎
18:43
|
(0) у нас ут 11.4, также пробовали выгружать на сайт типовым обменом, но это занимало слишком много времени, т.к. макет "СхемаВыгрузкиКаталогПакетПредложений" в плане обмена не оптимален и оооочень долго выполняется. Поэтому отказались от типового механизма и запилили свой, с блекджеком и куртизанками...
Вы просто сами поставьте точку остановы в плне обмена в моменте где он формирует таблицу цен для выгрузки и смотрите как процесс жрет память и самое главное ваше время. |
|||
42
Deal with it
07.09.22
✎
18:45
|
+(41) и да, на количество порций при выполнении макета скд ему плевать, он уже результат выполнения будет разбивать на части для отправки, а сам макет возьмет все данные по установленному отбору.
|
|||
43
nodrama
08.09.22
✎
12:45
|
(42) Короче выгрузку загрузку я победил, ошибок больше нет.
Остался вопрос... Правильно ли я понимаю, в типовой (ну уже не очень типовой). выгрузке, по порциям... Когда на сайте уже начинают появлятся эти "порции" номенклатуры. Значит он в 1с уже все сделал все отобрал сформировал и дальше уже зависит скорость от самого сайта/интернета/хостинга и т.д? |
|||
44
nodrama
08.09.22
✎
12:47
|
Просто теперь проблема другая... раньше он на сайт ни чего даже не добавлял вылетат с ошибкой памяти.. это я подправил. теперь он все отбирает бьет на порции и т.д. и на сайте появляются товары следовательно. только вопрос в том.. что они появляются как то подозрительно медленно... то есть смотришь там 10.000 товаров. обновляешь страницу там 10.020 товаров.. как то не шипко быстро
|
|||
45
Deal with it
08.09.22
✎
12:49
|
(44) тут надо замерять время с момента получения фала на сайте и поялвением порции номенклатуры, а если нет такой возможности, то хотя бы с момента отправки файла с процией из самой 1с и моментом появления этих позиций на сайте.
|
|||
46
Deal with it
08.09.22
✎
12:50
|
мы замеряли так: сохраняли фа1йл выгрузки из 1с, загружали его на сайт и смотрели как быстро грузит уже сам сайт. Проггер уже потом правил загрузку на сайте, оптимизировал разбор файла и все такое.
|
|||
47
Deal with it
08.09.22
✎
12:51
|
таким образом оптимизация была двухсторонней. Сначала в 1с ускорили выгрузку, затем и на сайте загрузку.
|
|||
48
Deal with it
08.09.22
✎
12:52
|
в итоге все равно переходим на битрикс сайт))) там уже все оптимизировано за нас(ну почти).
|
|||
49
timurhv
08.09.22
✎
13:22
|
(43) >Короче выгрузку загрузку я победил, ошибок больше нет.
Что в итоге сделали? Поправили запрос? Или настройка кластера серверов? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |