Архитектура ИТ-системы на базе 1С в крупной организации. Часть 2. Чудес не бывает

Публикация № 858989

Администрирование - Производительность и оптимизация (HighLoad)

Развернуто отвечаю, как мы боремся с зависаниями системы и вообще решаем проблемы. С примерами, но без слайдов.

Как то отвечая на комментарии предыдущей статьи (//infostart.ru/public/857978/) родилась идея следующей, которая позволит развернуто ответить на некоторые вопросы.

Основной комментарий, подтолкнувший к ниженаписанному таков:

Чудны дела, твои.... зависшие фоновые задания, сеансы и/или блокировки - известный бич, все его знают и в случае глюков сервера - чистят сеансовые данные. А вы говорите "не сталкивался". Поделитесь опытом, чтоль - как так пролучается у вас?

Я начну, пожалуй, с конца, то есть с вывода. Чудес не бывает. Да, именно так, астрология лженаука, благодатный огонь зажигают сами монахи, используя несложные химические фокусы, молния — это не гнев Зевса, а всего лишь электрический разряд.

В нашей, ИТ среде всё то же самое, чудес не бывает. К любой проблеме есть рациональное объяснение, поэтому, когда мы в Компании сталкиваемся с какой-то проблемой, первое, что мы делаем – стараемся максимально окружить её красными флажками, чтобы никто, не дай бог не нарушил шаткое равновесие работающей проблемы, после чего начинаем тщательно рассматривать её со всех сторон.

Немного отступлю от темы, так как текст данной статьи не согласован ни с моим руководством ни с компанией 1С я извещаю, что все нижеописанные примеры являются выдуманными от начала до конца.

Итак, что именно зацепило меня во фразе – «как вы боретесь с зависаниями системы». Но что такое зависания системы? Зависания клиента? Сервера? Медленно открывается форма — это зависание? Если да – то с какого момента мы начинаем считать зависание проблемой?

В части проблем я стойкий приверженец ITIL, несмотря на всю его академичность написан он исходя из реального опыта тысяч людей. Не буду вдаваться в теорию, просто скажу, что, по моему мнению, нельзя задавать вопрос – как вы боретесь с зависаниями. Правильней спросить – какое обходное решение вы используете для проблемы №739. Да, не все проблемные ситуации 1С фиксирует как дефекты, зачастую мы получаем сообщение – данная ситуация не является проблемной, но наша задача, как технических специалистов доказать в том числе и тех поддержке 1С то, что та проблема, которую мы зафиксировали именно проблема и её надо устранить, сначала предложив обходное решение.

Ладно, хватит теории, примеры.

История первая.

Всем работающим в сезонной рознице известно, что декабрь год кормит, так что любой сбой системы в декабре, особенно в заключительной декаде, зачастую приводил к увольнению даже топ-менеджеров от ИТ, что уж говорить об обычных админах. Так что, когда мы заметили, что наш application сервер уходит в 100% нагрузку началась лёгкая паника.

Итак, развитие событий.

1 декабря.

Небольшой пик, всё нормально, средняя нагрузка на уровне 80 процентов, нечего беспокоиться.

5 декабря. Нагрузка уже на уровне 90%.

 

10 декабря. Всё, мы уже в 100% и пользователи начинают испытывать проблемы с производительностью.

Сразу скажу, та авария многому меня научила и об этом в конце, а пока – что делать? Известно, что понять, чем занимается application-сервер невозможно, нет таких метрик ни в ТЖ ни в консоли (напомню, это 8.3.6). Принимаем единственно возможное решение, подключаем топов, выходим на специалистов из 1С, начинаем работать непосредственно с ними. Снимаем дампы, отправляем на анализ. Выясняется, что у нас есть кусок кода, в котором формируется текст запроса. Ну что то вроде: ТекстЗапроса  = «Первая часть запроса» + «Вторая часть запроса» + «Третья часть запроса». Как мне потом говорили разработчики – это еще из типовой нам досталось, кусок по акционной механике, то есть данный код вызывается при каждом пробитии чека, причем несколько раз. Рекомендация 1С – заменить данный код на СтрСоединить.

Изменения в код были внесены 29 декабря. Результат виден на графике:

Выводы, которые мы сделали после той аварии:

  • Запас мощности системы должен быть минимум 50%, лучше 100%, то есть система должна спокойно переживать двукратный рост нагрузки. Если какие-либо показатели превышают 50% от максимального значения – начинайте нервничать.
  • У проблемы есть причина, при решении идите двумя путями, устраняйте последствия (поставьте еще один сервер, увольте 50% пользователей чтобы снизить нагрузку и т.п.), но параллельно ищите причину. Часто, устранив последствия, пропадает мотивация искать причину, всё же уже хорошо, поэтому иногда мы запрещаем устранять последствия обходным путём, если это стоит бизнесу не слишком дорого, а ищем причину сразу, не отходя от кассы.
  • Если вам 10 человек сказали, что причина неизвестна и найти её не представляется возможным – ищите одиннадцатого.

История вторая.

Зависающее фоновое задание.

Появилось некое фоновое задание, которое могло длиться часами и не завершиться ничем. Причем судя по косвенным данным оно чем то занималось, причем весьма активно, так как после удаления сеанса нагрузка на application падала сразу на 10-20%, на SQL сессии естественно не было, иначе мы легко могли бы понять, что оно делает, что то крутилось именно внутри app.

Урок, который я извлек из этой истории таков. Любую (!!!) проблему с зависаниями можно решить с помощью технологического журнала. Если её нельзя решить с помощью ТЖ – значит её смогут решить только сотрудники 1С, так как тут требуется анализ дампов и доступ к исходникам. В нашем случае всё оказалось достаточно банально, в коде была ошибка, в результате которой задание уходило в пустой бесконечный цикл. Поправили код, еще одной загадкой стало меньше.

История третья.

Зависающие rphost-ы.

Периодически в системе возникала странная ошибка, пользователи не могли войти в неё, текст ошибки уже точно не помню, то ли «Нет доступных серверов» то ли что-то похожее, надо в почте порыться, но ситуация была странна тем, что те, кто уже зашёл в систему успешно продолжали работать. Некоторые пользователи всё-таки заходили, иногда с первого раза, иногда с пятого. Поиск ошибок по ТЖ показал, что все «неудачники» пытались подключиться к одному и тому же процессу, если этот процесс убить – проблема исчезала. Дальше схема уже стандартная по решению проблем. Ищем обходное решение и ищем причину проблемы. Ждать жалоб от пользователей, а потом убивать зависший процесс решение так себе. В итоге выяснили, что в ТЖ есть четкие записи – «вот плохой процесс, менеджер, убей его». Если в ТЖ одна такая запись – всё хорошо, менеджеру приказали, он убил, а вот если записей больше одной – это означает что менеджер попытался убить процесс, но у него не удалось и агент снова и снова приказывает убить отщепенца. Обходное решение – ставим данный процесс на мониторинг, в почту сообщаем о зависшем процессе, убиваем руками. Причина – дефект в движке, исправлено в 8.3.12. Справедливости ради скажу, что воспроизводится данный дефект по моей информации только у нас. У нас вообще в связи с объемами много такого, что не воспроизводится больше нигде, поэтому на всякий случай напоминаю – все случаи выдуманы!

История четвертая.

Зависающий клиент.

У нас порядка 8 тысяч работающих клиентов и вот появился ОН. При запуске система зависает. Висит окно запуска и всё, ни в какую, переустановка платформы не помогла, очистка кеша не помогла. В ТЖ всё очень аскетично.

17:25.704000-0,EXCP,0,process=1cv8c,OSThread=7856,setTerminateHandler=setTerminateHandler

17:26.297001-1,LIC,1,process=1cv8c,OSThread=7212,Func=initialize,txt='local Application, hasp HL SOFT local, ORGL8 local net, ORG8A local net, ORG8B local netBase local net'

17:26.297003-1,LIC,1,process=1cv8c,OSThread=7212,Func=getLicense,res=error,txt='0, client, error, local Application;

  hard, local, Base, absent;

  hard, net, Base, absent'

Делаем дамп процесса, отправляем в 1С – результат – система не может определить принтер по умолчанию. Проблема в драйвере принтера, попробуйте его переустановить.

Переустанавливаем, всё начинает работать. Что это было и почему в ТЖ пустота — это проблема, но мы сейчас пытаемся доказать, что это дефект в движке и зафиксировать его.

Как видите, все выше приведенные примеры разные, есть проблемы в движке, есть в коде, но на вопрос «что делать с зависаниями системы» у меня ответ один – разбираться, что именно зависает. Начните с анализа ТЖ, в 99% случаев вы найдете ответ там. Если ответа нет, нужно либо искать специалиста, обладающего достаточной квалификацией чтобы докопаться до причины либо передавать запрос в техподдержку 1С.

Чудес не бывает.

P.S. Начал перечитывать статью и понял, что не ответил на сам вопрос. Да. Мы чистим сеансовые данные, но не из-за глюков системы, а просто потому, что, когда 7 тысяч пользователей одновременно пытаются их прочитать, дисковая подсистема проседает и вместо запуска в течение 1 минуты пользователям приходится ждать по 10-15 минут. Когда обновление плановое, ночью, очищать сеансовые данные нет необходимости, нагрузка растет постепенно.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Alien_job 177 04.07.18 09:31 Сейчас в теме
Спасибо за статью! Очень интересно читать такие выдуманные истории с полезными техническими подробностями, а не ту воду которая заливает этот сайт из окон одной графоманской компании.
Dentaky; Yakud3a; LordKim; Igor_K_; jONES1979; primat; Mantis; Dimkasan; dunpil; dabu-dabu; PLAstic; AlexGroovy; GOshaSaveiko; Vladimir Litvinenko; Art1387; user621724_Dimav1979; CSiER; t.v.s.; morohon; Infactum; +20 1 Ответить
2. Evil Beaver 6893 04.07.18 10:00 Сейчас в теме
молния — это не гнев Зевса

Ну начинается... Вы еще скажите, что 1С лучше САПа :)
Berckk; Bronislav; kraynev-navi; pbabincev; +4 1 Ответить
5. Dzenn 434 04.07.18 10:19 Сейчас в теме
(2) а что, 1С хуже САПа, по твоему? Ты откуда такой динозавр выкопался?
Yakud3a; nvv1970; +2 1 Ответить
11. Evil Beaver 6893 04.07.18 11:18 Сейчас в теме
(5) Не помню, чтобы пил с Вами брудершафта, коллега, ну да Бог с ним.... перечитайте мой комментарий еще раз, особенно вводную цитату про Зевса. Может быть, Ваш вопрос снимется сам собой.
20. AlexGroovy 04.07.18 15:12 Сейчас в теме
(11)Андрей,мне очень нравятся ваши статьи на Инфостарте,но вот смысла этого выражения "Вы еще скажите, что 1С лучше САПа"- я не понял.
22. Evil Beaver 6893 04.07.18 15:23 Сейчас в теме
(20) пояснять шутки неблагодарное занятие, но попробую, раз уж вас двое....

