| 
    
            
         
         | 
    
  | 
УТ 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) >Короче выгрузку загрузку я победил, ошибок больше нет.
 
        Что в итоге сделали? Поправили запрос? Или настройка кластера серверов?  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |