ERP /\/ Управление /\/ Системы (Лучшие)Интернет - ERP - CRM - Axapta - 1С
Что ограничивает быстродействие ERP - Часть 1
Часть 1. Словарь проблем и решенийНастоящее исследование, выполненное совместно специалистами Интелектуальной группы "Киборг" и специалистами Кодер Лоджик было опубликовано на ERPNEWS и вошло в курс "Корпоративные информационные системы" института МИРЭА. Исследование посвящено технологиям решения проблем быстродействия. Это прежняя версия статьи опубликованная 2007 году. Но технологии стремительно развиваются. По этому рекомендуем обновленную версию статьи от 2013 года здесь.
Почему тормозят многие ERP ? Не уж то прогресс компьютерных технологий отстает от запросов бизнеса? Нет уж, поверьте ветерану - шустро лопатить данные в тех объемах которые вам нужны (даже если у вас крупная сеть розничных магазинов) умели и персоналки десятилетней давности. А почему же тогда все так медленно? Многие уже стороняться этого вопроса. ERP системы представляются людям не связанным с ИТ сложными монстрами, которыми управляют шустрые (хорошо бы) программисты и консультанты, сами до конца не знающие, как система устроена. Хуже то, что многие консультанты и программисты, знающие части ERP не имеют представления об ERP в целом. В таком контексте заданный вопрос кажется сложным и требующим отдельной комиссии для каждого случая. Не спорю, каждый случай надо разбирать отдельно. Но источников плохого быстродействия не так уж много. Начнем с очевидных:
СетиСложность диагностики: сложно определить где именно застревает пакет при движении от одного компьютера к другому.
Низкая скорость сети влияет на возможность работать с данными на удаленном компьютере. Это знает каждый, кто работал в интернете через дайлап (модем подключенный через телефонную сеть). Есть два ключевых компонента топологии: коммутаторы (switch) и концентраторы (hub). Концентратор это простое устройство быстро рассылающее пришедший пакет на все подключенные к нему компьютеры (не только туда куда нужно). Т.е. пакет размножается. При неправильном использовании концентраторов мы получим сеть с большим количество лишних пакетов. Каждый компьютер будет тратить кучу времени на их фильтрацию. Коммутатор же наоборот умный, и тратит заметное время на обработку пакета, но отправляет его только нужному адресату. При неправильном использовании коммутаторов мы получим большую задержку при доставки пакета на нужный компьютер. Бывают и другие проблемы в сетях связанные с разбиением сети на сегменты, с выбором оборудования и ПО. Зоопарк системСложность диагностики: трудно определить причины замедлений в работе приложения и в сети.
Давно известно что оборудование определенной марки хорошо работает только с оборудованием той же марки. Наиболее заметна эта проблема у крупных предприятий, с региональными офисами если нет стандартов на операционную систему на сервера и другое оборудования. Мы рекомендуем вводить стандарты на оборудование и ПО. Оперативная память Сложность диагностики: проблема может быть не достаточно очевидной, о проблеме приходится судить по косвенным признакам. Большое увлечение райд-массивами, большим дисковым пространством и прочими специальными инструментами хранения данных, повлияли на перекос многих систем в пользу использования жестких дисков против наращивания оперативной памяти. Современные дисковые системы выгодно отличаются от своих более молодых собратьев, однако они работают медленнее чем оперативная память десятилетней давности. В случае если приложению не хватает оперативной памяти оно начинает спихивать информацию на диск, потом считывает ее обратно и так далее. В этот момент и происходит зависание. Структуры данных Сложность исправления: Если в системе уже есть данные, то изменение это длительная операция, которая возможна только при остановке системы.
Данные ERP систем в отличии от данных в Интернете структурированы. Они хранятся в таблицах. Основным оператором для получения данных из таблиц является оператор select. Именно он часто и является источником торможения многих систем. На скорость его работы может заметное влиять накопленный объем данных. Упрощенно оператор select представляет из себя перемножение матриц. Действие этого оператора плохо оптимизируются. Здесь помогают индексы и правильный выбор таблиц. Неправильное его использование при критической массе данных приводит к перемножению больших таблиц (например 10 000 000 Х 10 000 000 записей и больше, но мире существует единичные суперкомпьютеры которые умеют делать такую операцию мгновенно, а типовые, даже дорогие сервера на этом тормозят). Теория реляционных баз данных, говорит о максимальной нормализации данных, которая способствует оптимизации объема данных и процесса управления данными. Однако на практике значительная нормализация данных способствует усложнению оператора select, который и является потенциальным тормозом работы системы. Блокировки данных Сложность диагностики: Нужно определить те транзакции, которые являются причиной регулярной блокировки данных. Часто операция одного пользователя в ERP сдерживается другим пользователем. Так работает инструмент транзакции, обеспечивающий целостность изменений в базе данных. Т.е. при выполнении операции из нескольких изменений действует правило: если одно из изменений изменения сделать не возможно (по каким либо причинам, которые, например, могут являться частью алгоритма), то все другие изменения надо отменить. Внесли исправления в первую таблицу, во вторую, в третью. Операция еще не закончилась, а в это время другой пользователь снова исправил запись в первой таблице. Чтобы исключить такой вариант, часть данных во время транзакции блокируется и второй пользователь ждет когда таблица будет разблокирована. В каждой ERP тысячи типов операций, каждая формирует разные транзакции, и использует различные таблицы. Заранее предсказать блокировки сложно - каждый проект индивидуален. При накоплении данных в системе скорость падает, а время операций (транзакций) увеличивается и блокировки начинают дополнительно влиять на снижение быстродействия. Планировать решение этой проблемы трудно, даже зная базовые характеристики ERP системы. На нее влияет средняя сложность операций (определяется количеством записей подлежащих изменению) и рыхлость данных системы (количество дублирования информации). Однако эти характеристики систем не являются открытыми, о них нет официальной информации. ИндексыСложность: Добавление нового индекса ведет к увеличению скорости по одним операциям и снижению скорости по другим.
Решая проблему по ускорению операций за счет использования индексов, многие не редко создают себе новую проблему, но не замечают этого. Индексы ускоряют и замедляют операции. Чтобы использовать индексы правильно, надо знать как они устроены. А по сути устроены они просто: Однако при работе с индексами есть ресурсоемкая операция - добавление и удаление записи. На примере того же словаря: попробуем добавить еще одно слово в словарь? Это же приведет к его переформатированию - все слова, которые лежат после добавляемого слова надо сдвинуть вниз. Конечно современные табличные процессоры с помощью специальных инструментов заметно оптимизируют эту операцию, но скорость добавления записей в таблицу при использовании индексов все равно больше. Если для ускорения определенной операции вы добавляете индекс, то при этом могут замедлиться другие операции. Значит полезно сразу предположить какие операции замедлятся и станет ли это замедление критичным для системы. Ведь именно благодаря бездумному массовому добавлению индексов многие шустрые ERP системы превращаются в неповоротливых монстров. Забытые на пульте пассатижиСложность диагностики: Трудно однозначно определить причину замедления. У администраторов и программистов есть целый набор встроенных и дополнительных программных инструментов контроля происходящего в системе. Эти инструменты используются для получения подробной информации о возникающих проблемах. Они собирают и анализируют специальную информацию, которая позволяет устранить ошибки в системе. Но не редко эти инструменты сами становятся причиной замедления. Выполняя свои действия они берут на себя часть ресурсов системы. В некоторых случаях это может быть заметная часть (и 50% и 90%). Бывает что специалист завершив свою работу забывает отключать часть используемых инструментов. Ошибки также бывают связаны с неправильной настройкой этих инструментов. Чаще всего это ведение логов, различные журналы операций, счетчики производительности, накапливающие информацию о деятельности конкретного приложения. Хуже всего если это нестандартные инструменты написанные под конкретную задачу. Для них не существует описания, и ни кто не знает как ими пользоваться. Такой инструмент легко перепутать с вредоносной закладкой, но всегда существует риск, что он является чем то полезным, и после его отключения часть привычных функций системы пропадет. Бороться с этой проблемой можно только ведением журнала операций который ИТ персонал выполняет работая с системой. Следует обязать каждого специалиста ИТ департамента регулярно писать отчет о производимых работах и используемых для этого программных и прочих инструментов. Анализируя записи журнала можно существенно быстрее найти проблему и ее устранить.
ДМИТРИЙ МАРТЫНОВ 2007 г.
Экспертная оценка: Мартынов Дмитрий, Мольков Вячеслав
|
полная версия С т а т ь иo ПО ДАТАМ o ПО ЖУРНАЛАМ o ERP o УПРАВЛЕНИЕ ==== >> СИСТЕМЫ () Интернет (+) ENTERPRISE RESOURCE PLAN () CRM () 1С |