Итак, автор утверждает, что "молния - это не гнев Зевса, а электрический разряд". Я с ним якобы не соглашаюсь и говорю что молния - это все же гнев Зевса, а САП - лучше чем 1С. Оба утверждения одинаково достоверны с "моей" точки зрения.
JohnyDeath; NoPlayer; strange2007; LordKim; +4 Ответить
23. genayo 04.07.18 15:26 Сейчас в теме
(22) Смайлов не было - не шутка. Такая молодежь пошла :)))
JohnyDeath; +1 Ответить
25. AlexGroovy 04.07.18 15:30 Сейчас в теме
(23)Смайлик есть,я просто никогда не смеялся над английским юмором.
26. genayo 04.07.18 15:32 Сейчас в теме
(25) Тогда непонятно - ну не поняли вы шутки, но поняли, что это шутка, зачем тогда её объяснить просите?
27. AlexGroovy 04.07.18 15:37 Сейчас в теме
(26)Я вообще не понял ,что это шутка .Я в этом просто увидел сарказм ,что SAP лучше 1С,но никаких аргументов к этому нету.Я хотел получить аргументы ,почему SAP лучше 1С,потому что для меня- это новость.
28. genayo 04.07.18 15:38 Сейчас в теме
(27) Вы понимаете, надеюсь, что вопрос хуже/лучше не имеет смысла, если не определены критерии для сравнения?
30. AlexGroovy 04.07.18 15:39 Сейчас в теме
(28)Согласен,что нужны критерии сравнения,но можно и дать более менее правильную "общую" оценку в совокупности критериев.
24. AlexGroovy 04.07.18 15:27 Сейчас в теме
(22)Т.е. по вашему мнению SAP лучше 1С?
29. Evil Beaver 6893 04.07.18 15:39 Сейчас в теме
51. mbreaker 1346 06.07.18 08:47 Сейчас в теме
(24) Решить вопрос поможет опрос:

Что лучше?
1) Грейпфрут
2) Мандарин
3) Сэр Элтон Джон
4) Спагетти №7
5) Windows 10

Варианты ответов присылайте по адресу whocares@holywars.com

P.S. )))
P.P.S. sarcasm )))
P.P.P.S. любые совпадения с реальными объектами случайны!!!
LordKim; Rustig; +2 Ответить
45. buganov 156 05.07.18 10:18 Сейчас в теме
(22) надо было табличку сарказм прикрепить
Прикрепленные файлы:
48. pm74 180 05.07.18 13:57 Сейчас в теме
(45) слово "sarcasm" нечеткое , нужно по русски , Arial 40 , жирный шрифт
49. Repich 510 05.07.18 14:17 Сейчас в теме
(48)
В ТЗ не было указано таких подробностей, разработчик сделал на свое усмотрение, если не устраивает - заводите новую задачу, плановая дата выхода задачи в продуктив - октябрь 2018 г.
50. pm74 180 05.07.18 15:15 Сейчас в теме
74. brr 179 05.09.18 14:53 Сейчас в теме
(49) что-то слишком быстро, у вас задач нет?
3. morohon 04.07.18 10:06 Сейчас в теме
Очень интересно, спасибо за выдуманные истории!
4. pbabincev 123 04.07.18 10:18 Сейчас в теме
Такие интересные выдуманные истории и вредные советы)
6. FesenkoA 50 04.07.18 10:25 Сейчас в теме
Расскажите больше о примерах "неожиданной" оптимизации. Таких как в 1 примере: всегда считал что конкатенация строк быстрее процедур платформы. Разрабатываю системы на 10-20 пользователей, проблема производительности стоит только в "узких местах", хотелось бы изучить чужой опыт подводных камней 1С.
7. nicxxx 239 04.07.18 10:55 Сейчас в теме
(6) Почитайте про конкатенацию здесь и удивитесь. https://helpf.pro/faq8/view/1519.html
shard; PLAstic; +2 Ответить
12. Evil Beaver 6893 04.07.18 11:21 Сейчас в теме
(7) выучите С++ и больше никогда не будете удивляться медленной конкатенации )))

Ну или прочитайте классику от Джоэла http://russian.joelonsoftware.com/Articles/BacktoBasics.html
Yakud3a; PLAstic; fishca; CSiER; nicxxx; +5 Ответить
17. nicxxx 239 04.07.18 12:50 Сейчас в теме
72. strange2007 143 13.08.18 13:09 Сейчас в теме
(12) C++ это жуткие тормоза. Асм рулит и никак иначе!
(ухахахахахах)
8. kauksi 209 04.07.18 10:59 Сейчас в теме
(6) вам на курс Гилева по оптимизации для программистов
GreenDragon; +1 1 Ответить
13. FesenkoA 50 04.07.18 11:24 Сейчас в теме
(8) пока нет производственной необходимости, но чувствую что все же скоро придется..
9. Inkasor 27 04.07.18 11:05 Сейчас в теме
(6)эээ, што?
Правило производительности №1 - платформенный метод всегда быстрей, чем код на языке 1С. Если вдруг медленней, значит вы используете не ту комбинацию платформенных методов для решения задачи.
14. FesenkoA 50 04.07.18 11:25 Сейчас в теме
(9) не всегда все же. Те же сортировки можно организовать быстрее чем Сортитровать("поле")
10. CSiER 30 04.07.18 11:08 Сейчас в теме
(6) Почему конкатенация работает именно так хорошо описано в книге "Методическое пособие по эксплуатации крупных информационных систем 1С. 2-е издание" на стр. 248. Там же описан случай, когда не стоит применять СтрСоединить() вместо конкатенации.
33. Gureev 04.07.18 16:50 Сейчас в теме
(10) А можно привести цитату для тех, у кого нет второго издания. В первом нет страницы 248.
42. CSiER 30 05.07.18 03:29 Сейчас в теме
(33)
А можно привести цитату

в книге описывается пример конкатенации трех строк: рез = строка1 + строка2 + строка3 - при этом будет выделено 5 областей памяти (4 под переменные и одна для промежуточного значения строка1+строка2). Причина - строка является немутабельным объектом, который не может быть изменён на уровне платформы. Далее цитата с выводом:
Особенно явный негативный эффект такого поведения заметен при конкатенации больших строк – например, при формировании по частям текста длинных запросов в коде прикладных решений. Кроме большого объема занимаемой памяти возможны замедления, связанные с выделением (аллоцированием) областей памяти для помещения копий объектов. При интенсивном ее использовании память сильно фрагментирована, и на выделение памяти под большой объект может тратиться достаточно ощутимое время.

Про СтрСоединить:
В актуальных версиях платформы для сложения строк рекомендуется использовать метод СтрСоединить(), принимающий в качестве входного параметра массив складываемых строк. Данный метод оптимизирован в части использования памяти. Но при его использовании нужно учитывать, что для маленьких строк накладные расходы на создание исходного массива могут превысить эффект от самого оптимизированного сложения строк.

Про выделение памяти:
Строка
■ Размер – 40 байт для x86 и 64 байта для x64.
■ Может хранить короткие строки внутри себя (до 9 символов).
■ Для длинных строк используется дополнительная память размером 2*N символов.
LordKim; FTC; shard; Rustig; PLAstic; sanjabor; Gureev; +7 Ответить
15. genayo 04.07.18 12:05 Сейчас в теме
Из практики, примерно сколько процентов "пойманных" вами дефектов признаются и исправляются вендором, и насколько сложно "заставить" вендора признать дефект? Ну и спасибо за вашу работу, надеюсь, она приведет к повышению качества платформы в целом.
19. Repich 510 04.07.18 14:31 Сейчас в теме
(15)
Те, которые признаны дефектами - 100%, другое дело что от момента фиксации дефекта до его исправления может пройти год и более.
21. genayo 04.07.18 15:12 Сейчас в теме
(19) А сколько процентов из тех, что вами определены как дефекты, признаны как дефекты вендором?
32. Repich 510 04.07.18 16:42 Сейчас в теме
(21)
Мы умеем быть настойчивыми.
59. Rustig 1613 09.07.18 09:07 Сейчас в теме
(0) что из статьи можно взять и применить?!
только то, что учитесь делать дамп и отправлять его в техподдержку 1с.
в чем смысл иметь 7000 клиентов, и не иметь в штате крутого 1с-ника - который в отладке решит все вопросы с зависаниями и пиковыми нагрузками из-за кривого кода?
(15) вряд ли 1С примет к сведению такого рода ошибки - капля в море.
64. genayo 09.07.18 09:28 Сейчас в теме
(59) В теории как раз ошибки от таких клиентов, с КОРП лицензиями и большими нагрузками, 1С должна принимать и исправлять в первую очередь. На практике, видимо, все равно приходится затрачивать на это значительные усилия.
16. Gilev.Vyacheslav 1867 04.07.18 12:33 Сейчас в теме
Основная проблема всех крупных компаний - впадения в крайности по консолидации и уплотнению всего и вся мол так дешевле обслуживать
тоже самое касается таких поделок как ERP, я удивлен что 1С одной конфигурацией не попытались консолидировать вообще любое предприятие
FTC; Dem1urg; Danil.Potapov; fishca; neikist; ZOMI; +6 Ответить
38. Repich 510 04.07.18 22:38 Сейчас в теме
(16) А почему ты считаешь это проблемой? По сравнению с РТК данный проект я считаю гораздо более успешным и интересным.
55. Gilev.Vyacheslav 1867 07.07.18 21:35 Сейчас в теме
(38) потому что упрощение для админов по целентрирозованному бэкапированию например оборачивается сильным взаимным давлением разных базы,

если влияние двух или трех баз друг на друга еще как можно разобрать, то 50 разнородных баз с разнородной нагрузкой, а значит противоречивыми требованиями к дискам превращают всё в цирк

все умные, у всех попа прикрыта, только не работает и компания начинает нести убытки

у неискушенных руководителей шансов разобраться мало в том, откуда ноги растут, так как ошибка хоть и не слишком глубоко зарыта, но взять на себя ответственность учить подчиненных как организовывать ресурсоизолированность рискованно и вероятность сабатажа it-шниками такой инициативы 146%...
56. Repich 510 08.07.18 14:13 Сейчас в теме
(55)
Слава, честно - не понял о чём ты.
Мы решили работать в одной базе не для того чтобы прикрыть попу и не для удешевления, как ты понимаешь - стоимость нашей системы по сравнению с основной системой компании - копейки.
57. Gilev.Vyacheslav 1867 08.07.18 21:21 Сейчас в теме
(56) да это не важно, из каких соображений вы решили консолидировать в одну базу 7000 пользователей
важно что можно было ли сделать по-другому и был бы другой вариант лучше

у вас что все пользователи используют данные всех других пользователей? нет конечно...
58. Repich 510 09.07.18 01:00 Сейчас в теме
(57)
Что значит лучше? Тут же нет одномерной шкалы от -100 до +100, где -50 плохо, +36 нормально, а +90 хорошо.
Конечно большинство пользователей не использует данные друг друга, но возможность получать данные в онлайне для 1-2 ключевых пользователей, например для сайта оправдывает.... А что собственно оправдывает то? Какие варианты еще? РИБ?
65. Gilev.Vyacheslav 1867 09.07.18 14:19 Сейчас в теме
(58) если бы вы писали фейсбук на 1С, то вы бы тоже все загнали в одну базу

а надо делать систему горизонтально масштабируемой, чтобы новые пользователи спокойно бы усаживались на дополнительный сервер

что делать - это уже следующий вопрос

у нас - 14 000 пользователей, мы делаем микросервисы, каждую функцию в отдельную базу закидываем, при этом это не лучший вариант
еще более правильней людей сажать в разные базы исходя из пересекаемости данных

можно делить не по функциям, а по ролям пользователей "модули"

к сожалению в 1С нельзя динамически добавлять таблицы (да еще бы хорошо не в одну базу данных), это главная проблема масштабируемости 1С

но я тут в двух словах быстро большую и сложную тему не смогу изложить
VSOP_juDGe; farukshin; +2 Ответить
67. Repich 510 09.07.18 14:24 Сейчас в теме
(65)
Как раз последний год, когда мы выросли с 3500 до 7000 пользователей (это был внеплановый рост, мы под него не закладывались) показал, что с горизонтальным ростом как раз всё хорошо, добавили app-сервера, вынесли регламенты на отдельный сервер, вот пожалуй всё, что потребовалось. А, ну и лицензии купили.
dancer_petrovich@list.ru; +1 Ответить
70. Gilev.Vyacheslav 1867 16.07.18 09:38 Сейчас в теме
(67) ага, и базу данных размазали по серверам )))
61. Rustig 1613 09.07.18 09:12 Сейчас в теме
60. Rustig 1613 09.07.18 09:10 Сейчас в теме
66. Gilev.Vyacheslav 1867 09.07.18 14:21 Сейчас в теме
(60) можно объяснить всё, но не всем )))
18. PerlAmutor 122 04.07.18 14:17 Сейчас в теме
(0)
задание уходило в пустой бесконечный цикл

Было такое. Решил достаточно просто. Запустил конфигуратор, подключился к заданию отладчиком, нажал остановить. Прогнал код пару циклов и все стало понятно.

Причина – дефект в движке, исправлено в 8.3.12. Справедливости ради скажу, что воспроизводится данный дефект по моей информации только у нас.

Вас обманули. Мы с этим дефектом живем уже пару лет.

Делаем дамп процесса, отправляем в 1С – результат – система не может определить принтер по умолчанию. Проблема в драйвере принтера, попробуйте его переустановить.

А вот эта штука достаточно коварная. Частенько сталкиваемся с тем, что кто-то формирует печатную форму на одном компьютере, а потом переходит на другой и пытается сделать тоже самое там. Но настройки печати сохранены, в том числе и принтер по умолчанию и платформа падает/глючит, что угодно.

Спасибо за статью. Было бы интересно почитать еще с примерами анализа технологического журнала.
serge_focus; Yakud3a; Terve!R; Rustig; PLAstic; +5 Ответить
62. Rustig 1613 09.07.18 09:14 Сейчас в теме
(18) ну вот, наконец-то - взгляд на проблемы программиста 1С.
31. Kamikadze 46 04.07.18 16:41 Сейчас в теме
Зависающие rphost-ы.

В нас решили проблему отключением журнала регистрации. При объемах больше 18 ГБт записали отдельные хосты
37. Repich 510 04.07.18 18:26 Сейчас в теме
(31)
У нас он только ошибки регистрирует. Всё собираюсь сделать по человечески, подключив ElasticSearch, руки не доходят.
34. ansh15 04.07.18 17:17 Сейчас в теме
Выводы, которые мы сделали после той аварии:
Запас мощности системы должен быть минимум 50%, лучше 100%, то есть система должна спокойно переживать двукратный рост нагрузки. Если какие-либо показатели превышают 50% от максимального значения – начинайте нервничать.

Вопрос к автору публикации: руководство также прониклось этой мыслью и выделило достаточное финансирование на реализацию этой идеи? Или...?
36. Repich 510 04.07.18 18:19 Сейчас в теме
(34)
С этим проблем нет, если ты способен доказать, что так надо - деньги дадут. Сейчас у нас 6 app серверов со средней нагрузкой по ЦПУ где то на уровне 30%.
35. Sergey.Noskov 1169 04.07.18 17:31 Сейчас в теме
Запас мощности системы должен быть минимум 50%, лучше 100%, то есть система должна спокойно переживать двукратный рост нагрузки.
у нас схожая проф.деформация)) «Вы либо УЖЕ параноик, либо ЕЩЁ не параноик»
39. Repich 510 04.07.18 22:39 Сейчас в теме
(35)
Тут еще фишка в том, что 25-30 декабря мы реально испытываем двукратный рост нагрузки, поэтому к новогоднему периоду готовимся особенно тщательно.
63. Rustig 1613 09.07.18 09:18 Сейчас в теме
(39) в чем прикол 25-30 декабря испытывать колоссальную нагрузку, и не поменять до сих пор бизнес-процесс - 25-30 декабря - это пик продаж, то есть у вас кучка розничных магазинов.... так выделите отдельные базы только для розницы, а на январских праздниках перекинете сведения о продажах в основную базу.
68. Repich 510 09.07.18 14:27 Сейчас в теме
(63)
В том что мы не знаем, где стрельнёт. В 2016 году стрельнула смежная система, на которую мы завязаны, но на которую не можем повлиять.
В 2017 подготовились к ней, но стрельнуло в другом месте.
В итоге сейчас ставим нагрузочный стенд на 8 тысяч пользователей, но это достаточно трудозатратный процесс.
40. ivanov660 2343 04.07.18 23:43 Сейчас в теме
(35) Режет уши фраза про запас системы в 100%. Это как? Некоторые гуру говорят, что начинать переживать стоит в тот момент, когда average CPU load превысит 70-80% иначе это недоиспользованные мощности и лишние расходы.
Надо мониторить за изменением нагрузки и ждать момента "беспокойства". А вот наличие аномалий, к примеру, внезапного серьезного падения производительности стоит исследовать незамедлительно с установкой сигнализации на такие ситуации.
41. Repich 510 05.07.18 00:05 Сейчас в теме
(40)
Это означает что повышение нагрузки в 2 раза (на 100%) не приводит к остановке системы в связи с нехваткой ресурсов.
Про лишние расходы говорить не готов, с точки зрения бизнеса лучше (дешевле) платить год за недоиспользованные мощности, чем испытать часовой простой системы.
CheBurator; ansh15; +2 Ответить
43. genayo 05.07.18 06:11 Сейчас в теме
(41) Кстати, для минимизации затрат на избыточные мощности, обычно используются облака, Амазон и им подобные. Но, в свете последних событий, для России это не вариант...
44. ivanov660 2343 05.07.18 09:48 Сейчас в теме
(41) зависит от стоимости этих ресурсов, а рост нагрузки в два раза просто так не случается.
46. besica 05.07.18 11:03 Сейчас в теме
Зависающие rphost:

Справедливости ради скажу, что воспроизводится данный дефект по моей информации только у нас.

+1, причем только на проде, на тестовых повторить не получилось. В итоге мы то откатились на платформу на которой все еще было хорошо.
47. Evil Beaver 6893 05.07.18 11:10 Сейчас в теме
Любую (!!!) проблему с зависаниями можно решить с помощью технологического журнала.

Поделитесь примером - в каком именно направлении вы смотрите, выявляя проблемные/зависшие сеансы?
ivanov660; PSafonov; CSiER; +3 Ответить
52. zarucheisky 06.07.18 11:21 Сейчас в теме
Молодец, Олежек :)
Токмо вот с архитектурой скуля можно было поиграться да и... с серверами желтыми тож.
53. Repich 510 06.07.18 12:45 Сейчас в теме
(52)
А нафига, Жень? Ту цель, которую ставили - они вполне себе выполняют.
54. Patrio_O_Muerte 06.07.18 17:25 Сейчас в теме
По названию я ожидал более фундаментального труда, чем описание нескольких отловленных багов.
69. Mantis 136 11.07.18 07:48 Сейчас в теме
71. chng 20.07.18 17:26 Сейчас в теме
>... ищите одиннадцатого....
Никто не оценил.
73. teembox 04.09.18 11:20 Сейчас в теме
Спасибо. Статья норм, опыт пригодится.
Оставьте свое сообщение

См. также

Исследование технологического журнала 1С при помощи регулярных выражений в блокноте Промо

Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

Все из тех, кто пробовали сдать на сертификат "Эксперт по технологическим вопросам 1С", сталкивались с методикой ЦКТП - разбор файлов технологического журнала при помощи консоли bash. Я, в свою очередь,внёс изменения в данную методику. Мне хотелось достичь более понятного вида и сфокусироваться на Perl, в качестве предпочтительного средства обработки файлов ТЖ. Вот что из этого вышло:

30.10.2017    30139    MrWonder    42    

Анализ проблем производительности по динамике мониторинга RAS 1C

Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

В статье приведем список наиболее чувствительных параметров к изменением производительности системы, также расскажем и покажем, как они изменяются, на что влияют, и дадим советы, что делать.

07.10.2020    3169    ivanov660    12    

Ускорение медленной работы строк в 1С на примере 1С:Документооборот КОРП

Производительность и оптимизация (HighLoad) v8 ДО Бесплатно (free)

Если у вас в 1С:Документооборот КОРП 2.1.11.5 (часть более старых и новых конфигураций): 1) Долго отправляется почта в формате HTML; 2) Медленно открывается документы внутренние / входящие / исходящие; 3) Тормозит область просмотра или открытие задач. Тогда вам сюда.

02.10.2020    3759    Nykyanen    16    

Тест скорости работы мобильной платформы 1С

Мобильная разработка Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

С помощью этого приложения вы можете измерить производительность своего устройства, используя для этого мобильную платформу 1С:Предприятие. Набор действий теста полностью повторяет аналогичный тест для стационарных ПК, поэтому результаты сравнимы.

14.09.2020    1190    capitan    19    

Долго открывается конфигуратор Промо

Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

В ОС Windows Server 2012 бывает полезно выключать службу Dynamic Fair Share Scheduling (DFSS позволяет балансировать и распределять ресурсы между пользователями), чтобы повысить производительность 1С:Предприятие 8 в ряде случаев.

22.04.2015    41304    Gilev.Vyacheslav    1    

Описание почти всех событий технологического журнала

Технологический журнал v8 Бесплатно (free)

Краткое описание событий технологического журнала с примерами. Все для быстрого старта.

19.08.2020    8617    YPermitin    30    

Адаптация автоматической классификации ошибок технологического журнала при появлении новых текстов и типов

Технологический журнал v8 1cv8.cf Бесплатно (free)

Корректируем классификацию ошибок ТЖ в процессе работы для конфигурации мониторинг производительности

17.08.2020    473    ivanov660    0    

SQL для 1С: пишем правильно, красиво, сложно

Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

Многие программисты боятся работать с Null, считая, что от этих данных в запросах нужно избавляться. О том, как с помощью Null-полей в запросе решать востребованные в учете задачи по выборке данных, на конференции Infostart Event 2019 Inception рассказал ведущий разработчик ГК WiseAdvice Дмитрий Дудин.

14.08.2020    10111    dmurk    30    

Как можно "положить" SQL сервер с помощью обычной консоли запросов 1С Промо

Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

Описано как из 1С, с помощью безобидной на первый взгляд обработки, можно сделать неработоспособным SQL сервер. Предложены меры, позволяющие избежать этого.

22.01.2014    67644    yuraos    112    

Нестандартные блокировки при работе с OLAP-нагрузкой

Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

Если выполнение отчета мешает работе других пользователей и провоцирует блокировки, даже с учетом «грязного чтения» – ситуация кажется парадоксальной. О том, как расследовать такие проблемы, на конференции Infostart Event 2019 Inception рассказали ведущий программист торгового дома «Петрович» Станислав Щербаков и специалист по производительности компании «СофтПоинт» Александр Денисов.

20.07.2020    2012    Филин    7    

Автоматическая классификация ошибок технологического журнала

Технологический журнал v8 1cv8.cf Бесплатно (free)

В статье обсудим пример практической настройки конфигурации «Мониторинг производительности» для автоматической классификации ошибок по группам/кластерам на данных текстов описания ошибок. Используем механизм векторной модели текстов и косинусное сходство между ними.

25.06.2020    2894    ivanov660    12    

Выявляем и оптимизируем ресурсоемкие запросы 1С:Предприятия

Производительность и оптимизация (HighLoad) Администрирование СУБД Технологический журнал Структура метаданных v8::Запросы Бесплатно (free)

Обычно предметом оптимизации являются заранее определенные ключевые операции, т.е. действия, время выполнения которых значимо для пользователей. Причиной недостаточно быстрого выполнения ключевых операций может быть неоптимальный код, неоптимальные запросы либо же проблемы параллельности. Если выясняется, что основная доля времени выполнения ключевой операции приходится на запросы, то осуществляется оптимизация этих запросов. При высоких нагрузках на сервер СУБД в оптимизации нуждаются и те запросы, которые потребляют наибольшие ресурсы. Такие запросы не обязательно связаны с ключевыми операциями и заранее неизвестны. Но их также легко выявить и определить контекст их выполнения, чтобы оптимизировать стандартными методами.

24.05.2020    7792    DataReducer    22    

Ускоряем списание партий УПП 1.2 / 1.3 / УТ 10.3 Промо

Производительность и оптимизация (HighLoad) v8 УТ10 УПП1 Бесплатно (free)

Не секрет, что многие пользователи, использующие партионный учет (а таких очень много, даже среди огромных холдингов, несмотря на пропаганду РАУЗ) при больших нагрузках сталкиваются с резким замедлением списания партий.

21.06.2013    55592    Антон Ширяев    117    

[SQL Server] Использование trace flag 9592 для сжатия траффика в кластере AlwaysOn

Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

Недавно мы столкнулись с проблемой производительности, при которой дополнительная нагрузка, связанная с записью большого массива данных, приводила к существенным задержкам в операциях записи основного траффика. Найденное решение позволило не только уменьшить влияние нового процесса на основной пользовательский трафик, но и существенно снизить сетевой траффик между синхронными репликами кластера.

18.05.2020    2202    Aleksey.Bochkov    4    

Эти занимательные временные таблицы

Производительность и оптимизация (HighLoad) Администрирование СУБД v8 Бесплатно (free)

Кое-что интересное о временных таблицах и работе платформы 1С с ними.

06.04.2020    12279    YPermitin    0    

Оптимизация запросов 1С посредством индексации временных таблиц. Миф? Тестируем, смотрим, считаем

Производительность и оптимизация (HighLoad) Практика программирования v8 Бесплатно (free)

Появилось свободное время, решил проверить на работе индексацию таблиц. Решил поделиться с Вами результатами исследования. Давайте порассуждаем на эту тему? Часто ли вы пользуетесь индексацией в запросах? Платформа 8.3.16.1224

03.04.2020    4767    feva    15    

Сравнение скорости работы 1C+MSSQL и файлового варианта Промо

Производительность и оптимизация (HighLoad) v8 1cv8.cf Россия Бесплатно (free)

На форумах постоянно задается один и тот же вопрос: почему 1C+MSSQL медленнее обрабатывает запросы чем файловая? Затем обычно идет «флуд» на несколько десятков страниц. Есть два популярных «течения» в таких форумах — одни говорят что для клиент-серверного варианта это нормально, файловый вариант всегда должен работать быстрее, другие говорят что 1С плохо работает с субд. В результате «баталий и выяснения отношений» на форумах люди расходятся при своих мнения.

19.02.2013    54926    Gilev.Vyacheslav    46    

Как я собрал для себя высокопроизводительный и бесплатный облачный бекенд для 1С на PosgreSQL + PostgREST

Производительность и оптимизация (HighLoad) WEB Интеграция Мобильная разработка Администрирование веб-серверов v8 Бесплатно (free)

В этой статье я расскажу о проблемах бека для мобильных приложений или другого фронта, который требует производительности, быстрой реакции и отказоустойчивости, и как я решил это благодаря opensource проекту PostgREST и СУБД Postgre SQL 12. Проведу простой тест производительности для сравнения 1С с данным решением. Это может быть полезно всем, кто разрабатывает мобильные приложения либо фронтсайд-приложения для 1С на чем угодно - на мобильной платформе или на нативном языке или на Simple UI. И также обзор новых функций SimpleUI для связи с этим бекендом.

31.03.2020    13504    informa1555    31    

Многострочный контекст событий

Производительность и оптимизация (HighLoad) Технологический журнал v8 Бесплатно (free)

Разбор технологического журнала с группировкой событий по первой или последней строке многострочного контекста.

31.03.2020    3207    vasilev2015    9    

Анализ взаимоблокировок

Производительность и оптимизация (HighLoad) Технологический журнал v8 Бесплатно (free)

Скрипт Bash, который выводит полную информацию взаимоблокировок по технологическому журналу. Не имеет аналогов в отечественных публикациях.

20.03.2020    5361    vasilev2015    26    

Параллельные вычисления в 1С 8 Промо

Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

Решение позволяет ускорять выполнение запросов в 1С 8 в отчетах путем их параллельного выполнения в разных потоках.

11.02.2013    30193    gallam99    19    

Многопоточность

Практика программирования Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

Увеличиваем скорость загрузки данных в 20 раз. Как следует использовать многопоточность и готовый модуль для внедрения.

18.03.2020    7452    kaliuzhnyi    43    

Планы запросов - это просто! Разбор оптимизаций запросов PostgreSQL на живых примерах

Производительность и оптимизация (HighLoad) v8::Запросы Бесплатно (free)

Проблема быстродействия 1С напрямую зависит от производительности запросов. Но как понять механику работы СУБД с помощью плана запроса? Андрей Овсянкин и Никита Грызлов на конференции Infostart Event 2019 Inception подробно рассмотрели алгоритм работы с планом запроса СУБД PostgreSQL, полученным из технологического журнала, и рассказали, на что обратить внимание, чтобы оптимизировать работу системы.

17.02.2020    10234    Evil Beaver    13    

Ubuntu vs CentOS vs Win2k8 vs Debian: производительность PostgreSQL Промо

Статистика базы данных Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

Хотя интернет уже переполнен статьями о "правильной" настройке связки PostgreSQL и 1C 8.2, для подводных камней всегда остается место. При сравнении производительности СУБД PostgreSQL на разных ОС, показатели различаются в разы. Самую большую обиду принесла любимая Ubuntu (человечность). После долгих дней и ночей проведенных за консолью этой ОС, она разочаровала окончательно. Тормоза PostgreSQL в Ubuntu Server. Что с ними делать? Сколько раз можно наступать на грабли?

03.11.2012    43026    madmpro    32    

Оптимизатор запросов. Вторая часть

Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

Продолжение статьи об оптимизаторе запросов. Во второй части мы попробуем создать свой оптимизатор и попутно разберемся с такими вопросами, как: хранение файлов; индексы; статистика.

23.01.2020    6563    darkdan77    59    

Улучшаем производительность 1С. Рекомендации

Производительность и оптимизация (HighLoad) v8 1cv8.cf Россия Бесплатно (free)

Каждый уважаемый разработчик 1С сталкивался или столкнется с вопросом производительности высоконагруженных систем. В статье агрегирован основной набор рекомендаций, который позволит повысить производительность системы. Эти рекомендации должны быть просто must have по определению.

23.01.2020    8170    Kaval88    26    

Мониторим производительность с помощью 1С RAS

Инструментарий разработчика Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

Подключаемся и анализируем данные через 1С RAS. Необходимо выполнить 5 пунктов и серьезный инструмент мониторинга будет у вас в руках.

19.12.2019    12159    ivanov660    16    

Весёлые картинки о работе Performance Monitor на Windows Server 2016 Std по мотивам расследования потери производительности на базе 1С

Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

