Имя: Пароль:
1C
1С v8
v8: Удаление движений в ФоновомЗадании. Чем можно потестить диск на скорость?
0 H A D G E H O G s
 
31.10.12
01:59
Ночи доброй.
Пока не забыл - впилил удаление движений документов при перепроведении (которые как ни странно занимают почти 50% времени) в Фоновых задачах (в 4 фоновых пока)

Время с фоновыми (холодное/горячее) 79 886/19 148 мсек
Время без фоновых(холодное/горячее) 67 154/20 676 мсек

mssql2008r2 32x сервер 1С 8.2.15
КА немного попиленная, все регламенты выполнены, тачанка норм, но не серверная, документ - РТИУ в 520 строк, партионный учет включен.

Бида...
39 Stepa86
 
31.10.12
15:02
(37) во втором ожидание должно быть, а не дедлок
40 H A D G E H O G s
 
31.10.12
15:03
Просто немного не понял (26)...
Поделил на 4 части с балансировкой (собрал статистику в отдельный РС), получилось (31).

Получилось при одном пользователе.
Может при толпе пользователей будет другой результат?
41 NcSteel
 
31.10.12
15:03
(39) ну так это и тормозить будет. В итоге прибыли никакой.

Странно что вариант 1 тормознее.
42 Fragster
 
гуру
31.10.12
15:03
(38) тогда подчиненность регистратору поеет
(39) хоть горшком назови
43 Fragster
 
гуру
31.10.12
15:04
(40) не будет.
44 Stepa86
 
31.10.12
15:04
а вот в первом варианте может и дедлок получится. Этож получается классический случай записи регистров в разном порядке
45 Fragster
 
гуру
31.10.12
15:04
только вот если скуль загружен чрезмерно - эффекта не будет
46 H A D G E H O G s
 
31.10.12
15:04
(44) Откуда?
47 H A D G E H O G s
 
31.10.12
15:05
(45) Все упирается в диск.
48 Fragster
 
гуру
31.10.12
15:05
(44) ну, там удаление, УБ от этого в большой степени спасают
(46)  может
49 NcSteel
 
31.10.12
15:05
(44) Не путай, тут другое
50 Stepa86
 
31.10.12
15:06
(46) если в фоновое задание закинуть регистры в неправильном порядке и там все в одной транзакции пишется
51 NcSteel
 
31.10.12
15:06
(48) УБ для другого.
52 H A D G E H O G s
 
31.10.12
15:07
(50) Там УДАЛЕНИЕ записей в регистрах. Какая разница, какой порядок?
53 NcSteel
 
31.10.12
15:07
(52) +100500
54 NcSteel
 
31.10.12
15:07
(53) + И транзакция другая , надеюсь )))
55 Fragster
 
гуру
31.10.12
15:08
(54) транзакция в каждом задании своя же
56 H A D G E H O G s
 
31.10.12
15:08
Сегодня еще потестю, посмотрю профайлером какие там запросы тяжелые.
57 NcSteel
 
31.10.12
15:09
(55) Именно, тогда влияния порядка нет.
58 NcSteel
 
31.10.12
15:09
(56) Имхо решается настройкой скуля.
59 Stepa86
 
31.10.12
15:10
(52) а какая разница, запись или удаление? все равно ставится блокировка на отбор. Я вообще не люблю диспуты по поводу дедлоков, уж больно дохера ньюансов
60 Stepa86
 
31.10.12
15:11
(57) речь про транзакцию фонового задания в котором несколько регистров пишутся
61 H A D G E H O G s
 
31.10.12
15:11
Кстати, стоп, насчет транзакций...
62 H A D G E H O G s
 
31.10.12
15:11
Хотя нет, мы же ждем их завершения, все нормально.
63 NcSteel
 
31.10.12
15:11
(61) Только не говори, что она у тебя одна на все)))
64 NcSteel
 
31.10.12
15:12
(60) На каждый регистр должна быть своя транзакция. Имхо.
65 Stepa86
 
31.10.12
15:14
откат транзакции проведения откатит очистку? я чот сомневаюсь
66 H A D G E H O G s
 
31.10.12
15:15
Мне непонятно, откуда у Fragster-а выигрыш при параллельном проведении.
Я то думал, что тупит сервер 1С ну скажем 25% времени хотя бы и в несколько потоков он это быстрее разрулит, а оказалось, что он и не при чем.
Надо смотреть duration всех запросов в Скуле и сравнивать с временем выполнения (28).
67 NcSteel
 
31.10.12
15:15
(65) Очистка и запись должны быть в одной транзакции.
68 Fragster
 
гуру
31.10.12
15:15
если загрузка сервера на 100%, то общее время выполнения увеличится на накладные расходы. У меня на фоновое задание с Процедура Тест() Экспорт
   А=1;
КонецПроцедуры
уходит 2-3 секунды (8.1, в 8.2 может быть быстрее).
если же загрузка сервера меньше 100%, то фоновыми заданиями мы сможем выжать загрузку больше, чем в 1 поток, вот за счет чего выигрыш происходит
69 Bober
 
31.10.12
15:16
(0) какая версия платформы?
70 NcSteel
 
31.10.12
15:16
(68) Сервер имеется в виду МС Скуль?
71 NcSteel
 
31.10.12
15:16
(69) Писатель )))
72 Stepa86
 
31.10.12
15:17
(66) ты как будто оптимизацией никогда не занимался? известно же, что на разных системах, при разном окружении и под разной нагрузкой одно и то же решение может быть как серебряной пулей так и узким местом. И только замеры дают правильные ответы
73 H A D G E H O G s
 
31.10.12
15:18
(68) У меня SQL уперся в диск. Процессора ему хватает.
74 Fragster
 
гуру
31.10.12
15:18
(70) любой разделяемый ресурс, скажем так. диск скуля, проц, любой, во что упирается - если 100%, то фоновые прироста не дадут
75 H A D G E H O G s
 
31.10.12
15:19
Сегодня попробую свой любимый RAM, если хватить.
Все попробую !
76 NcSteel
 
31.10.12
15:19
(74) Ну это аксимо не требующая оглашения )))). И так понятно что если железо напряглось до предела, то не получишь ощутимого роста.
77 Fragster
 
гуру
31.10.12
15:20
(74)+ если без фоновых загрузка 50%, то с фоновыми больше чем в 2 раза быстрее не получится (реально 1,5-1,7 из-за накладных расходов). если же время накладных расходов сопоставимо со временем выполнения - то смысла вообще мало
78 Bober
 
31.10.12
15:20
(66) Снимай активность у набор записей, а фоновым удаляй такие наборы записей.
79 H A D G E H O G s
 
31.10.12
15:21
(78) Что это даст?
80 Fragster
 
гуру
31.10.12
15:21
на самом деле при перепроведении я уходил от двойной записи движений
81 Fragster
 
гуру
31.10.12
15:21
(79) ничего
82 Fragster
 
гуру
31.10.12
15:21
(80)+ просто при контроле остатков вычитал текущие движения
83 NcSteel
 
31.10.12
15:21
(79) Ничего. Так как запись новых "записей" надо сделать.
84 Fragster
 
гуру
31.10.12
15:22
(82) в перспективе же надо делать как в УТ 11 - запись, а потом смотреть "не нафигачили ли чего"
85 NcSteel
 
31.10.12
15:22
(80) И это правильно. Оперативное проведение?
86 Fragster
 
гуру
31.10.12
15:22
(84)+но в том спагетти, которое мне досталось - слишком много переделывать
87 Fragster
 
гуру
31.10.12
15:23
(85) не всегда
88 NcSteel
 
31.10.12
15:23
(84) Вопрос (85) к этому и ведет )))
89 NcSteel
 
31.10.12
15:24
(87) Вообще самым нормальным решением вообще не проверять остатки, как Рауз частенько делает. А потом в конце месяца их вывести.
90 Fragster
 
гуру
31.10.12
15:31
(89) это, к сожалению, не всегда возможно. требования маркетологов-продажников по контролю дебиторки, остатков на складах и прочему не вписываются частенько.
91 Fragster
 
гуру
31.10.12
15:55
ну чего, какие выводы/действия у (0)? интересно же
92 H A D G E H O G s
 
31.10.12
16:00
(91) Буду мерить.

Посмотрю запросы в SQL, посмотрю их duration, перенесу базу в RAM, гляну, перенесу tempDB обратно на диск, померяю.

Принесу базу на работу, померяю на 15000 дисках.

Буду тупо тестить, тут нечего думать!
93 H A D G E H O G s
 
31.10.12
16:01
Простая эмпирика, аналитика облажалась.
94 Fragster
 
гуру
31.10.12
16:01
(93) а убрать запись пустых наборов при перепроведении?
95 Fragster
 
гуру
31.10.12
16:02
(94) в "пустых" - в смысле очистка из БД наборов, которые потом повторно записываются
96 NcSteel
 
31.10.12
16:08
Старики (например Епрст) смотрят и смеются ))) - "Все реализовано"
97 H A D G E H O G s
 
31.10.12
16:19
(94) Я счаст нубство скажу - а зачем 1С это сделала?

3 варианта было, так

1) вариант - давно, у дока стояло свойство "Удалять движения автоматически" и все делалось автоматом.
2) вариант - теперишный, у дока стоит свойство "Не удалять движение автоматически" - имеем текущую ситуацию
3) вариант - у дока стоит свойство "Не удалять движение автоматически", но движения предварительно не удаляются, а остатки считаются за минусом движений текущего перепроводимого документа - вариант УТ11

Поправьте меня, если не прав, и почему 1С остановилась на 2 варианте, перейдя на него с 1-ого и не доведя до 3-его?
98 NcSteel
 
31.10.12
16:21
(97) Ут 11 по другому работает.

А вопрос так и не понял tt
99 H A D G E H O G s
 
31.10.12
16:23
(98) Значит я ошибся.
100 NcSteel
 
31.10.12
16:24
100 (100)
101 H A D G E H O G s
 
31.10.12
16:24
Провокатор
102 Fragster
 
гуру
31.10.12
16:25
(97) в УТ - движения не удаляются, записываются новые, потом контроль остатков. твой вариант (3) - это в моем наследстве.
103 Fragster
 
гуру
31.10.12
16:26
(102)+ фиговый вариант непрозрачный. но распрямить пока не доходят руки
104 H A D G E H O G s
 
31.10.12
16:27
(102) Ну немного ошибся я :-)
105 H A D G E H O G s
 
31.10.12
16:27
Почему 1С отошла от варианта 1 и пришла к 2 в УПП и КА ?
106 NcSteel
 
31.10.12
16:28
(105) Блокировки.
107 NcSteel
 
31.10.12
16:28
(106) + Где то даже на партнерском форуме была темка, но давно.
108 Fragster
 
гуру
31.10.12
16:30
запись пустого набора, когда он и так пустой на мсскуле приводит к блокировке всей таблицы
109 Fragster
 
гуру
31.10.12
16:31
ЕМНИП
110 NcSteel
 
31.10.12
16:32
(109) Мне кажется с нами разговаривает другой H A D G E H O G s, старого и умного кто то испугал и он ушел !)
111 ssh2006
 
31.10.12
16:33
(108) да вроде при записи пустого набора должны блокироваться записи по измерениям в удаляемых записях
112 ssh2006
 
31.10.12
16:34
+(111) в управляемых блокировках до субд может не дойти даже дело
113 H A D G E H O G s
 
31.10.12
16:40
(110) Я всегда таким был.
114 H A D G E H O G s
 
31.10.12
16:40
Просто притворялся умным.
115 ХочуСказать
 
01.11.12
09:07
(97)
а) если стоит удалять автоматически движения, то по всем регистрам где документ является регистратором делается запись пустого набора.
Если же вдруг документ по какому то регистру движения не имел, то из за отсутвия индекса (или чего там) блокируется вся таблица
в УПП 1.2 это херню исправли стащив решение у ИТРПов ,
теперь предварительно проверяется наличие движений в регистре и если их там нет, то движений не делается
116 ХочуСказать
 
01.11.12
09:10
б) третий вариант возник из за того, что франчи доколебали разработчиков в связи с чем в УПП 1.2 появилась галочка в параметрах учета, не очищать регистры при записи :) со списком исключающих документов...
т.е. что бы не делать
запись пустого набора (очистка движений) + запись нового набора (проведение)
теперь делается сразу проведение (т.е. новые движения замещают старые) + пишется пустой набор если движения были, а теперь их нет

но такой алгоритм возможнен, только когда документ не смотрит остатки(!) поэтому в конфе прописан список исключений
в связи с чем возник вариант
(в)
117 ХочуСказать
 
01.11.12
09:11
(114) у тебя просто иголки молодые и короткие :)
118 ХочуСказать
 
01.11.12
09:13
(111) ставиться отбор по регистратору..
а в регистре такого индекса нет... неожиданно да? :)
119 ХочуСказать
 
01.11.12
09:14
точнее индекс есть, значения индекса нет :) так как движений по этому регистратору нет...
120 ХочуСказать
 
01.11.12
09:24
и да, кстати,
контроль остатков итогов проведения логичен, т.к. один хрен
при чтении остатоков в транзакции регистр блокируется
121 Леха Дум
 
01.11.12
09:40
(120) в УТ11 регистр блокируется в момент записи и остается заблокированным до окончания проведения, контроль остатков смотрит ТОЛЬКО на наличие ОТРИЦАТЕЛЬНЫХ остатков, при перепроведении учитываются ТОЛЬКО ИЗМЕНЕННЫЕ записи.
122 ХочуСказать
 
01.11.12
09:41
(121) таки это я и написал
123 ХочуСказать
 
01.11.12
09:42
вообще это старый баян, обсуждалось лет 5 назад на партнерском форуме
124 Леха Дум
 
01.11.12
09:44
(122) как то этого я у тебя не увидел...
125 shuhard
 
01.11.12
09:48
(97) [почему 1С остановилась на 2 варианте, ]
чтобы не перепахивать УПП 1.3 и заставить мигрировать на УП 2.0
126 ХочуСказать
 
01.11.12
09:53
(124) это нормально

(125) так если перепахать 1.3 один фиг получиться УП 2.0 :)
127 H A D G E H O G s
 
01.11.12
09:55
Все понял. Спасибо.
128 H A D G E H O G s
 
02.11.12
23:16
Вернемся.
Как раз пятница...
129 H A D G E H O G s
 
02.11.12
23:19
Запулил базу на RAM :-)
Было
Время с фоновыми (холодное/горячее) 79 886/19 148 мсек
Время без фоновых(холодное/горячее) 67 154/20 676 мсек

Стало

Время с фоновыми (холодное/горячее) 35 194/16 698 мсек
Время без фоновых(холодное/горячее) 23 003/18 508 мсек
130 H A D G E H O G s
 
02.11.12
23:20
Счаст буду искать узкое место.
131 H A D G E H O G s
 
02.11.12
23:21
Видно, кстати, что SQL-ю пофиг RAM при горячем - у него свой кэш.
132 H A D G E H O G s
 
02.11.12
23:42
Такое ощущение, что у меня опять все упирается в диск - RAM дает смешные 86 Мегабайс в секунду. Чем можно диск потестить?
133 ВалераОшкин
 
02.11.12
23:49
маньячина, выходные же
134 H A D G E H O G s
 
02.11.12
23:54
Запустил
CrystalDiskMark
Для жесткого показал
60/50 Мб. чтения/записи
Для RAM
6000/7000 мб. чтения/записи.

Чето я где то не прав.
135 Fragster
 
гуру
03.11.12
01:19
блин, я бы выдал еще пару мыслей, но я вговно
136 Fragster
 
гуру
03.11.12
01:20
а темпДБ на раме?
137 H A D G E H O G s
 
03.11.12
18:00
(136) Да.
138 ХочуСказать
 
04.11.12
14:11
(137) база, темпдб, файлы сервера 1с все на раме и тормозит?
а че счетчики кажут?