В 1С мы широко используем собственные разработки для организации работы компании.
В частности, «1С:Документооборот 8» .
Помимо документооборота (как следует из названия), это еще и современный ЕСМ -система (Enterprise Content Management — управление корпоративным контентом) с широким функционалом — почта, рабочие календари сотрудников, организация общего доступа к ресурсам (например, бронирование переговорных комнат), учет рабочего времени, корпоративный форум и многое другое.
Документооборотом в «1С» пользуются более тысячи сотрудников.
База данных уже стала внушительной (11 миллиардов записей), а значит, требует более тщательного ухода и более мощного оборудования.
Как работает наша система, с какими трудностями мы сталкиваемся при обслуживании базы данных и как мы их решаем (в качестве СУБД используем MS SQL Server) – мы расскажем в статье.
Для тех, кто впервые читает о продуктах 1С.
«1С:Документооборот» — прикладное решение (конфигурация), реализованное на основе среды разработки бизнес-приложений — платформы «1С:Предприятие».
«1С:Документооборот 8» (сокращенно ДО) позволяет автоматизировать работу с документами на предприятии.
Одним из основных инструментов взаимодействия сотрудников является электронная почта.
Помимо почты, DO решает и другие задачи:
- Учет времени
- Отслеживание отсутствия сотрудников
- Заявки на курьеров/транспорт
- Календари работы сотрудников
- Регистрация переписки
- Контакты сотрудников (адресная книга)
- Корпоративный форум
- Бронирование комнаты
- Планировка события
- CRM
- Коллективная работа с файлами (с сохранением версий файлов)
- и так далее.
И спасибо еще одному нашему продукту, связанному с документооборотом — Система взаимодействия — мы непосредственно в Документообороте получаем функционал мессенджера — чаты, аудио- и видеозвонки (в том числе групповые, что сейчас стало особенно актуально, в том числе с мобильного клиента), быстрый обмен файлами плюс возможность писать упрощающие чат-боты работа с системой.
Еще одним преимуществом использования Системы взаимодействия (по сравнению с другими мессенджерами) является возможность вести контекстные обсуждения, привязанные к конкретным объектам Документооборота - документам, событиям и т.п.
То есть Система взаимодействия глубоко интегрирована с целевым приложением, а не действовать как просто «отдельная кнопка».
Количество писем в нашем ДО уже перевалило за 100 миллионов, а вообще в СУБД более 11 миллиардов записей.
Всего система использует почти 30 ТБ хранилища: объем базы данных составляет 7,5 ТБ, файлы для коллективной работы хранятся отдельно и занимают еще 21 ТБ.
Если говорить о более конкретных цифрах, то вот количество писем и файлов на данный момент:
- Исходящие письма – 14,7 млн.
- Входящие письма – 85,4 млн.
- Версии файлов – 70,8 млн.
- Внутренние документы – 30,6 тыс.
Ниже приведены показатели по остальным объектам учета:
- Бронирование конференц-залов – 52 126
- Еженедельные отчеты – 153 940
- Ежедневные отчеты – 628 153
- Одобрительные визы – 11 821
- Входящие документы – 79 677
- Исходящие документы – 28 357
- Записей о событиях в рабочих календарях пользователей – 168 228
- Заявки для курьеров – 21 883
- Контрагенты – 81 029
- Учет работы с контрагентами – 45 632
- Контактные лица контрагентов – 41 795
- События – 10 243
- Проекты – 6320
- Задачи сотрудников – 245 980
- Сообщений на форуме – 26 282
- Сообщения в чате – 891 095
- Бизнес-процессы – 109 056. Взаимодействие между сотрудниками происходит через процессы – согласование, исполнение, рассмотрение, регистрация, подписание и т.д. Мы измеряем продолжительность процессов, количество циклов, количество участников, количество возвратов, количество запросов на изменение сроков.
И эту информацию очень полезно проанализировать, чтобы понять, какие процессы происходят на предприятии, и повысить эффективность совместной работы сотрудников.
На каком оборудовании мы все это обрабатываем?
Эти цифры говорят о внушительном объёме задач, поэтому мы столкнулись с необходимостью выделения достаточно производительного оборудования для нужд внутренних дочерних предприятий.На данный момент его характеристики такие: 38 ядер, 240 ГБ ОЗУ, 26 ТБ дисков.
Вот таблица серверов:
В будущем мы планируем увеличить мощность оборудования.
Как обстоят дела с нагрузкой на сервер?
Сетевая активность никогда не была проблемой ни для нас, ни для наших клиентов.Как правило, слабым местом является процессор и диски, ведь как бороться с нехваткой памяти, все уже знают. Вот скриншоты наших серверов с Resource Monitor, на которых видно, что какой-то страшной нагрузки у нас нет, она очень скромная.
Например, на скриншоте ниже мы видим SQL-сервер, у которого загрузка процессора составляет 23%.
И это очень хороший показатель (для сравнения: если загрузка приблизится к 70%, то, скорее всего, сотрудники будут наблюдать довольно значительные замедления в работе).
На втором скриншоте показан сервер приложений, на котором работает платформа «1С:Предприятие» — он обслуживает только пользовательские сессии.
Здесь загрузка процессора чуть выше - 38%, все плавно и спокойно.
Есть некоторая загрузка диска, но это приемлемо.
На третьем скриншоте показан еще один сервер «1С:Предприятия» (он второй, у нас их два в кластере).
Пользователей обслуживает только предыдущий, а на этом работают роботы.
Например, они получают почту, маршрутизируют документы, обмениваются данными, вычисляют права и т. д. Все эти фоновые действия выполняют примерно 90-100 фоновых заданий.
И этот сервер очень сильно загружен - 88%.
Но на людей это не влияет, и в нем реализована ровно вся автоматизация, которую должен делать Document Management.
Каковы метрики для измерения производительности?
У нас в дочерних компаниях встроена серьезная подсистема измерения показателей эффективности и расчета различных метрик.Это необходимо для того, чтобы понять как в текущий момент времени, так и в исторической перспективе, что происходит в системе, что становится хуже, что становится лучше.
Средства мониторинга — метрики и измерения времени — входят в стандартную поставку «1С:Документооборот 8».
Метрики требуют настройки при внедрении, но сам механизм стандартный.
Метрики — это измерения различных бизнес-показателей в определенные моменты времени (например, среднее время доставки почты — 10 минут).
Одна из метрик показывает количество активных пользователей в базе данных.
В среднем их бывает 1000-1400 в день.
На графике видно, что на момент скриншота в базе было 2144 активных пользователя.
Таких акций более 30, список под катом.
Список
- Авторизоваться
- Выход
- Загрузка почты
- Изменение срока действия объекта
- Изменение прав доступа
- Изменение субъекта процесса
- Изменение рабочей группы объекта
- Изменение состава комплекта
- Изменение файла
- Импортировать файл
- Отправка по почте
- Перемещение файлов
- Перенаправление задачи
- Подписание ЭP
- Поиск по деталям
- Полнотекстовый поиск
- Получение файла
- Прерывание процесса
- Вид
- Расшифровка
- Регистрация документов
- Сканирование
- Снятие отметки об удалении
- Создание объекта
- Сохранение на диск
- Начало процесса
- Удаление записей журнала пользователя
- Удаление подписи ЭP
- Установка отметки удаления
- Шифрование
- Ээкспортировать папки
Также количество активных пользователей увеличилось в 3 раза (на скриншоте показано синим цветом), так как сотрудники стали активно пользоваться мобильными телефонами: каждый мобильный клиент создает соединение с сервером.
Сейчас в среднем каждый наш сотрудник имеет 2 подключения к серверу.
Для нас, как администраторов, это сигнал о том, что нам нужно внимательнее относиться к проблемам с производительностью и смотреть, не стало ли дела хуже.
Но мы смотрим на это по другим параметрам.
Например, как меняется время доставки почты по внутренней маршрутизации (показано синим цветом на скриншоте ниже).
Мы видим, что до этого года она колебалась, но сейчас стабильна – для нас это показатель того, что с системой все в порядке.
Еще одна прикладная для нас метрика — среднее время ожидания загрузки писем с почтового сервера (на скриншоте показано красным).
Грубо говоря, как долго письмо будет витать в Интернете, прежде чем дойдет до нашего сотрудника.
На скриншоте видно, что это время за последнее время также никак не изменилось.
Есть единичные спайки - но они связаны не с задержками, а с тем, что теряется время на почтовых серверах.
Или, например, другая метрика (на скриншоте показана синим цветом) — обновление писем в папке.
Открытие почтовой папки — очень распространенная операция, и ее нужно выполнять быстро.
Мы измеряем, насколько быстро это выполняется.
Этот показатель измеряется для каждого клиента.
Вы можете увидеть как общую картину по компании, так и динамику, например, по отдельному сотруднику.
На скриншоте видно, что до этого года метрика была несбалансированной, потом мы внесли ряд улучшений, и сейчас она не становится хуже — график практически ровный.
Метрики — это, по сути, инструмент администратора для мониторинга системы, для быстрого реагирования на любые изменения в поведении системы.
На скриншоте показаны внутренние вспомогательные метрики за год. Скачок на графиках связан с тем, что нам поставили задачу развивать внутренние дочерние компании.
Вот список еще некоторых метрик (под катом).
Метрики
- Активность пользователя
- Активные пользователи
- Активные процессы
- Количество файлов
- Размер файла (МБ)
- Количество документов
- Количество объектов для отправки получателям
- Количество контрагентов
- Незавершенные задачи
- Среднее время ожидания загрузки писем с почтового сервера за последние 10 минут
- Внешний буфер данных: количество файлов
- Отставание границы от текущей даты
- Длинная очередь
- Оперативная очередь
- Необработанный возраст аккаунта по внешней маршрутизации
- Размер очереди принятия внутренней маршрутизации (длинная очередь)
- Размер очереди принятия внутренней маршрутизации (быстрая очередь)
- Время доставки почты по внутренней маршрутизации (длинная очередь)
- Время доставки почты по внутренней маршрутизации (быстрая очередь)
- Время доставки почты по внешней маршрутизации (среднее)
- Количество документов Бронирование
- Количество документов Отсутствие
- Количество документов «Отчет о работе с контрагентом»
- Почта Обновление писем в папке
- Почта Открытие почтовой карточки
- Почта Перенести письмо в папку
- Почта Навигация по папкам
Они могут пригодиться позже, в какой-то исторической перспективе, и вы сможете сосредоточиться на самых важных для бизнеса.
В одной из реализаций, например, было выбрано всего 5 индикаторов.
Заказчик поставил цель создать минимальный набор индикаторов, но при этом такой, чтобы он охватывал основные сценарии работы.
Было бы неоправданно включать в акт приемки 150 показателей, поскольку даже внутри предприятия сложно договориться о том, какие показатели считать приемлемыми.
А об этих 5 показателях они знали и уже представили их в систему еще до начала проекта внедрения, включив в конкурсную документацию: время открытия карты – не более 3 секунд, время выполнения задания с файл — не более 5 секунд и т. д. У нас в дочерних компаниях были метрики, которые очень четко отражали исходный запрос из технического задания заказчика.
У нас также есть профильный анализ показателей производительности.
Показатели производительности — это запись продолжительности каждой выполняемой операции (написание письма в базу данных, отправка письма на почтовый сервер и т. д.).
Используется исключительно техническими специалистами.
В нашей программе мы аккумулируем множество показателей эффективности.
На данный момент мы измеряем около 1500 ключевых операций, которые разделены на профили.
Одним из наиболее важных для нас профилей является «Список ключевых показателей почты с точки зрения потребителя».
Этот профиль включает, например, следующие показатели:
- Выполнение команды: Выбрать по тегу
- Открытие формы: Форма списка
- Выполнение команды: Выбрать по папке
- Отображение буквы в области чтения
- Сохранение письма в любимую папку
- Поиск писем по реквизитам
- Создание письма
У нас есть техническая операция «Архивация писем на почтовом сервере» — видим, что время этой операции превышено за последний период. Эта операция, в свою очередь, раскладывается на другие операции — например, установление соединения с почтовым сервером.
Мы видим, что оно почему-то вдруг стало очень большим (у нас есть все измерения за месяц — можем сравнить, что на прошлой неделе оно было 10 миллисекунд, а сейчас — 1000 миллисекунд).
И мы понимаем, что здесь что-то сломано – надо это починить.
Как мы поддерживаем такую большую базу данных?
Наш внутренний DO — пример действительно работающего высоконагруженного проекта.Поговорим о технических особенностях его базы данных.
Сколько времени занимает реструктуризация больших таблиц базы данных?
SQL-сервер требует периодического обслуживания, приведения таблиц в порядок.По-хорошему, это нужно делать хотя бы раз в день, а для столов с повышенным спросом и того чаще.
Но если база данных большая (а количество записей у нас уже перевалило за 11 миллиардов), то позаботиться о ней непросто.
Мы делали реструктуризацию стола 6 лет назад, но потом это стало занимать так много времени, что мы уже не укладывались в ночные интервалы.
А поскольку эти операции сильно нагружают SQL-сервер, он не может эффективно обслуживать других пользователей.
Поэтому теперь нам предстоит использовать различные хитрости.
Например, мы не можем выполнять эти процедуры для полных наборов данных.
Приходится прибегнуть к процедуре Update Sample 500000 rows — это занимает 14 минут. Он не обновляет статистику по всем данным в таблице, а выбирает полмиллиона строк и использует их для расчета статистики, которая используется для всей таблицы.
Это некоторое предположение, но мы вынуждены его сделать, поскольку для конкретной таблицы сбор статистики по всему миллиарду записей займет неприемлемо много времени.
Мы также оптимизировали другие операции по техническому обслуживанию, сделав их частичными.
Обслуживание СУБД, как правило, представляет собой сложную задачу.
В случае активного взаимодействия сотрудников база данных быстро разрастается, и администраторам становится все сложнее ее поддерживать – обновлять статистику, дефрагментировать, индексировать.
Здесь нужно применять разные стратегии, мы хорошо знаем, как это делать, у нас есть опыт, мы можем им поделиться.
Как осуществляется резервное копирование таких томов?
Полное резервное копирование СУБД выполняется один раз в сутки в ночное время, инкрементальное – каждый час.Кроме того, каждый день создается файловый каталог, который является частью инкрементальной резервной копии файлового хранилища.
Сколько времени занимает полное резервное копирование?
Полное резервное копирование на жесткий диск выполняется за три часа, частичное — за час.Запись на ленту занимает больше времени (специальное устройство, делающее резервную копию на специальную кассету, хранящуюся вне офиса; на ленту делается переносимая копия, которая сохранится, если, например, сгорит серверная).
Бэкап делается точно на тот же сервер, параметры которого были выше - SQL-сервер с 20% загрузкой процессора.
В момент бэкапа система, конечно, становится намного хуже, но все равно работоспособна.
Есть ли дедупликация?
Дедупликация Файлы есть, проверим на себе, скоро включится в новую версию Документооборота.Мы также тестируем механизм дедупликации контрагентов.
Дедупликации записей на уровне СУБД нет, так как в этом нет необходимости.
Платформа «1С:Предприятие» хранит объекты в СУБД, и только платформа может отвечать за их целостность.
Существуют ли узлы только для чтения?
Нет узлов чтения (выделенных системных узлов, обслуживающих тех, кому необходимо получить какие-либо данные для чтения).
DO — это не учетная система, которую можно поставить на отдельный узел BI, а есть отдельный узел для отдела разработки, с которым происходит обмен сообщениями в формате JSON, а типичное время репликации — единицы и десятки секунд. Узел пока небольшой, в нем около 800 миллионов записей, но он быстро растет.
Письма, помеченные для удаления, вообще не удаляются?
Еще нет. У нас нет задачи сделать основу легче.Было несколько довольно серьезных случаев, когда приходилось обращаться к помеченным к удалению письмам, в том числе и за 2009 год. Поэтому мы решили пока все оставить.
Но когда затраты на это станут неоправданными, будем думать об удалении.
Но, если вам необходимо удалить отдельное письмо из базы данных полностью, чтобы не осталось следов, то это можно сделать по специальному запросу.
Зачем хранить? Есть ли у вас статистика доступа к старым документам?
Статистики нет. Точнее, он есть в виде журнала пользователя, но хранится он недолго.Записи старше года из протокола удаляются.
Бывали ситуации, когда нужно было восстановить старую переписку пяти-, а то и десятилетней давности.
И делалось это всегда не из праздного любопытства, а для принятия сложных бизнес-решений.
Был случай, когда без истории переписки было принято неверное деловое решение.
Как оценивается и уничтожается ценность документов в зависимости от сроков хранения?
Для бумажных документов это делается обычным традиционным способом, как и все остальные.Для электронных не делаем - пусть оставляют себе.
Сидение здесь.
Есть преимущества.
Все в порядке.
Какие перспективы развития есть?
Сейчас наше ДО решает около 30 внутренних задач, некоторые из которых мы перечислили в начале статьи.Также ДЛ используется для подготовки конференций, которые мы проводим два раза в год для наших партнеров: вся программа, все доклады, все параллельные секции, залы - все это набирается в ДЛ, а затем скачивается из него, и распечатанная программа.
сделан.
Перед ДО стоит еще несколько задач, помимо тех, которые оно уже решает. Есть общекорпоративные задачи, а есть уникальные и редкие, нужные только конкретному отделу.
Им необходимо помочь, а значит расширить «географию» использования системы внутри 1С – расширить сферу применения, решить проблемы всех подразделений.
Это будет лучшим тестом на производительность и надежность.
Мне бы хотелось, чтобы система работала с триллионами записей, петабайтами информации.
Теги: #Администрирование базы данных #Администрирование базы данных #1c #ms sql-сервер #1c:enterprise #Microsoft SQL Server #документооборот
-
Некоторые Звуки От Kib
19 Oct, 24 -
Fitbit Становится Публичным
19 Oct, 24