Данная публикация посвящена одной особенности Performance Monitor на Windows Server 2016 Std. Как понимать графики Performance Monitor на Windows Server 2016 Std при расследовании проблем в работе 1С.

22.10.2019    7804    EugeneSemyonov    11    

Обслуживание баз данных. Не так просто, как кажется

Производительность и оптимизация (HighLoad) Администрирование СУБД v8 1cv8.cf Бесплатно (free)

Считаете, что обслуживание индексов и статистик дело простое? Что ж, это не всегда так.

14.10.2019    18304    YPermitin    28    

Мониторинг высоконагруженной системы

Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

Высоконагруженной системе (более 8000 клиентских сессий) мониторинг необходим. Про опыт использования инструментов для мониторинга – самописной системы информирования, написанной на C#, и конфигурации «Центр контроля качества» в связке с системой отображения данных Grafana, на конференции Infostart Event 2018 Education рассказал Олег Репников.

13.09.2019    9212    Repich    5    

Использование Zabbix для сбора информации о серверных вызовах и управляемых блокировках с сервера 1С Предприятия, работающего на платформе GNU/Linux

Администрирование данных 1С Zabbix v8 Бесплатно (free)

Описанные в данном опусе механизмы ни в коей мере не противопоставляются тому, что реализует КИП от 1С или какие-либо другие инструменты (решения)! Это всего лишь еще один взгляд на "проблему", который может быть полезен в некоторых ситуациях.

10.09.2019    19058    Sloth    24    

Хранение файлов - как уменьшить размер базы данных

Чистка базы Производительность и оптимизация (HighLoad) Практика программирования Разработка v8 Россия Бесплатно (free)

Хранение файлов в базе 1С можно оптимизировать для уменьшения размера хранимых данных.

09.09.2019    8755    2tvad    17    

Неочевидные проблемы производительности: важность системного подхода при анализе

Производительность и оптимизация (HighLoad) v8 Россия Бесплатно (free)

Часто программисты и 1С-ники сталкиваются с совершенно необъяснимыми на первый взгляд проблемами. Но это потому, что их внимание направлено только на один сегмент системы, а не на всю систему полностью. О том, почему нужно стараться смотреть на ситуацию комплексно, рассказал специалист по производительности компании SOFTPOINT Александр Денисов.

19.07.2019    9096    Филин    12    

Ловля блокировок на связке "Microsoft SQL server - 1С"

Производительность и оптимизация (HighLoad) v8 v8::blocking Бесплатно (free)

Материал относится к базам данных на связке «1С - MS SQL Server». Один из способов отлова блокировок в бд 1С . Переход к управляемым блокировкам через режим "Автоматический и управляемый".

16.07.2019    10286    fhqhelp    0    

Анти-оптимизация: как мы ускорили запрос в 4 раза, сделав его неоптимальным

Производительность и оптимизация (HighLoad) Практика программирования Решение задач на 1С:Специалист Разработка v8 Бесплатно (free)

В этой статье приведен пример неочевидной "оптимизации" запроса, которая противоречит всем правилам, описанным в книгах для подготовки к сертификации "1С:Эксперт по технологическим вопросам", а также преподаваемым на курсах подготовки экспертов.

02.07.2019    11571    igordynets    119    

Ускорение чтения правил обмена в УПП 1.3 в 20 раз!

Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

Способ оптимизации чтения правил обмена конвертации данных. Может понадобиться при большом размере правил и высокой периодичности обмена.

27.06.2019    9975    YPermitin    17    

Хотите снизить нагрузку на процессор сервера в 2 раза?

Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

В статье рассмотрено влияние частого запуска регламентных заданий на процессор сервера 1С.

27.06.2019    9986    Дмитрий74Чел    6    

Непридуманные истории по оптимизации. История 1

Производительность и оптимизация (HighLoad) v8 1cv8.cf Россия Бесплатно (free)

Первая статья из планируемого цикла об оптимизации приложений на базе 1С. Без теории. Одна практика.

13.06.2019    12850    Repich    117    

Оптимизация: неэффективные запросы

Производительность и оптимизация (HighLoad) Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

В большинстве случаев основной причиной медленной работы системы при многопользовательском режиме работы является блокировка данных СУБД (говорим про клиент-серверную версию). Блокировка - это не есть хорошо или плохо, это жизненно необходимая вещь при построении прикладной логики работы системы. Но блокировки таблиц, записей могут быть как вполне законными, так и далеко не всегда оправданными в каждой конкретной ситуации. Одной из самых распространенных причин неоптимальной блокировки ресурсов является некорректное написание запросов.

13.06.2019    5984    slayer-ekb    10    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    26060    dmurk    146    

За 5 шагов добавляем мониторинг счетчиков производительности серверов MS SQL и 1С

Статистика базы данных Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

Мы расскажем и покажем, как добавить данные счетчиков производительности серверов 1С и MS SQL в нашу базу мониторинга за 15 минут. Приведем список наиболее важных из них, опишем основные особенности.

28.05.2019    20187    ivanov660    10    

Не думать о секундах свысока...

Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

Несколько примеров оптимизации типовой конфигурации УТ11. Описанные приемы подходят для многих других конфигураций.

21.05.2019    8089    vasilev2015    21    

Альтернативная стратегия управления блокировками

Производительность и оптимизация (HighLoad) v8 v8::blocking 1cv8.cf Россия Бесплатно (free)

Данная публикация освещает одну из альтернативных стратегий блокирования данных на уровне MS SQL Server, которая недоступна средствами 1С, но может быть весьма полезной. Разбирается практический пример.

20.05.2019    7278    zhichkin    15    

Как работают управляемые блокировки

Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

Все типовые конфигурации содержат ошибки, потому как управляемые блокировки в 1С слишком уж "управляемые", при понижении уровня изоляции про некоторые "нюансы" просто забыли. Для создания и эксплуатации качественной системы, которая способна поддерживать транзакционную целостность данных при параллельной работе, информацию в этой статье желательно знать, хотя, конечно, ничего особо нового я не открыл.

29.04.2019    24096    comol    198    

Странное потребление места на диске С

Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

Решение проблемы постоянного роста папки %AppData%/Local/Temp.

26.04.2019    14360    kuzyara    13