![]() |
|
Лечится ли ошибка "out of memory" возникающая при выгрузке xml? | ☑ | ||
---|---|---|---|---|
0
IamAlexy
08.03.09
✎
21:26
|
Есть база 7.7
Выгружаю из нее данные для перехода на 8ку. База не очень большая.. элементов справочника контрагентов имеющих остатки порядка 600 тысяч.. при выгрузке в xml после пары тройки часов вываливается с "out of memory" причем на компе естественно никакой нехваткой памяти, процессорной мощности или жесткого диска и не пахнет. вопрос это лечится или придется резать стандартные правила для перевода "по кускам" ? естественно что платформы все обновлены, релизы и правила последние. |
|||
1
ТелепатБот
гуру
08.03.09
✎
21:26
|
||||
2
Злопчинский
08.03.09
✎
21:35
|
гаечки поштучно учитываете?
|
|||
3
IamAlexy
08.03.09
✎
21:36
|
(2) именно.. и болтики в отдельном справочнике...
мало того в справочнике договоров хранится "левая резьба" один договор и "правая резьба" другой договор... а по существу мысли есть? |
|||
4
Aleksey_3
08.03.09
✎
21:48
|
Только бить, и выгружать частями
|
|||
5
IamAlexy
08.03.09
✎
21:50
|
(4) угу. просто хотел уточнить.. а то потрачу время а окажется что есть какойнить "обновленный драйвер для xml" который позволяет работать с файлами больше чем 1 гиг.
|
|||
6
Cap_1977
08.03.09
✎
21:50
|
(0) У тебя валиться XML-парсер, тот который от мелкософта. Валиться он изза того что пытается отожрать больше 2 Гб памяти (он _весь_ формируемый/считывамый xml-файл держит в памяти + его собственные глюки). Попробуй формировать выходной файл вручную - xml этоже по сути текст ))).
|
|||
7
milan
08.03.09
✎
21:54
|
(6) Скорее всего не удастся выгрузить в последовательный файл, хотя чем черт не шутит.
|
|||
8
IamAlexy
08.03.09
✎
22:01
|
(7) даже не буду пытаться.
либо по оле выгружу либо правила покоцаю чтобы частями выгружать.. подумаю еще что именно делать... |
|||
9
milan
08.03.09
✎
22:04
|
(8) Не по спортивному получается ;)
|
|||
10
ДенисЧ
08.03.09
✎
22:10
|
поставить 64бит систему и соотв скл.
Написать выгрузку через скл. и 8ку взять 64бит. |
|||
11
IamAlexy
08.03.09
✎
22:12
|
(10) быстрее по оле + лицензии на х64 сервер предприятия нету :)
а система и так х64 |
|||
12
milan
08.03.09
✎
22:15
|
(11) Сдается мне что по ОЛЕ не быстро 600К контрагентов с остатками выгрузится ;)
|
|||
13
IamAlexy
08.03.09
✎
22:18
|
(12) ну думаю быстрее чем переписывать правила под SQL + смена платформ на x64 + неясный результат в итоге :)
причем по оле можно запустить в несколько потоков. 1с не занимает все ядра в процессе работы. тоесть на четырехядерном проце можно запустить четыре потока и они будут нормально в полную силу выгружаться :) |
|||
14
milan
08.03.09
✎
22:21
|
(13)Под ОЛЕ есть готовая обработка ???
и потом непонятно как бить на части, по буквам алфавита ??? |
|||
15
IamAlexy
08.03.09
✎
22:22
|
(14) на 80% готовая.
а зачем по оле бить на части? |
|||
16
milan
08.03.09
✎
22:25
|
(15)
>>на четырехядерном проце можно запустить четыре потока и они будут нормально в полную силу выгружаться :) Или 4 раза одно и тоже выгружать ??? |
|||
17
Cap_1977
08.03.09
✎
22:26
|
(13) "1с не занимает все ядра в процессе работы." - правильно, семерка писалась когда о гипертрейдинге и двухголовости еще не слыхали.
"тоесть на четырехядерном проце можно запустить четыре потока и они будут нормально в полную силу выгружаться :)" - издешь ))) будкт использваться только один камень. |
|||
18
IamAlexy
08.03.09
✎
22:27
|
(17) хм. нужно думаешь разные процессы всеравно на первый будут вешаться ?
|
|||
19
IamAlexy
08.03.09
✎
22:29
|
(16) зачем одно и тоже:
первый выгружает допустим остатки по 62ым счетам второй допустим по 60ым третий какойнить там 10ый счет естественно перед этим предварительно полная синхронизация справочников. |
|||
20
Cap_1977
08.03.09
✎
22:32
|
(18) Да. всегда грузиться первый камень. Хочешь чтоб нагрузка распределялась на все: ставь линь (или бсд) поверх нее wmware esx server. на него гостевую вынь 2003; тогда у тебя будут загружены _все_ камни - nix разрулит.
|
|||
21
milan
08.03.09
✎
22:35
|
(19) Сами по себе остатки - мелочь, там по ссылкам цепляется всякая фигня, вот и растет файл выгрузки.
Как раз >>полная синхронизация справочников. и занимает большую часть места в выгрузке, они же виноваты в том что для выгрузки в хмл ипользуется DOM. (20) Закусывать надо. Операционка сама вешает процессы на разные ядра, или как она посчитает нужным. Вот распаралелить один процесс с 1с она не может. |
|||
22
IamAlexy
08.03.09
✎
22:36
|
(20) Set Affinity в таск менеджере решает данную проблему без линуха,бсд и вмваре
|
|||
23
milan
08.03.09
✎
22:37
|
(22) Опять не по спортивному, а так поставил в вмваре линух, там в виртуалбох вин2003 а там и 1с запустил - благодать
|
|||
24
IamAlexy
08.03.09
✎
22:38
|
(23) тучные, потные, ленивые программисты 1с с отдышкой и пивом далеки от спорта...
|
|||
25
Cap_1977
08.03.09
✎
22:49
|
(21) Предложенная схема была реализована в Казани, фирмы Прогресс, база РарусАльфаАвто, никак не оптимизированная, только доточенная, юзеров онлайн сидело 60+. железка была "супермикро", 4 гига оперативы, 4 камня. Тянула еще второй DC.
|
|||
26
milan
08.03.09
✎
23:08
|
(25) Что-то я не понимаю смысл огорода. Один процесс 1С никакой вмваре или линух на несколько потоков никак не разложат. Поднимать линух, на нем вин2003 ... непонятно.
|
|||
27
IamAlexy
08.03.09
✎
23:10
|
(26) там было поднято три вмваре.
каждому вмваре по ядру в каждом вмваре по 20 пользователей :) |
|||
28
Cap_1977
08.03.09
✎
23:10
|
(26) Смысл огорода в том, что поднимая линух и ставя на него гостевую внь ты уходишь от того что один процесс 1С исполняется на одном камне; линь раскидывает нагрузку по всем процам.
|
|||
29
Aleksey_3
08.03.09
✎
23:12
|
(27,28) А смысл? Каждый юзер юзает свой процесс 1С. А ОС сама эти процессы раскидывет по ядрам. Поэтому смысл ставить на тормознутую вирт. машину?
|
|||
30
Cap_1977
08.03.09
✎
23:14
|
(27) думмаю что так настроить было можно ))) но как то архисложно получается )))
(29) юзать то он зюзает. ыопросов нет. о только терминал на винде, в котором сидят пользователи, упорно грузит один камень. |
|||
31
Aleksey_3
08.03.09
✎
23:15
|
Ну у меня отдельная машина под 1С и отдельная под терминал, и там и там юзаются все ядра, без извращений. На филиале все во одном, и тоже не замечал, чтобы ядра простаивали.
|
|||
32
Cap_1977
08.03.09
✎
23:19
|
(31) Установил 2003. Роль назначил: сервер терминалов. Настроил юзерам коннекты к серверу. Установил на серваке 1С. Базы положил локально. Пользователи заходят в 1С, работают. ДЗ выдает загрузку 1-го камня. Что я делаю не так ?
|
|||
33
Aleksey_3
08.03.09
✎
23:24
|
2003 какой чистый или R2? Сколько юзеров? А если в ручную назначить 1С у юзера другой камень?
|
|||
34
milan
08.03.09
✎
23:28
|
(32) Что-то делаешь не так, не нужно ставить сервер терминалов, чтобы разные процессы 1с грузили разные ядра. Запусти на локальной машине две одинески и будешь приятно удивлен.
Может что-то там с лицензиями в вин2003 ??? |
|||
35
Aleksey_3
08.03.09
✎
23:34
|
(32) Так чисто, чтобы мы понимали о чем речь. 1С у 1 юзера под виндоус не может занимать N ядер. 1С однаядерная, т.е. 1 экземпляр = 1 ядро. Но ОС может раскидывать разные экземпляры 1С на разные ядра, т.е. каждый экземпляр 1С будет занимать свое отдельное ядро (в общем случае).
|
|||
36
milan
08.03.09
✎
23:40
|
(35) В общем случае не обязательно "Каждый экземпляр 1С будет занимать свое отдельное ядро", разложит как посчитает нужным, и не факт что несколько 1с на первом ядре это плохо. На самом деле 1С довольно слабо грузит проц, в основном грузится дисковая подсистема за счет всяких временных ДБФов и прочей ахинеи.
|
|||
37
Cap_1977
08.03.09
✎
23:41
|
никс раскидывает задачи одного юзера на несколько камней.
|
|||
38
milan
08.03.09
✎
23:44
|
(37) Ты утверждаешь, что однопоточный процесс никс раскладывает на несколько ядер ???
|
|||
39
Aleksey_3
08.03.09
✎
23:47
|
(37) При этом тормоза вирт машины сводят этот плюс на нет.
Если бы у тебя было бы 20 камней и 4 юзера, тогда да. Но у тебя и так на каждом камни сидит по 5 юзеров, поэтому смысл раскидывать на то, что уже занято? |
|||
40
Cap_1977
08.03.09
✎
23:51
|
(38) таг. в (25) мну указал что твориться если поставить никс. В (32) я задал вопрос. В (37) - вывод. Неявный вывод, но все таки.
1. Где утверждкние ? 2. Смысл ловить меня за язык ? Не работает так как как утверждаю в 25 - я мутаг. Готов сменить картинку в профиле. 3. Что мешает тебе попробывать а не молоть языком ? |
|||
41
IamAlexy
08.03.09
✎
23:55
|
лучше бы придумали где взять волшебный_патч_заставляющий_виндовых_xml_понимать_файлы_больше_2GB
|
|||
42
Cap_1977
09.03.09
✎
00:05
|
(41) звонить в_подддержку_не пользоваться_вынью_взять_в_руки_фзыкпрограммирования. Быть, а не казаться.
|
|||
43
IamAlexy
09.03.09
✎
00:12
|
(42) см (24)
|
|||
44
Cap_1977
09.03.09
✎
00:17
|
43 это:
Перейти Метка; ... ~Метка: Сообщить("Сам дурак"); или я чего то не понимаю ? |
|||
45
milan
09.03.09
✎
00:32
|
(40) Человеку свойственно ошибаться, как в 25 проверять не стану, ибо лень. Да и никаких рекомендаций от 1с в эту сторону нет. Опять же проверять что вин2003 работает производительнее под вмварью из под никса не хочется.
а то что такая система будет работать я не сомневаюсь. К тому же тут другая задача. (41) переписывай под сакс модель выгрузку от 1С ;) тогда будет ограничение только на размер файла на ФС ;) |
|||
46
Cap_1977
09.03.09
✎
00:34
|
(45) благодарю
|
|||
48
romix
модератор
09.03.09
✎
04:05
|
||||
49
НП
09.03.09
✎
08:26
|
(0) Перегружать справочники лучше при помощи COM-соединения. Размер программы -операторов 15-20 плюс по оператору на каждый реквизит справочника. Запускется в режиме транзакций с периодическим завершением и началом транзакции через 200-300 элементов справочника.
|
|||
50
dk
09.03.09
✎
08:53
|
хм, а 64-битного парсера хмл мелкомягкие не выпустили?
|
|||
51
w2k3
09.03.09
✎
08:57
|
хм... у меня такая ошибка была не в 1с а просто когда открываешь файл... после перезапуска исчезает.. оказался банально вирус... он перехватывал запрос проги на достаточность памяти и посылал неверный ответ в следствии чего прогама сама по се вылетала!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |